File indexing completed on 2023-10-25 09:57:12
0001 #include "OnlineDB/CSCCondDB/interface/CSCCableRead.h"
0002 #include <cstdlib>
0003
0004
0005
0006
0007 csccableread::csccableread() noexcept(false) {
0008 std::string db_user;
0009 std::string db_pass;
0010 env = oracle::occi::Environment::createEnvironment(oracle::occi::Environment::DEFAULT);
0011 char *c_user = std::getenv("CSCMAP_AUTH_USER");
0012 char *c_pass = std::getenv("CSCMAP_AUTH_PASSWORD");
0013 db_user = std::string(c_user);
0014 db_pass = std::string(c_pass);
0015 con = env->createConnection(db_user, db_pass, "cms_orcoff_prod");
0016 std::cout << "Connection to cable DB is done." << std::endl;
0017 }
0018
0019
0020
0021 csccableread::~csccableread() noexcept(false) {
0022 env->terminateConnection(con);
0023 oracle::occi::Environment::terminateEnvironment(env);
0024 }
0025
0026 void csccableread::cable_read(int chamber_index,
0027 std::string *chamber_label,
0028 float *cfeb_length,
0029 std::string *cfeb_rev,
0030 float *alct_length,
0031 std::string *alct_rev,
0032 float *cfeb_tmb_skew_delay,
0033 float *cfeb_timing_corr) {
0034 oracle::occi::Statement *stmt = con->createStatement();
0035 stmt->setSQL("begin cms_emu_cern.cable_read.cable(:1, :2, :3, :4, :5, :6, :7, :8); end;");
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056 stmt->setInt(1, chamber_index);
0057 stmt->registerOutParam(2, oracle::occi::OCCISTRING, 9);
0058 stmt->registerOutParam(3, oracle::occi::OCCIFLOAT);
0059 stmt->registerOutParam(4, oracle::occi::OCCISTRING, 1);
0060 stmt->registerOutParam(5, oracle::occi::OCCIFLOAT);
0061 stmt->registerOutParam(6, oracle::occi::OCCISTRING, 1);
0062 stmt->registerOutParam(7, oracle::occi::OCCIFLOAT);
0063 stmt->registerOutParam(8, oracle::occi::OCCIFLOAT);
0064
0065 stmt->execute();
0066
0067 *chamber_label = stmt->getString(2);
0068 *cfeb_length = stmt->getFloat(3);
0069 *cfeb_rev = stmt->getString(4);
0070 *alct_length = stmt->getFloat(5);
0071 *alct_rev = stmt->getString(6);
0072 *cfeb_tmb_skew_delay = stmt->getFloat(7);
0073 *cfeb_timing_corr = stmt->getFloat(8);
0074
0075 con->terminateStatement(stmt);
0076 }