Belle II Software  release-05-01-25
ERecoDistributor.h
1 #ifndef EREVENTDIST_H
2 #define EREVENTDIST_H
3 //+
4 // File : ERecoDistributor.h
5 // Description : Receive events from EVB1 and distribute them
6 // to processing nodes
7 //
8 // Author : Ryosuke Itoh, IPNS, KEK
9 // Date : 24 - June - 2013
10 //-
11 
12 #include <string>
13 
14 #include "daq/rfarm/manager/RFConf.h"
15 #include "daq/rfarm/manager/RFSharedMem.h"
16 #include "daq/rfarm/manager/RFProcessManager.h"
17 #include "daq/rfarm/manager/RFLogManager.h"
18 #include "daq/rfarm/manager/RFFlowStat.h"
19 
20 #include "daq/rfarm/manager/RFServerBase.h"
21 
22 #define MAXNODES 256
23 
24 namespace Belle2 {
30  class ERecoDistributor : public RFServerBase {
31  public:
32  ERecoDistributor(std::string conffile);
34 
35  // Functions to be hooked to NSM
36  int Configure(NSMmsg*, NSMcontext*);
37  int UnConfigure(NSMmsg*, NSMcontext*);
38  int Start(NSMmsg*, NSMcontext*);
39  int Stop(NSMmsg*, NSMcontext*);
40  int Restart(NSMmsg*, NSMcontext*);
41 
42  // Server function
43  void server();
44 
45  private:
46  RFConf* m_conf;
47  RFSharedMem* m_shm;
48  RFProcessManager* m_proc;
49  RFLogManager* m_log;
50  RFFlowStat* m_flow;
51  RingBuffer* m_rbufin;
52 
53  int m_pid_recv[MAXNODES];
54  int m_pid_sender[MAXNODES];
55  int m_nnodes;
56  int m_nrecv;
57 
58  };
59 
61 }
62 #endif
63 
64 
65 
66 
NSMmsg
Definition: nsm2.h:217
Belle2::ERecoDistributor
Definition: ERecoDistributor.h:30
Belle2::RFFlowStat
Definition: RFFlowStat.h:28
Belle2::RFSharedMem
Definition: RFSharedMem.h:51
Belle2::RFLogManager
Definition: RFLogManager.h:18
Belle2::RingBuffer
Class to manage a Ring Buffer placed in an IPC shared memory.
Definition: RingBuffer.h:36
Belle2::RFProcessManager
Definition: RFProcessManager.h:22
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::RFServerBase
Definition: RFServerBase.h:20
Belle2::RFConf
Definition: RFConf.h:24
NSMcontext_struct
Definition: nsmlib2.h:66