CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/EventFilter/ResourceBroker/interface/IPCManager.h

Go to the documentation of this file.
00001 
00002 //
00003 // IPCManager.h
00004 // -------
00005 //
00006 //  Created on: Oct 26, 2011
00007 //                                                                              Andrei Spataru : aspataru@cern.ch
00009 
00010 #ifndef IPCMANAGER_H_
00011 #define IPCMANAGER_H_
00012 
00013 #include "EventFilter/ResourceBroker/interface/IPCMethod.h"
00014 #include "xdaq/Application.h"
00015 #include "FWCore/Utilities/interface/CRC16.h"
00016 
00017 namespace evf {
00018 
00027 class IPCManager {
00028 
00029 public:
00030         IPCManager(bool useMQ);
00031         virtual ~IPCManager();
00032 
00036         void initialise(bool segmentationMode, UInt_t nbRawCells,
00037                         UInt_t nbRecoCells, UInt_t nbDqmCells, UInt_t rawCellSize,
00038                         UInt_t recoCellSize, UInt_t dqmCellSize,
00039                         int freeResRequiredForAllocate, BUProxy* bu, SMProxy* sm,
00040                         log4cplus::Logger logger, unsigned int resourceStructureTimeout,
00041                         EvffedFillerRB*frb, xdaq::Application*) throw (evf::Exception);
00042 
00046         IPCMethod* const ipc();
00047 
00048 private:
00049         // selected IPC method
00050         //      true - Message Queue
00051         //      false - Shared Memory
00052         bool useMessageQueueIPC_;
00053 
00054         // pointer to IPC communication type
00055         IPCMethod* ipc_;
00056 
00057 };
00058 
00059 }
00060 
00061 #endif /* IPCMANAGER_H_ */