RawDataHltCnv Class Reference

#include <RawDataHltCnv.h>

Inheritance diagram for RawDataHltCnv:

RawDataBaseCnv Converter< Ty1, Ty2 > List of all members.

Public Types

typedef Ty1 source
typedef Ty2 destination

Public Member Functions

StatusCode initialize ()
virtual long repSvcType () const
StatusCode createObj (IOpaqueAddress *pAddr, DataObject *&pObj)
virtual StatusCode updateObj (IOpaqueAddress *, DataObject *)
 override the RawDataBaseCnv version
virtual StatusCode createRep (DataObject *pObj, IOpaqueAddress *&pAddr)
 Convert the transient object to the requested representation.
virtual StatusCode finalize ()
void declareObject (const std::string &fullPath, const CLID &clid, const std::string &bank, long par=0)
 Store TDS path to link a particular converter to an object on the TDS.
virtual StatusCode fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
virtual StatusCode updateRep (IOpaqueAddress *pAddress, DataObject *pObject)
 Update the converted representation of a transient object.
virtual StatusCode updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Update the references of an already converted object.
destinationoperator (const source &) const

Static Public Member Functions

static const CLID & classID ()
static const unsigned char storageType ()

Protected Member Functions

 RawDataHltCnv (ISvcLocator *svc)
virtual destinationconvert (const source &) const =0

Protected Attributes

IRawDataCnvSvcm_CnvSvc
 Pointer to event conversion service interface.
std::vector< IRawDataCnvSvc::Leafm_leaves
 Leaf objects giving the locations of the objects in the data store.

Private Attributes

IRawDataInputSvcm_inputSvc
IRawDataCnvSvcm_RawDataAccess
 Define the interface to raw data cnv.

Friends

class CnvFactory< RawDataHltCnv >

Detailed Description

Definition at line 31 of file RawDataHltCnv.h.


Member Typedef Documentation

template<class Ty1, class Ty2>
typedef Ty2 Converter< Ty1, Ty2 >::destination [inherited]

Definition at line 19 of file Converter.h.

template<class Ty1, class Ty2>
typedef Ty1 Converter< Ty1, Ty2 >::source [inherited]

Definition at line 18 of file Converter.h.


Constructor & Destructor Documentation

RawDataHltCnv::RawDataHltCnv ( ISvcLocator *  svc  )  [protected]

Definition at line 28 of file RawDataHltCnv.cxx.

00028                                              : 
00029 RawDataBaseCnv(PACKEDRAWEVENT_StorageType, classID(), svc) 
00030 {
00031     //init();
00032 }


Member Function Documentation

const CLID & RawDataHltCnv::classID (  )  [static]

Reimplemented from RawDataBaseCnv.

Definition at line 36 of file RawDataHltCnv.cxx.

References CLID_HltEvent.

Referenced by PackedRawDataCnvSvc::addConverters(), and createRep().

00037 {
00038   return CLID_HltEvent;
00039 }

template<class Ty1, class Ty2>
virtual destination* Converter< Ty1, Ty2 >::convert ( const source  )  const [protected, pure virtual, inherited]

StatusCode RawDataHltCnv::createObj ( IOpaqueAddress *  pAddr,
DataObject *&  pObj 
)

Definition at line 104 of file RawDataHltCnv.cxx.

References HltEvent::initialize().

00105 {
00106    //MsgStream log(msgSvc(), "RawDataHltCnv");
00107    //RawDataAddress *pEFAddr;
00108    
00109    // Purpose and Method:  This converter will create an empty EventHeader on
00110    //   the TDS.
00111    HltEvent *digi = new HltEvent();
00112    // Set fromMc to false
00113    digi->initialize(false);
00114    pObj = digi;
00115    return StatusCode::SUCCESS;
00116 
00117 }

StatusCode RawDataHltCnv::createRep ( DataObject *  pObj,
IOpaqueAddress *&  pAddr 
) [virtual]

Convert the transient object to the requested representation.

Reimplemented from RawDataBaseCnv.

Definition at line 119 of file RawDataHltCnv.cxx.

References classID(), and deljobs::string.

