Belle II Software development
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
25namespace Belle2 {
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 char m_nodename[256 + 4];
64
65 int m_expno;
66 int m_runno;
67
68 };
69
71}
72#endif
73
74
75
76
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