CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/EventFilter/ResourceBroker/interface/SMProxy.h

Go to the documentation of this file.
00001 
00002 //
00003 // SMProxy
00004 // -------
00005 //
00007 
00008 #ifndef SMPROXY_H
00009 #define SMPROXY_H
00010 
00011 #include "EventFilter/ResourceBroker/interface/FUTypes.h"
00012 #include "EventFilter/Utilities/interface/i2oEvfMsgs.h"
00013 #include "EventFilter/Utilities/interface/Exception.h"
00014 #include "xdaq/Application.h"
00015 
00016 #include <string>
00017 
00018 namespace evf {
00019 
00024 class SMProxy {
00025 public:
00026         //
00027         // construction/destruction
00028         //
00029                         SMProxy(xdaq::ApplicationDescriptor *fuAppDesc,
00030                                         xdaq::ApplicationDescriptor *smAppDesc,
00031                                         xdaq::ApplicationContext *fuAppContext,
00032                                         toolbox::mem::Pool *i2oPool);
00033         virtual ~SMProxy();
00034 
00035         //
00036         // member functions
00037         //
00038 
00042         UInt_t sendInitMessage(UInt_t fuResourceId, UInt_t outModId,
00043                         UInt_t fuProcessId, UInt_t fuGuid, UChar_t*data, UInt_t dataSize,
00044                         UInt_t nExpectedEPs) throw (evf::Exception);
00045 
00049         UInt_t sendDataEvent(UInt_t fuResourceId, UInt_t runNumber,
00050                         UInt_t evtNumber, UInt_t outModId, UInt_t fuProcessId,
00051                         UInt_t fuGuid, UChar_t*data, UInt_t dataSize)
00052                         throw (evf::Exception);
00053 
00057         UInt_t sendErrorEvent(UInt_t fuResourceId, UInt_t runNumber,
00058                         UInt_t evtNumber, UInt_t fuProcessId, UInt_t fuGuid, UChar_t*data,
00059                         UInt_t dataSize) throw (evf::Exception);
00060 
00064         UInt_t sendDqmEvent(UInt_t fuDqmId, UInt_t runNumber, UInt_t evtAtUpdate,
00065                         UInt_t folderId, UInt_t fuProcessId, UInt_t fuGuid, UChar_t*data,
00066                         UInt_t dataSize) throw (evf::Exception);
00067 
00068 private:
00069         //
00070         // private member functions
00071         //
00072         MemRef_t* createFragmentChain(UShort_t i2oFunctionCode, UInt_t headerSize,
00073                         UChar_t *data, UInt_t dataSize, UInt_t &totalSize)
00074                         throw (evf::Exception);
00075 
00076 private:
00077         //
00078         // member data
00079         //
00080         Logger log_;
00081         xdaq::ApplicationDescriptor *fuAppDesc_;
00082         xdaq::ApplicationDescriptor *smAppDesc_;
00083         xdaq::ApplicationContext *fuAppContext_;
00084         toolbox::mem::Pool *i2oPool_;
00085 
00086         UInt_t initHeaderSize_;
00087         UInt_t dataHeaderSize_;
00088         UInt_t dqmHeaderSize_;
00089 
00090         std::string fuUrl_;
00091         std::string fuClassName_;
00092 
00093 };
00094 
00095 } // namespace evf
00096 
00097 
00098 #endif