CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/EventFilter/ResourceBroker/interface/SMProxy.h

Go to the documentation of this file.
00001 #ifndef SMPROXY_H
00002 #define SMPROXY_H
00003 
00004 
00005 #include "EventFilter/ResourceBroker/interface/FUTypes.h"
00006 #include "EventFilter/Utilities/interface/i2oEvfMsgs.h"
00007 #include "EventFilter/Utilities/interface/Exception.h"
00008 #include "xdaq/Application.h"
00009 
00010 
00011 #include <string>
00012 
00013 
00014 namespace evf {
00015 
00016   class SMProxy
00017   {
00018   public:  
00019     //
00020     // construction/destruction
00021     //
00022     SMProxy(xdaq::ApplicationDescriptor *fuAppDesc, 
00023             xdaq::ApplicationDescriptor *smAppDesc, 
00024             xdaq::ApplicationContext    *fuAppContext,
00025             toolbox::mem::Pool          *i2oPool);
00026     virtual ~SMProxy();
00027     
00028     
00029     //
00030     // member functions
00031     //
00032     UInt_t sendInitMessage(UInt_t  fuResourceId,
00033                            UInt_t  outModId,
00034                            UInt_t  fuProcessId,
00035                            UInt_t  fuGuid,
00036                            UChar_t*data,
00037                            UInt_t  dataSize) throw (evf::Exception);
00038     
00039     UInt_t sendDataEvent(UInt_t  fuResourceId,
00040                          UInt_t  runNumber,
00041                          UInt_t  evtNumber,
00042                          UInt_t  outModId,
00043                          UInt_t  fuProcessId,
00044                          UInt_t  fuGuid,
00045                          UChar_t*data,
00046                          UInt_t  dataSize) throw (evf::Exception);
00047 
00048     UInt_t sendErrorEvent(UInt_t  fuResourceId,
00049                           UInt_t  runNumber,
00050                           UInt_t  evtNumber,
00051                           UInt_t  fuProcessId,
00052                           UInt_t  fuGuid,
00053                           UChar_t*data,
00054                           UInt_t  dataSize) throw (evf::Exception);
00055 
00056     UInt_t sendDqmEvent(UInt_t  fuDqmId,
00057                         UInt_t  runNumber,
00058                         UInt_t  evtAtUpdate,
00059                         UInt_t  folderId,
00060                         UInt_t  fuProcessId,
00061                         UInt_t  fuGuid,
00062                         UChar_t*data,
00063                         UInt_t  dataSize) throw (evf::Exception);
00064 
00065 
00066   private:    
00067     //
00068     // private member functions
00069     //
00070     MemRef_t* createFragmentChain(UShort_t i2oFunctionCode,
00071                                   UInt_t   headerSize,
00072                                   UChar_t *data,
00073                                   UInt_t   dataSize,
00074                                   UInt_t  &totalSize) 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