Belle II Software  release-08-01-10
RFEventProcessor.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 RFEVENTPROCESSOR_H
9 #define RFEVENTPROCESSOR_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 {
31  class RFEventProcessor : public RFServerBase {
32  public:
33  RFEventProcessor(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  // Cleanup
47  void cleanup();
48 
49  private:
50  RFConf* m_conf;
51  RFSharedMem* m_shm;
52  RFProcessManager* m_proc;
53  RFLogManager* m_log;
54  RingBuffer* m_rbufin;
55  RingBuffer* m_rbufout;
56  RFFlowStat* m_flow;
57 
58  int m_pid_receiver;
59  int m_pid_basf2;
60  int m_pid_sender;
61  int m_pid_hrecv;
62  int m_pid_hrelay;
63  int m_nnodes;
64  char m_nodename[256 + 4];
65 
66  int m_expno;
67  int m_runno;
68 
69  };
70 
72 }
73 #endif
74 
75 
76 
77 
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