#include <DQMNet.h>
Public Member Functions | |
DQMBasicNet (const std::string &appname="") | |
bool | removeLocalExcept (const std::set< std::string > &known) |
void | reserveLocalSpace (uint32_t size) |
Give a hint of how much capacity to allocate for local objects. | |
void | updateLocalObject (Object &o) |
Private Attributes | |
ImplPeer * | local_ |
DQMBasicNet::DQMBasicNet | ( | const std::string & | appname = "" | ) |
Definition at line 1434 of file DQMNet.cc.
References DQMImplNet< DQMNet::Object >::createPeer(), and local_.
: DQMImplNet<DQMNet::Object>(appname) { local_ = static_cast<ImplPeer *>(createPeer((Socket *) -1)); }
bool DQMBasicNet::removeLocalExcept | ( | const std::set< std::string > & | known | ) |
Delete all local objects not in known. Returns true if something was removed. The caller must call sendLocalChanges() later to push out the changes.
Definition at line 1474 of file DQMNet.cc.
References ExpressReco_HICollisions_FallBack::e, i, local_, and path().
{ size_t removed = 0; std::string path; ObjectMap::iterator i, e; for (i = local_->objs.begin(), e = local_->objs.end(); i != e; ) { path.clear(); path.reserve(i->dirname->size() + i->objname.size() + 2); path += *i->dirname; if (! path.empty()) path += '/'; path += i->objname; if (! known.count(path)) ++removed, local_->objs.erase(i++); else ++i; } return removed > 0; }
void DQMBasicNet::reserveLocalSpace | ( | uint32_t | size | ) |
void DQMBasicNet::updateLocalObject | ( | Object & | o | ) |
Update the network cache for an object. The caller must call sendLocalChanges() later to push out the changes.
Definition at line 1450 of file DQMNet.cc.
References DQMNet::CoreObject::dirname, DQMNet::CoreObject::flags, info, local_, DQMNet::Object::qdata, DQMNet::CoreObject::qreports, DQMNet::Object::rawdata, DQMNet::Object::scalar, swap(), DQMNet::CoreObject::tag, and DQMNet::CoreObject::version.
{ o.dirname = &*local_->dirs.insert(*o.dirname).first; std::pair<ObjectMap::iterator, bool> info(local_->objs.insert(o)); if (! info.second) { // Somewhat hackish. Sets are supposedly immutable, but we // need to change the non-key parts of the object. Erasing // and re-inserting would produce too much memory churn. Object &old = const_cast<Object &>(*info.first); std::swap(old.flags, o.flags); std::swap(old.tag, o.tag); std::swap(old.version, o.version); std::swap(old.qreports, o.qreports); std::swap(old.rawdata, o.rawdata); std::swap(old.scalar, o.scalar); std::swap(old.qdata, o.qdata); } }
ImplPeer* DQMBasicNet::local_ [private] |
Definition at line 602 of file DQMNet.h.
Referenced by DQMBasicNet(), removeLocalExcept(), reserveLocalSpace(), and updateLocalObject().