00120 {
00121     // convert Raws in the container into ByteStream
00122     StatusCode sc = StatusCode::SUCCESS ; 
00123     //MsgStream log(messageService(), "RawDataHltCnv");
00124  
00125     //WriteRawEvent* re = static_cast<WriteRawEvent*>(m_RawDataAccess->getRawEvent()); 
00126  
00127  
00128     std::string nm = pObj->registry()->name(); 
00129  
00130     RawDataAddress* addr = new RawDataAddress(classID(), nm, ""); 
00131  
00132     pAddr = addr; 
00133  
00134     return StatusCode::SUCCESS; 
00135  
00136 }

void RawDataBaseCnv::declareObject ( const std::string fullPath,
const CLID &  clid,
const std::string bank,
long  par = 0 
) [inherited]

Store TDS path to link a particular converter to an object on the TDS.

Definition at line 81 of file RawDataBaseCnv.cxx.

00082                                                                       {
00083     // Purpose and Method:  Save the path on the TDS, in the m_leaves vector, 
00084     //   corresponding to the DataObject that the converter handles.
00085     // m_leaves.push_back(IRawDataCnvSvc::Leaf(path, cl, bank, par));
00086 }

StatusCode RawDataBaseCnv::fillRepRefs ( IOpaqueAddress *  pAddress,
DataObject *  pObject 
) [virtual, inherited]

Resolve the references of the converted object.

Definition at line 29 of file RawDataBaseCnv.cxx.

00030                                                  {
00031     // Purpose and Method:  Resolve the references of the converted object.
00032     //     It is expected that derived classes will override this method.
00033     return StatusCode::SUCCESS;
00034 }

StatusCode RawDataBaseCnv::finalize (  )  [virtual, inherited]

Definition at line 73 of file RawDataBaseCnv.cxx.

References RawDataBaseCnv::m_CnvSvc.

00073                                       {
00074     if ( m_CnvSvc )     {
00075         m_CnvSvc->release();
00076         m_CnvSvc = 0;
00077     }
00078     return Converter::finalize();
00079 }

StatusCode RawDataHltCnv::initialize (  ) 

Reimplemented from RawDataBaseCnv.

Definition at line 41 of file RawDataHltCnv.cxx.

References calibUtil::ERROR, RawDataBaseCnv::initialize(), m_inputSvc, m_RawDataAccess, deljobs::string, and Bes_Common::WARNING.

00042 {
00043     std::string PackedRawDataCnvSvc_Name("PackedRawDataCnvSvc");
00044     std::string RawDataInputSvc_Name("RawDataInputSvc");
00045     std::string RawDataHltCnv_Name("RawDataHltCnv");
00046     
00047     // for Mutil-thread by tianhl
00048     //ConversionSvc*  pCnvSvc = 0;
00049     //if (pCnvSvc = dynamic_cast<ConversionSvc*>(conversionSvc())){
00050     SmartIF<IService> pCnvSvc(conversionSvc());  
00051     if  (isGaudiThreaded(pCnvSvc->name())){
00052         PackedRawDataCnvSvc_Name += getGaudiThreadIDfromName(pCnvSvc->name());
00053         RawDataInputSvc_Name += getGaudiThreadIDfromName(pCnvSvc->name());
00054         RawDataHltCnv_Name += getGaudiThreadIDfromName(pCnvSvc->name());
00055       }
00056     //}
00057     StatusCode sc = RawDataBaseCnv::initialize();
00058     if(StatusCode::SUCCESS!=sc)
00059     {
00060        return sc;
00061     }
00062 
00063     MsgStream log(messageService(), RawDataHltCnv_Name.c_str());
00064 
00065     IService* svc = 0;
00066     sc = serviceLocator()->service(PackedRawDataCnvSvc_Name.c_str(), svc);
00067     if (sc != StatusCode::SUCCESS) {
00068         log << MSG::ERROR << "Can't get RawDataAccess interface" << endreq;
00069         return StatusCode::FAILURE;
00070     }
00071 
00072     m_RawDataAccess = dynamic_cast<PackedRawDataCnvSvc*> (svc);
00073     if (m_RawDataAccess  == 0 ) {
00074       log << MSG::ERROR << "RawDataCnv: Cant cast to RawDataCnvSvc" << endreq;
00075       return StatusCode::FAILURE;
00076     }
00077 
00078     sc = serviceLocator()->getService(RawDataInputSvc_Name.c_str(), svc);
00079     if(sc != StatusCode::SUCCESS ) {
00080         log << MSG::WARNING << "Cant get RawDataInputSvc " << endreq;
00081         return sc ;
00082     }
00083  
00084     m_inputSvc = dynamic_cast<RawDataInputSvc*> (svc);
00085     if(m_inputSvc == 0 ) {
00086         log << MSG::ERROR << "Cant cast to RawDataInputSvc" << endreq;
00087         return StatusCode::FAILURE ;
00088     }
00089 
00090     return StatusCode::SUCCESS;
00091 }

