Belle II Software  release-05-01-25
RFOutputServer.h
1 #ifndef RFOUTPUTSERVER_H
2 #define RFOUTPUTSERVER_H
3 //+
4 // File : RFOutputServer.h
5 // Description : Collect outputs from worker nodes and send them
6 // to EVB2 w/ branch to PXD
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 RFOutputServer : public RFServerBase {
31  public:
32  RFOutputServer(std::string conffile);
33  ~RFOutputServer();
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  // Cleanup
46  void cleanup();
47 
48  private:
49  RFConf* m_conf;
50  RFSharedMem* m_shm;
51  RFProcessManager* m_proc;
52  RFLogManager* m_log;
53  RFFlowStat* m_flow;
54  RingBuffer* m_rbufin;
55  RingBuffer* m_rbufout;
56 
57  int m_pid_receiver[MAXNODES];
58  int m_pid_basf2;
59  int m_pid_sender;
60  int m_pid_hrecv;
61  int m_pid_hrelay;
62  int m_nnodes;
63 
64  };
65 
67 }
68 #endif
69 
70 
71 
72 
NSMmsg
Definition: nsm2.h:217
Belle2::RFOutputServer
Definition: RFOutputServer.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