00001 #include "CondCore/DBCommon/interface/TokenBuilder.h"
00002 #include "POOLCore/Token.h"
00003 #include "StorageSvc/DbType.h"
00004 #include "StorageSvc/DbReflex.h"
00005 #include "SealBase/SharedLibrary.h"
00006
00007
00008 namespace cond{
00009 TokenBuilder::TokenBuilder(): m_token(new pool::Token){
00010 m_token->setTechnology(pool::POOL_RDBMS_HOMOGENEOUS_StorageType.type());
00011 }
00012 TokenBuilder::~TokenBuilder(){
00013 delete m_token;
00014 }
00015 void TokenBuilder::set(const std::string& fid,
00016 const std::string& dictLib,
00017 const std::string& className,
00018 const std::string& containerName,
00019 int pkcolumnValue){
00020 seal::SharedLibrary::load( "lib" + dictLib + ".so" );
00021 ROOT::Reflex::Type myclass=ROOT::Reflex::Type::ByName(className);
00022 m_token->setDb(fid);
00023 m_token->setClassID(pool::DbReflex::guid(myclass));
00024 m_token->setCont(containerName);
00025 m_token->oid().first=0;
00026 m_token->oid().second=pkcolumnValue;
00027 }
00028 void TokenBuilder::resetOID( int pkcolumnValue ){
00029 m_token->oid().first=0;
00030 m_token->oid().second=pkcolumnValue;
00031 }
00032 std::string TokenBuilder::tokenAsString() const{
00033 return m_token->toString();
00034 }
00035 }