Line Code
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
#include "FWCore/PluginManager/interface/PluginManager.h"
#include "FWCore/PluginManager/interface/standard.h"
#include "FWCore/PluginManager/interface/SharedLibrary.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/ServiceRegistry/interface/ServiceRegistry.h"
//
#include "CondCore/CondDB/interface/ConnectionPool.h"
//
#include "MyTestData.h"
//
#include <fstream>
#include <iomanip>
#include <cstdlib>
#include <iostream>

using namespace cond::persistency;

int run(const std::string& csWrite, const std::string& csRead) {
  try {
    //*************
    std::cout << "> Connecting with db in " << csWrite << std::endl;
    ConnectionPool connPool;
    connPool.setMessageVerbosity(coral::Debug);
    connPool.setAuthenticationPath("/build/gg");
    Session session = connPool.createSession(csWrite, true);
    session.transaction().start(false);
    MyTestData d0(1000);
    cond::Hash p0 = session.storePayload(d0);
    MyTestData d1(1001);
    cond::Hash p1 = session.storePayload(d1);
    MyTestData d2(1002);
    cond::Hash p2 = session.storePayload(d2);
    MyTestData d3(1003);
    cond::Hash p3 = session.storePayload(d3);
    MyTestData d4(1004);
    cond::Hash p4 = session.storePayload(d4);
    MyTestData d5(1005);
    cond::Hash p5 = session.storePayload(d5);
    MyTestData d6(1006);
    cond::Hash p6 = session.storePayload(d6);
    MyTestData d7(1007);
    cond::Hash p7 = session.storePayload(d7);
    MyTestData d8(1008);
    cond::Hash p8 = session.storePayload(d8);
    IOVEditor editor;
    std::string tag("MyTestData_ts_v0");
    if (!session.existsIov(tag)) {
      editor = session.createIov<MyTestData>(tag, cond::timestamp, cond::SYNCH_ANY);
      editor.setDescription("Test for group selection");
      MyTestData dummy(0);
      cond::Hash pd = session.storePayload(dummy);
      editor.insert(1, pd);
    } else {
      editor = session.editIov(tag);
    }
    boost::posix_time::ptime tb0 = boost::posix_time::second_clock::local_time();
    boost::posix_time::ptime tb1 = tb0 + boost::posix_time::seconds(600);
    boost::posix_time::ptime tb2 = tb0 + boost::posix_time::seconds(1200);
    boost::posix_time::ptime tb3 = tb0 + boost::posix_time::seconds(1800);
    boost::posix_time::ptime tb4 = tb0 + boost::posix_time::seconds(2400);
    boost::posix_time::ptime tb5 = tb0 + boost::posix_time::seconds(3000);
    boost::posix_time::ptime tb6 = tb0 + boost::posix_time::seconds(3600);
    boost::posix_time::ptime tb7 = tb0 + boost::posix_time::seconds(4200);
    boost::posix_time::ptime tb8 = tb0 + boost::posix_time::seconds(4800);
    cond::Time_t t0 = cond::time::from_boost(tb0);
    cond::Time_t t1 = cond::time::from_boost(tb1);
    cond::Time_t t2 = cond::time::from_boost(tb2);
    cond::Time_t t3 = cond::time::from_boost(tb3);
    cond::Time_t t4 = cond::time::from_boost(tb4);
    cond::Time_t t5 = cond::time::from_boost(tb5);
    cond::Time_t t6 = cond::time::from_boost(tb6);
    cond::Time_t t7 = cond::time::from_boost(tb7);
    cond::Time_t t8 = cond::time::from_boost(tb8);
    editor.insert(t0, p0);
    editor.insert(t1, p1);
    editor.insert(t2, p2);
    editor.insert(t3, p3);
    editor.insert(t4, p4);
    editor.insert(t5, p5);
    editor.insert(t6, p6);
    editor.insert(t7, p7);
    editor.insert(t8, p8);
    editor.flush();
    session.transaction().commit();
    std::cout << "> Connecting with db in " << csRead << std::endl;
    session = connPool.createSession(csRead);
    session.transaction().start();
    IOVProxy reader = session.readIov(tag);
    cond::Time_t tg0 = cond::time::from_boost(tb0 + boost::posix_time::seconds(300));
    cond::Iov_t iov0 = reader.getInterval(tg0);
    std::cout << "tg0: since " << iov0.since << " till " << iov0.till << " nqueries " << reader.numberOfQueries()
              << std::endl;
    cond::Time_t tg1 = cond::time::from_boost(tb1 + boost::posix_time::seconds(300));
    cond::Iov_t iov1 = reader.getInterval(tg1);
    std::cout << "tg1: since " << iov1.since << " till " << iov1.till << " nqueries " << reader.numberOfQueries()
              << std::endl;
    cond::Time_t tg2 = cond::time::from_boost(tb2 + boost::posix_time::seconds(300));
    cond::Iov_t iov2 = reader.getInterval(tg2);
    std::cout << "tg2: since " << iov2.since << " till " << iov2.till << " nqueries " << reader.numberOfQueries()
              << std::endl;
    cond::Time_t tg3 = cond::time::from_boost(tb3 + boost::posix_time::seconds(300));
    cond::Iov_t iov3 = reader.getInterval(tg3);
    std::cout << "tg3: since " << iov3.since << " till " << iov3.till << " nqueries " << reader.numberOfQueries()
              << std::endl;
    cond::Time_t tg4 = cond::time::from_boost(tb4 + boost::posix_time::seconds(300));
    cond::Iov_t iov4 = reader.getInterval(tg4);
    std::cout << "tg4: since " << iov4.since << " till " << iov4.till << " nqueries " << reader.numberOfQueries()
              << std::endl;
    cond::Time_t tg5 = cond::time::from_boost(tb5 + boost::posix_time::seconds(300));
    cond::Iov_t iov5 = reader.getInterval(tg5);
    std::cout << "tg5: since " << iov5.since << " till " << iov5.till << " nqueries " << reader.numberOfQueries()
              << std::endl;
    cond::Time_t tg6 = cond::time::from_boost(tb6 + boost::posix_time::seconds(300));
    cond::Iov_t iov6 = reader.getInterval(tg6);
    std::cout << "tg6: since " << iov6.since << " till " << iov6.till << " nqueries " << reader.numberOfQueries()
              << std::endl;
    cond::Time_t tg7 = cond::time::from_boost(tb7 + boost::posix_time::seconds(300));
    cond::Iov_t iov7 = reader.getInterval(tg7);
    std::cout << "tg7: since " << iov7.since << " till " << iov7.till << " nqueries " << reader.numberOfQueries()
              << std::endl;
    cond::Time_t tg8 = cond::time::from_boost(tb8 + boost::posix_time::seconds(300));
    cond::Iov_t iov8 = reader.getInterval(tg8);
    std::cout << "tg8: since " << iov8.since << " till " << iov8.till << " nqueries " << reader.numberOfQueries()
              << std::endl;
    session.transaction().commit();
  } catch (const std::exception& e) {
    std::cout << "ERROR: " << e.what() << std::endl;
    return -1;
  } catch (...) {
    std::cout << "UNEXPECTED FAILURE." << std::endl;
    return -1;
  }

  return 0;
}

int main(int argc, char** argv) {
  int ret = 0;
  edmplugin::PluginManager::Config config;
  edmplugin::PluginManager::configure(edmplugin::standard::config());
  std::string connectionString0("sqlite_file:group_selection.db");
  std::string connectionString1("sqlite_file:group_selection.db");
  ret = run(connectionString0, connectionString1);
  return ret;
}