Skip to content

Commit

Permalink
replaced boost::ptr_list for stl alternatives
Browse files Browse the repository at this point in the history
  • Loading branch information
camolezi committed Jun 29, 2020
1 parent 442ae07 commit bc5e419
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 36 deletions.
10 changes: 7 additions & 3 deletions OnlineDB/EcalCondDB/interface/LMFUnique.h
Expand Up @@ -5,10 +5,14 @@
Giovanni.Organtini@roma1.infn.it 2010
*/

#include <stdexcept>
#include <algorithm>
#include <cstring>
#include <iostream>
#include <list>
#include <map>
#include <boost/ptr_container/ptr_list.hpp>
#include <memory>
#include <stdexcept>

#include "OnlineDB/EcalCondDB/interface/Tm.h"
#include "OnlineDB/EcalCondDB/interface/IUniqueDBObject.h"
#include "OnlineDB/Oracle/interface/Oracle.h"
Expand Down Expand Up @@ -70,7 +74,7 @@ class LMFUnique : public IUniqueDBObject {
inline void debug() { m_debug = 1; }
inline void nodebug() { m_debug = 0; }

virtual boost::ptr_list<LMFUnique> fetchAll() const noexcept(false);
virtual std::list<std::unique_ptr<LMFUnique>> fetchAll() const noexcept(false);

virtual bool operator<(const LMFUnique &r) { return (m_ID < r.m_ID); }
virtual bool operator<=(const LMFUnique &r) { return (m_ID <= r.m_ID); }
Expand Down
15 changes: 10 additions & 5 deletions OnlineDB/EcalCondDB/src/LMFColor.cc
Expand Up @@ -96,14 +96,19 @@ void LMFColor::getParameters(ResultSet *rset) {
setString("lname", rset->getString(3));
}

template <typename T, typename U>
inline T &unique_static_cast(U &i) {
return *(static_cast<T *>(i.get()));
}

bool LMFColor::isValid() {
boost::ptr_list<LMFUnique> listOfValidColors = fetchAll();
boost::ptr_list<LMFUnique>::const_iterator i = listOfValidColors.begin();
boost::ptr_list<LMFUnique>::const_iterator e = listOfValidColors.end();
auto listOfValidColors = fetchAll();
auto i = listOfValidColors.begin();
auto e = listOfValidColors.end();
bool ret = false;
while (i != e) {
const LMFColor *c = static_cast<const LMFColor *>(&(*i));
if (c->getShortName() == getShortName()) {
const LMFColor &c = unique_static_cast<const LMFColor>(*i);
if (c.getShortName() == getShortName()) {
ret = true;
i = e;
}
Expand Down
39 changes: 21 additions & 18 deletions OnlineDB/EcalCondDB/src/LMFDefFabric.cc
Expand Up @@ -144,6 +144,11 @@ LMFRunTag LMFDefFabric::getRunTagFromID(int id) const {

int LMFDefFabric::getRunTagID(std::string tag, int version) const { return getRunTag(tag, version).getID(); }

template <typename T, typename U>
inline T &unique_static_cast(U &i) {
return *(static_cast<T *>(i.get()));
}

void LMFDefFabric::initialize() noexcept(false) {
_lmfColors.clear();
_lmfTrigTypes.clear();
Expand All @@ -152,60 +157,58 @@ void LMFDefFabric::initialize() noexcept(false) {
_lmfSeqVersions.clear();
_lmfCorrVersions.clear();
if ((m_env != nullptr) && (m_conn != nullptr)) {
boost::ptr_list<LMFUnique> listOfObjects;
boost::ptr_list<LMFUnique>::const_iterator i;
boost::ptr_list<LMFUnique>::const_iterator e;
listOfObjects = LMFColor(m_env, m_conn).fetchAll();
i = listOfObjects.begin();
e = listOfObjects.end();
auto listOfObjects = LMFColor(m_env, m_conn).fetchAll();
auto i = listOfObjects.begin();
auto e = listOfObjects.end();

while (i != e) {
const LMFColor *c = static_cast<const LMFColor *>(&(*i));
_lmfColors.push_back(*c);
const LMFColor &c = unique_static_cast<const LMFColor>(*i);
_lmfColors.push_back(c);
i++;
}
listOfObjects.clear();
listOfObjects = LMFTrigType(m_env, m_conn).fetchAll();
i = listOfObjects.begin();
e = listOfObjects.end();
while (i != e) {
const LMFTrigType *c = static_cast<const LMFTrigType *>(&(*i));
_lmfTrigTypes.push_back(*c);
const LMFTrigType &c = unique_static_cast<const LMFTrigType>(*i);
_lmfTrigTypes.push_back(c);
i++;
}
listOfObjects.clear();
listOfObjects = LMFRunTag(m_env, m_conn).fetchAll();
i = listOfObjects.begin();
e = listOfObjects.end();
while (i != e) {
const LMFRunTag *c = static_cast<const LMFRunTag *>(&(*i));
_lmfRunTags.push_back(*c);
const LMFRunTag &c = unique_static_cast<const LMFRunTag>(*i);
_lmfRunTags.push_back(c);
i++;
}
listOfObjects.clear();
listOfObjects = LMFPrimVers(m_env, m_conn).fetchAll();
i = listOfObjects.begin();
e = listOfObjects.end();
while (i != e) {
const LMFPrimVers *c = static_cast<const LMFPrimVers *>(&(*i));
_lmfPrimVersions.push_back(*c);
const LMFPrimVers &c = unique_static_cast<const LMFPrimVers>(*i);
_lmfPrimVersions.push_back(c);
i++;
}
listOfObjects.clear();
listOfObjects = LMFCorrVers(m_env, m_conn).fetchAll();
i = listOfObjects.begin();
e = listOfObjects.end();
while (i != e) {
const LMFCorrVers *c = static_cast<const LMFCorrVers *>(&(*i));
_lmfCorrVersions.push_back(*c);
const LMFCorrVers &c = unique_static_cast<const LMFCorrVers>(*i);
_lmfCorrVersions.push_back(c);
i++;
}
listOfObjects.clear();
listOfObjects = LMFSeqVers(m_env, m_conn).fetchAll();
i = listOfObjects.begin();
e = listOfObjects.end();
while (i != e) {
const LMFSeqVers *c = static_cast<const LMFSeqVers *>(&(*i));
_lmfSeqVersions.push_back(*c);
const LMFSeqVers &c = unique_static_cast<const LMFSeqVers>(*i);
_lmfSeqVersions.push_back(c);
i++;
}
listOfObjects.clear();
Expand Down
8 changes: 4 additions & 4 deletions OnlineDB/EcalCondDB/src/LMFUnique.cc
Expand Up @@ -58,11 +58,11 @@ void LMFUnique::attach(std::string name, LMFUnique* u) {
}
}

boost::ptr_list<LMFUnique> LMFUnique::fetchAll() const noexcept(false) {
std::list<std::unique_ptr<LMFUnique>> LMFUnique::fetchAll() const noexcept(false) {
/*
Returns a list of pointers to DB objects
*/
boost::ptr_list<LMFUnique> l;
std::list<std::unique_ptr<LMFUnique>> l;
this->checkConnection();

try {
Expand All @@ -84,8 +84,8 @@ boost::ptr_list<LMFUnique> LMFUnique::fetchAll() const noexcept(false) {
o->dump();
}
try {
l.push_back(o);
} catch (boost::bad_pointer& e) {
l.emplace_back(o);
} catch (std::exception& e) {
throw(std::runtime_error(m_className + "::fetchAll: " + e.what()));
}
}
Expand Down
9 changes: 3 additions & 6 deletions OnlineDB/EcalCondDB/test/TestLMF2010-write.cpp
Expand Up @@ -117,13 +117,10 @@ class CondDBApp {
cout << "Does not exists" << endl;
}
// we can just get the tags from the DB
boost::ptr_list<LMFUnique> listOfTags = lmfruntag.fetchAll();
boost::ptr_list<LMFUnique>::iterator itag = listOfTags.begin();
boost::ptr_list<LMFUnique>::iterator etag = listOfTags.end();
auto listOfTags = lmfruntag.fetchAll();
cout << "Found " << listOfTags.size() << " tags" << endl;
while (itag != etag) {
itag->dump();
itag++;
for (auto &tag : listOfTags) {
tag->dump();
}
// we can also get the tags from the fabric
lmfruntag = fabric.getRunTag("gen", 3);
Expand Down

0 comments on commit bc5e419

Please sign in to comment.