forked from cms-sw/cmssw
-
Notifications
You must be signed in to change notification settings - Fork 0
/
testqueryPContainer.cc
49 lines (49 loc) · 1.92 KB
/
testqueryPContainer.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "FWCore/PluginManager/interface/PluginManager.h"
#include "FWCore/PluginManager/interface/standard.h"
#include "FWCore/PluginManager/interface/SharedLibrary.h"
#include "CondCore/DBCommon/interface/DbConnection.h"
#include "CondCore/DBCommon/interface/Exception.h"
#include "CondCore/DBCommon/interface/DbTransaction.h"
#include "CondCore/IOVService/interface/IOVEditor.h"
#include "testPayloadObj.h"
#include <iostream>
int main(){
edmplugin::PluginManager::Config config;
try{
edmplugin::PluginManager::configure(edmplugin::standard::config());
cond::DbConnection connection;
connection.configuration().setMessageLevel( coral::Debug );
std::cout<<"#0 "<<std::endl;
connection.configure();
cond::DbSession pooldb = connection.createSession();
pooldb.open("sqlite_file:mytest.db");
testPayloadObj* myobj=new testPayloadObj;
myobj->data.push_back(1);
myobj->data.push_back(10);
pooldb.transaction().start(false);
cond::IOVEditor editor( pooldb );
editor.createIOVContainerIfNecessary();
std::cout << "creating\n";
editor.create(cond::timestamp, 2);
boost::shared_ptr<testPayloadObj> myPtr( myobj );
std::string token = pooldb.storeObject(myPtr.get(),"mypayloadcontainer");
std::cout<<"payload token "<<token<<std::endl;
std::cout << "appending";
editor.append(1,token);
std::string iovtok=editor.proxy().token();
std::cout<<"iov token "<<iovtok<<std::endl;
std::set<std::string> cnames=editor.proxy().payloadClasses();
pooldb.transaction().commit();
std::cout<<"Payload Class Names: "<<std::endl;
for( std::set<std::string>::iterator iC = cnames.begin(); iC != cnames.end(); ++iC ){
std::cout << *iC <<std::endl;
}
}catch(const cond::Exception& er){
std::cout<<"error "<<er.what()<<std::endl;
return -1;
}catch(const std::exception& er){
std::cout<<"std error "<<er.what()<<std::endl;
return -1;
}
return 0;
}