Belle II Software  release-05-02-19
DqmMemFile.h
1 #ifndef DQM_MEMFILE
2 #define DQM_MEMFILE
3 //+
4 // File : DqmMemFile.h
5 // Description : Basic tools to pass ROOT histograms over shared memory
6 //
7 // Author : Ryosuke Itoh, IPNS, KEK
8 // Date : 6 - Jan - 2016
9 //-
10 
11 #include <string>
12 
13 #include <daq/rfarm/manager/SharedMem.h>
14 #include <framework/pcore/EvtMessage.h>
15 
16 #include "TMemFile.h"
17 #include "TDirectory.h"
18 
19 #define MEMFILESIZE 128000000
20 
21 namespace Belle2 {
26  class MsgHandler;
27 
28  class DqmMemFile {
29  public:
30  DqmMemFile(std::string name = "dqmhisto",
31  std::string mode = "readonly", int size = MEMFILESIZE);
32  DqmMemFile(int shm_id, int sem_id,
33  std::string mode = "readonly", int size = MEMFILESIZE);
34  ~DqmMemFile();
35 
36  // Sender function
37  TMemFile* GetMemFile();
38  int UpdateSharedMem();
39  int ClearSharedMem();
40  TMemFile* LoadMemFile();
41 
42  // Receiver functions
43  EvtMessage* StreamMemFile();
44 
45  private:
46  int StreamHistograms(TDirectory* curdir, MsgHandler* msg, int& nobjs);
47 
48  private:
49  SharedMem* m_shm;
50  TMemFile* m_memfile;
51  char* m_buf;
52  std::string m_name;
53  int m_size;
54  int m_mode;
55  };
57 }
58 #endif
59 
Belle2::EvtMessage
Class to manage streamed object.
Definition: EvtMessage.h:60
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::SharedMem
Definition: SharedMem.h:20
Belle2::DqmMemFile
Definition: DqmMemFile.h:28
Belle2::MsgHandler
A class to encode/decode an EvtMessage.
Definition: MsgHandler.h:104