1#ifndef BMN_ONLINE_SHM_SOURCE_H
2#define BMN_ONLINE_SHM_SOURCE_H
4#include <FairOnlineSource.h>
6#include <TClonesArray.h>
9#include <boost/interprocess/managed_shared_memory.hpp>
10#include <boost/interprocess/sync/named_semaphore.hpp>
13namespace bIpc = boost::interprocess;
28 Bool_t fIsRegisterBranches;
31 std::string fWriteSemName;
32 std::string fReadSemName;
35 std::unique_ptr<bIpc::managed_shared_memory> fShmSegment;
36 std::unique_ptr<bIpc::named_semaphore> fWriteSem;
37 std::unique_ptr<bIpc::named_semaphore> fReadSem;
39 std::unordered_map<std::string, std::unique_ptr<TClonesArray>> fRegisteredBranches;
41 void RegisterBranches(std::unique_ptr<TTree> &inputTree);
42 void UploadData(std::unique_ptr<TTree> &inputTree);
virtual Int_t ReadEvent(UInt_t=0)
BmnOnlineShmSource(const BmnOnlineShmSource &)=delete
BmnOnlineShmSource & operator=(const BmnOnlineShmSource &)=delete
virtual ~BmnOnlineShmSource()