template<class Ty1, class Ty2>
destination* Converter< Ty1, Ty2 >::operator ( const source  )  const [inline, inherited]

virtual long RawDataHltCnv::repSvcType (  )  const [inline, virtual]

Reimplemented from RawDataBaseCnv.

Definition at line 45 of file RawDataHltCnv.h.

References PACKEDRAWEVENT_StorageType.

00045                                    {
00046        return PACKEDRAWEVENT_StorageType;
00047    }

static const unsigned char RawDataHltCnv::storageType (  )  [inline, static]

Reimplemented from RawDataBaseCnv.

Definition at line 49 of file RawDataHltCnv.h.

References PACKEDRAWEVENT_StorageType.

00049                                             {
00050        return PACKEDRAWEVENT_StorageType;
00051    }

StatusCode RawDataHltCnv::updateObj ( IOpaqueAddress *  ,
DataObject *   
) [virtual]

override the RawDataBaseCnv version

Definition at line 94 of file RawDataHltCnv.cxx.

00094                                                                            {
00095     // Purpose and Method:  This method does nothing other than announce it has
00096     //   been called.
00097 
00098     //MsgStream log(msgSvc(), "RawDataHltCnv");
00099     //log << MSG::DEBUG << "RawDataHltCnv::updateObj" << endreq;
00100     return Converter::updateObj(pAddr, pObj);
00101 }

StatusCode RawDataBaseCnv::updateRep ( IOpaqueAddress *  pAddress,
DataObject *  pObject 
) [virtual, inherited]

Update the converted representation of a transient object.

Definition at line 36 of file RawDataBaseCnv.cxx.

00037                                               {
00038     // Purpose and Method:  Update the converted representation of a transient 
00039     //     object.  It is expected that derived classes will override this.
00040     return StatusCode::SUCCESS;
00041 }

StatusCode RawDataBaseCnv::updateRepRefs ( IOpaqueAddress *  pAddress,
DataObject *  pObject 
) [virtual, inherited]

Update the references of an already converted object.

Definition at line 43 of file RawDataBaseCnv.cxx.

00044                                                 {
00045     // Purpose and Method:  Update the references of an already converted object.
00046     //   It is expected that derived classes will override this method.
00047     return StatusCode::SUCCESS;
00048 }


Friends And Related Function Documentation

friend class CnvFactory< RawDataHltCnv > [friend]

Definition at line 35 of file RawDataHltCnv.h.


Member Data Documentation

IRawDataCnvSvc* RawDataBaseCnv::m_CnvSvc [protected, inherited]

Pointer to event conversion service interface.

Definition at line 28 of file RawDataBaseCnv.h.

Referenced by RawDataBaseCnv::finalize().

IRawDataInputSvc* RawDataHltCnv::m_inputSvc [private]

Definition at line 62 of file RawDataHltCnv.h.

Referenced by initialize().

std::vector<IRawDataCnvSvc::Leaf> RawDataBaseCnv::m_leaves [protected, inherited]

Leaf objects giving the locations of the objects in the data store.

Definition at line 30 of file RawDataBaseCnv.h.

IRawDataCnvSvc* RawDataHltCnv::m_RawDataAccess [private]

Define the interface to raw data cnv.

Definition at line 64 of file RawDataHltCnv.h.

Referenced by initialize().


Generated on Tue Nov 29 23:20:45 2016 for BOSS_7.0.2 by  doxygen 1.4.7