4 #define IMPORT_PAYLOAD_CASE( TYPENAME ) \
5 if( inputTypeName == #TYPENAME ){ \
7 const TYPENAME& obj = *static_cast<const TYPENAME*>( inputPtr ); \
8 payloadId = destination.storePayload( obj, boost::posix_time::microsec_clock::universal_time() ); \
11 #define IGNORE_FOR_IMPORT_CASE( TYPENAME ) \
12 if( inputTypeName == #TYPENAME ){ \
16 std::cout <<"WARNING: typename "<<inputTypeName<<" will be skipped in the import."<<std::endl; \
19 #define FETCH_PAYLOAD_CASE( TYPENAME ) \
20 if( payloadTypeName == #TYPENAME ){ \
21 auto payload = deserialize<TYPENAME>( payloadTypeName, data, streamerInfo, isOra ); \
22 payloadPtr = payload; \
43 namespace persistency {
46 boost::shared_ptr<void> payloadPtr;
50 exists = session.
fetchPayloadData( payloadId, payloadTypeName, data, streamerInfo );
53 return fetchOne(payloadTypeName, data, streamerInfo, payloadPtr, isOra);
54 }
else return std::make_pair(
std::string(
""), boost::shared_ptr<void>() );
59 bool newInsert =
false;
223 if( inputTypeName ==
"L1TriggerKeyList" ){
231 std::cout <<
"WARNING: L1Trigger key stored on "<<sourcePid<<
" has not been migrated (yet?). Attemping to do the export..."<<std::endl;
233 std::pair<std::string,boost::shared_ptr<void> > missingPayload =
fetchIfExists( sourcePid,
source, exists );
234 if( exists ) pid =
import(
source, sourcePid, missingPayload.first, missingPayload.second.get(),
destination );
235 std::cout <<
"WARNING: OID "<<sourcePid<<
" will be mapped to HASH "<<pid<<std::endl;
238 converted.
addKey( kitem.first, pid );
241 for(
const auto& kitem : ritem.second ){
245 std::cout <<
"WARNING: L1Trigger key stored on "<<sourcePid<<
" has not been migrated (yet?). Attemping to do the export..."<<std::endl;
247 std::pair<std::string,boost::shared_ptr<void> > missingPayload =
fetchIfExists( sourcePid,
source, exists );
248 if( exists ) pid =
import(
source, sourcePid, missingPayload.first, missingPayload.second.get(),
destination );
249 std::cout <<
"WARNING: OID "<<sourcePid<<
" will be mapped to HASH "<<pid<<std::endl;
252 converted.
addKey( ritem.first, kitem.first, pid );
255 payloadId =
destination.storePayload( converted, boost::posix_time::microsec_clock::universal_time() );
319 if( inputTypeName ==
"PhysicsTools::Calibration::Histogram3D<double,double,double,double>" ){
322 payloadId =
destination.storePayload( obj, boost::posix_time::microsec_clock::universal_time() );
324 if( inputTypeName ==
"PhysicsTools::Calibration::Histogram2D<double,double,double>" ){
327 payloadId =
destination.storePayload( obj, boost::posix_time::microsec_clock::universal_time() );
329 if( inputTypeName ==
"std::vector<unsignedlonglong,std::allocator<unsignedlonglong>>" ){
331 const std::vector<unsigned long long>&
obj = *
static_cast<const std::vector<unsigned long long>*
>( inputPtr );
332 payloadId =
destination.storePayload( obj, boost::posix_time::microsec_clock::universal_time() );
335 if( ! match )
throwException(
"Payload type \""+inputTypeName+
"\" is unknown.",
"import" );
341 boost::shared_ptr<void> payloadPtr;
346 if( !found )
throwException(
"Payload with id "+boost::lexical_cast<std::string>(payloadId)+
" has not been found in the database.",
"fetchAndCompare" );
349 return fetchOne(payloadTypeName, data, streamerInfo, payloadPtr, isOra);
579 if( payloadTypeName ==
"PhysicsTools::Calibration::Histogram3D<double,double,double,double>" ){
580 auto payload = deserialize<PhysicsTools::Calibration::Histogram3D<double,double,double,double> >(payloadTypeName,
data, streamerInfo, isOra );
581 payloadPtr = payload;
584 if( payloadTypeName ==
"PhysicsTools::Calibration::Histogram2D<double,double,double>" ){
585 auto payload = deserialize<PhysicsTools::Calibration::Histogram2D<double,double,double> >(payloadTypeName,
data, streamerInfo, isOra );
586 payloadPtr = payload;
589 if( payloadTypeName ==
"std::vector<unsignedlonglong,std::allocator<unsignedlonglong>>" ){
590 auto payload = deserialize<std::vector<unsigned long long> >( payloadTypeName,
data, streamerInfo, isOra );
591 payloadPtr = payload;
595 if( ! match )
throwException(
"Payload type \""+payloadTypeName+
"\" is unknown.",
"fetch" );
596 return std::make_pair( payloadTypeName, payloadPtr );
std::pair< std::string, boost::shared_ptr< void > > fetchOne(const std::string &payloadTypeName, const cond::Binary &data, const cond::Binary &streamerInfo, boost::shared_ptr< void > payloadPtr, bool is Ora)
#define FETCH_PAYLOAD_CASE(TYPENAME)
QGLikelihoodObject containing valid range and entries with category, histogram and mean...
#define IMPORT_PAYLOAD_CASE(TYPENAME)
bool fetchPayloadData(const cond::Hash &payloadHash, std::string &payloadType, cond::Binary &payloadData, cond::Binary &streamerInfoData)
const RecordToKeyToToken & recordTypeToKeyToTokenMap() const
std::pair< std::string, boost::shared_ptr< void > > fetch(const cond::Hash &payloadId, Session &session)
Category structure: ranges associated with QGLikelihood histograms.
const KeyToToken & tscKeyToTokenMap() const
Contains cabling info at the device level, including DetId, APV pair numbers, hardware addresses...
char data[epos_bytes_allocation]
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
std::pair< std::string, boost::shared_ptr< void > > fetchIfExists(const cond::Hash &payloadId, Session &session, bool &exists)
QGLikelihoodSystematicsObject containing the parameters for the systematic smearing.
bool addKey(const std::string &tscKey, const std::string &payloadToken, bool overwriteKey=false)
static std::string const source
void throwException(const std::string &message, const std::string &methodName)