CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DQMXMLFileSourceHandler.cc
Go to the documentation of this file.
5 #include <iostream>
6 #include <sstream>
7 #include <vector>
8 
9 namespace popcon {
11  : m_name(pset.getUntrackedParameter<std::string>("name", "DQMXMLFileSourceHandler")),
12  m_file(pset.getUntrackedParameter<std::string>("XMLFile", "./file.xml")),
13  m_zip(pset.getUntrackedParameter<bool>("zip", false)),
14  m_since(pset.getUntrackedParameter<unsigned long long>("firstSince", 1)),
15  m_debugMode(pset.getUntrackedParameter<bool>("debug", false)) {}
16 
18 
20  edm::LogInfo("DQMXMLFileSourceHandler")
21  << "[DQMXMLFileSourceHandler::getNewObjects] for PopCon application " << m_name;
22  if (m_debugMode) {
23  std::stringstream ss;
24  ss << "\n------- " << m_name << " - > getNewObjects\n";
25  if (this->tagInfo().size > 0) {
26  //check what is already inside of the database
27  ss << "\ngot offlineInfo " << this->tagInfo().name << ",\n size " << this->tagInfo().size << ",\n"
28  << "last object valid since " << this->tagInfo().lastInterval.since << ",\n token "
29  << this->tagInfo().lastInterval.payloadId << ",\n UserText " << this->userTextLog()
30  << ";\n last entry info regarding the payload (if existing):"
31  << ",\n logId" << this->logDBEntry().logId
32  << ",\n last record with the correct tag (if existing) has been written in the db "
33  << this->logDBEntry().destinationDB << ",\n provenance " << this->logDBEntry().provenance << ",\n usertext "
34  << this->logDBEntry().usertext << ",\n iovtag " << this->logDBEntry().iovtag << ",\n timetype "
35  << this->logDBEntry().iovtimetype << ",\n payload index " << this->logDBEntry().payloadIdx
36  << ",\n payload class " << this->logDBEntry().payloadClass << ",\n payload token "
37  << this->logDBEntry().payloadToken << ",\n execution time " << this->logDBEntry().exectime
38  << ",\n execution message " << this->logDBEntry().execmessage << std::endl;
39  Ref payload = this->lastPayload();
40  ss << "size of last payload " << payload->size() << std::endl;
41  } else {
42  ss << " First object for this tag " << std::endl;
43  }
44  edm::LogInfo("DQMXMLFileSourceHandler") << ss.str();
45  }
46  edm::LogInfo("DQMXMLFileSourceHandler") << "runnumber/first since = " << m_since << std::endl;
47  if (this->tagInfo().size > 0 && m_since <= this->tagInfo().lastInterval.since) {
48  edm::LogInfo("DQMXMLFileSourceHandler")
49  << "[DQMXMLFileSourceHandler::getNewObjects] \nthe current starting iov " << m_since
50  << "\nis not compatible with the last iov (" << this->tagInfo().lastInterval.since << ") open for the object "
51  << this->logDBEntry().payloadClass << " \nin the db " << this->logDBEntry().destinationDB
52  << " \n NO TRANSFER NEEDED" << std::endl;
53  return;
54  }
55  edm::LogInfo("DQMXMLFileSourceHandler")
56  << "[DQMXMLFileSourceHandler::getNewObjects] " << m_name << " getting data to be transferred " << std::endl;
57  FileBlob* XMLFile = new FileBlob(m_file, m_zip);
58  /*if(!this->tagInfo().size)
59  m_since=1;
60  else
61  if (m_debugMode)
62  m_since=this->tagInfo().lastInterval.first+1; */
63  if (XMLFile->size() != 0) {
64  edm::LogInfo("DQMXMLFileSourceHandler") << "setting runnumber/first since = " << m_since << std::endl;
65  this->m_to_transfer.push_back(std::make_pair(XMLFile, m_since));
66  } else {
67  edm::LogError("DQMSummarySourceHandler") << "XML file " << m_file << " does not exist" << std::endl;
68  delete XMLFile;
69  }
70  edm::LogInfo("DQMSummarySourceHandler") << "------- " << m_name << " - > getNewObjects" << std::endl;
71  }
72 
74 } // namespace popcon
std::string const & userTextLog() const
Iov_t lastInterval
Definition: Types.h:73
unsigned long long logId
Definition: Types.h:87
std::string provenance
Definition: Types.h:89
std::string payloadToken
Definition: Types.h:96
Time_t since
Definition: Types.h:53
size_t size
Definition: Types.h:74
std::string execmessage
Definition: Types.h:98
Log< level::Error, false > LogError
std::string name
Definition: Types.h:72
std::vector< std::pair< FileBlob *, Time_t > > m_to_transfer
std::string payloadClass
Definition: Types.h:95
DQMXMLFileSourceHandler(const edm::ParameterSet &pset)
cond::LogDBEntry_t const & logDBEntry() const
Hash payloadId
Definition: Types.h:55
std::string destinationDB
Definition: Types.h:88
int size() const
Definition: FileBlob.h:36
Log< level::Info, false > LogInfo
std::string exectime
Definition: Types.h:97
std::string id() const override
unsigned int payloadIdx
Definition: Types.h:93
std::string usertext
Definition: Types.h:90
tuple size
Write out results.
cond::TagInfo_t const & tagInfo() const
std::string iovtimetype
Definition: Types.h:92
std::string iovtag
Definition: Types.h:91