[atlas] / offline / TestBeam / TBCnv / TBCnv / TBDataCnv.icc Repository:
ViewVC logotype

View of /offline/TestBeam/TBCnv/TBCnv/TBDataCnv.icc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (download) (annotate)
Fri Jun 11 15:17:37 2004 UTC (8 years, 11 months ago) by delsart
Branch: MAIN
CVS Tags: offline-10-03-00, TBCnv-00-02-23, offline-09-03-00, offline-10-00-02, offline-10-00-01, offline-10-00-00, offline-10-00-06, offline-10-00-04, TBCnv-00-02-26, TBCnv-00-02-27, offline-11-02-00, TBCnv-00-02-24, offline-08-05-00, TBCnv-00-02-25, offline-10-00-03, TBCnv-00-02-19, TBCnv-00-02-18, offline-11-00-06, offline-09-00-00, offline-11-00-04, offline-11-00-05, offline-11-00-02, offline-11-00-03, offline-11-00-00, offline-11-00-01, TestBeam-00-00-19, TBCnv-00-02-13, offline-10-05-00, offline-09-02-00, offline-11-01-00, TestBeam-AtlasOffline-00-00-08, TestBeam-AtlasOffline-00-00-01, TestBeam-AtlasOffline-00-00-00, TestBeam-AtlasOffline-00-00-03, TBCnv-00-02-43, TestBeam-AtlasOffline-00-00-05, TestBeam-AtlasOffline-00-00-04, TestBeam-AtlasOffline-00-00-07, TestBeam-AtlasOffline-00-00-06, TBCnv-00-02-11, offline-10-02-00, TBCnv-00-02-10, TestBeam-00-00-05, TestBeam-00-00-09, TestBeam-00-00-08, TBCnv-00-02-29, offline-09-01-02, offline-09-04-00, TBCnv-00-02-16, TBCnv-00-02-22, TestBeam-00-00-13, TBCnv-00-02-20, TestBeam-00-00-11, TestBeam-00-00-16, TestBeam-00-00-17, TestBeam-00-00-14, TestBeam-00-00-15, TBCnv-00-02-28, offline-11-00-41, TestBeam-AtlasRelease-00-00-00, TBCnv-00-02-40, TBCnv-00-02-41, TBCnv-00-02-42, TBCnv-00-02-31, TBCnv-00-02-30, TBCnv-00-02-33, TestBeam-AtlasOffline-00-00-02, TBCnv-00-02-35, TestBeam-00-00-22, TestBeam-00-00-21, TestBeam-00-00-20, TBCnv-00-02-39, TBCnv-00-02-44, TBCnv-00-02-45, offline-09-00-01, TBCnv-00-02-46, TBCnv-00-02-12, TBCnv-00-02-47, offline-09-00-03, offline-09-00-02, TBCnv-00-02-17, offline-09-00-04, TBCnv-00-02-15, TBCnv-00-02-14, offline-08-06-00, TBCnv-00-03-10, TBCnv-00-03-11, TBCnv-00-03-12, TBCnv-00-03-13, TBCnv-00-03-14, TBCnv-00-02-32, TestBeam-00-00-23, TBCnv-00-02-34, TBCnv-00-02-37, TBCnv-00-02-36, TBCnv-00-02-38, TBCnv-00-03-07, TBCnv-00-03-06, TBCnv-00-03-05, TBCnv-00-03-04, TBCnv-00-03-03, TBCnv-00-03-02, TBCnv-00-03-01, TBCnv-00-03-00, offline-08-04-00, TBCnv-00-03-09, TBCnv-00-03-08, TBCnv-00-02-21, TBCnv-00-02-08, TBCnv-00-02-09, offline-08-07-00, TBCnv-00-02-07, offline-08-08-00, offline-08-08-01, offline-10-04-01, offline-10-04-00, HEAD
Changes since 1.1: +5 -1 lines
added H6 miniROD Cnv
//Dear emacs, this is -*- c++ -*-
#include "TBCnv/TBDataCnv.h"
#include "GaudiKernel/MsgStream.h"
#include "GaudiKernel/CnvFactory.h"

#include <string>

template< class DATATYPE >
TBDataCnv<DATATYPE>::TBDataCnv(ISvcLocator* svcloc) :
    Converter(ByteStream_StorageType, classID(),svcloc)
{
}

template< class DATATYPE >
const CLID& TBDataCnv<DATATYPE>::classID(){
  return ClassID_traits<DATATYPE>::ID() ;
}

template< class DATATYPE >
StatusCode TBDataCnv<DATATYPE>::initialize()
{StatusCode sc = Converter::initialize(); 
 if (sc!=StatusCode::SUCCESS)
    return sc; 
 MsgStream logstr(messageService(), "TBDataCnv");
 IToolSvc* toolSvc;
 sc=service("ToolSvc",toolSvc);
 if(sc!=StatusCode::SUCCESS)
   {logstr << MSG::ERROR << " Can't get ToolSvc " << endreq;
    return sc;
   }
 sc=toolSvc->retrieveTool("TBByteStreamCnvTool",m_tool);
  if(sc!=StatusCode::SUCCESS)
   {logstr << MSG::ERROR << " Can't get TBByteStreamCnvTool" << endreq;
    return sc;
   }
  return StatusCode::SUCCESS;
}

template< class DATATYPE >
StatusCode TBDataCnv<DATATYPE>::createObj(IOpaqueAddress* pAddr, DataObject*& pObj) 
{ MsgStream logstr(messageService(), "TBDataCnv");
  ByteStreamAddress *pRE_Addr;
  pRE_Addr = dynamic_cast<ByteStreamAddress*>(pAddr); //Cast from OpaqueAddress to ByteStreamAddress
  if (!pRE_Addr)
    {logstr << MSG::ERROR << "dynamic_cast of IOpaqueAdress to ByteStreamAddress failed!" << endreq;
     return StatusCode::FAILURE;
    }
  DATATYPE* tbdata; 
  const std::string& key = *(pAddr->par()); // Get key used in the 
                                            // StoreGateSvc::retrieve function
  StatusCode sc=m_tool->ReadFragment(tbdata,key);
  if (sc!=StatusCode::SUCCESS)
    return sc;
  pObj = SG::asStorable(tbdata) ;
  return StatusCode::SUCCESS;
}

template< class DATATYPE >
StatusCode TBDataCnv<DATATYPE>::createRep(DataObject* pObj, IOpaqueAddress*& pAddr)
{  
  std::string nm = pObj->registry()->name(); 
  ByteStreamAddress* addr = new ByteStreamAddress(classID(),nm,""); 
  pAddr = addr; 

  return m_tool->WriteFragment();

}

CERN Central CVS service
ViewVC Help
Powered by ViewVC 1.0.9