Belle II Software  release-08-01-10
ERecoEventProcessor.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 #ifndef EREVENTPROCESSOR_H
9 #define EREVENTPROCESSOR_H
10 
11 #include <string>
12 
13 #include "daq/rfarm/manager/RFConf.h"
14 #include "daq/rfarm/manager/RFSharedMem.h"
15 #include "daq/rfarm/manager/RFProcessManager.h"
16 #include "daq/rfarm/manager/RFLogManager.h"
17 #include "daq/rfarm/manager/RFFlowStat.h"
18 
19 #include "framework/pcore/RingBuffer.h"
20 
21 #include "daq/rfarm/manager/RFServerBase.h"
22 
23 #define MAXNODES 256
24 
25 namespace Belle2 {
32  public:
33  ERecoEventProcessor(std::string conffile);
35 
36  // Functions to be hooked to NSM
37  int Configure(NSMmsg*, NSMcontext*) override;
38  int UnConfigure(NSMmsg*, NSMcontext*) override;
39  int Start(NSMmsg*, NSMcontext*) override;
40  int Stop(NSMmsg*, NSMcontext*) override;
41  int Restart(NSMmsg*, NSMcontext*) override;
42 
43  // Server function
44  void server();
45 
46  private:
47  RFConf* m_conf;
48  RFSharedMem* m_shm;
49  RFProcessManager* m_proc;
50  RFLogManager* m_log;
51  RingBuffer* m_rbufin;
52  RingBuffer* m_rbufout;
53  RFFlowStat* m_flow;
54 
55  int m_pid_receiver;
56  int m_pid_basf2;
57  int m_pid_sender;
58  int m_pid_hrecv;
59  int m_pid_hrelay;
60  int m_pid_evs;
61  int m_nnodes;
62  char m_nodename[256 + 4];
63 
64  };
65 
67 }
68 #endif
69 
70 
71 
72 
Class to manage a Ring Buffer placed in an IPC shared memory.
Definition: RingBuffer.h:39
Abstract base class for different kinds of events.
Definition: nsm2.h:224