CMS 3D CMS Logo

edm::EventEntryDescription Class Reference

#include <DataFormats/Provenance/interface/EventEntryDescription.h>

List of all members.

Public Member Functions

 EventEntryDescription ()
EntryDescriptionID id () const
ModuleDescription const & moduleDescription () const
ModuleDescriptionIDmoduleDescriptionID ()
ModuleDescriptionID const & moduleDescriptionID () const
std::string const & moduleName () const
std::vector< BranchID > & parents ()
std::vector< BranchID > const & parents () const
PassID const & passID () const
ParameterSetID const & psetID () const
ReleaseVersion const & releaseVersion () const
void setDefaultTransients () const
void write (std::ostream &os) const
 ~EventEntryDescription ()

Private Member Functions

boost::shared_ptr
< ModuleDescription > & 
getModuleDescriptionPtr () const
void init () const
boost::shared_ptr
< ModuleDescription > & 
moduleDescriptionPtr () const

Private Attributes

ModuleDescriptionID moduleDescriptionID_
std::vector< BranchIDparents_
Transient< Transientstransients_

Classes

struct  Transients


Detailed Description

Definition at line 31 of file EventEntryDescription.h.


Constructor & Destructor Documentation

edm::EventEntryDescription::EventEntryDescription (  ) 

Definition at line 11 of file EventEntryDescription.cc.

00011                                                :
00012     parents_(),
00013     moduleDescriptionID_(),
00014     transients_()
00015   { }

edm::EventEntryDescription::~EventEntryDescription (  )  [inline]

Definition at line 35 of file EventEntryDescription.h.

00035 {}


Member Function Documentation

boost::shared_ptr<ModuleDescription>& edm::EventEntryDescription::getModuleDescriptionPtr (  )  const [inline, private]

Definition at line 65 of file EventEntryDescription.h.

References init(), and transients_.

Referenced by moduleDescription(), moduleName(), passID(), psetID(), and releaseVersion().

00065                                                                          {
00066       init();
00067       return transients_.get().moduleDescriptionPtr_;
00068     }

EntryDescriptionID edm::EventEntryDescription::id ( void   )  const

Definition at line 28 of file EventEntryDescription.cc.

References cms::Digest::digest(), e, i, moduleDescriptionID_, and parents_.

Referenced by edm::RootFile::readEntryDescriptionTree().

00029   {
00030     // This implementation is ripe for optimization.
00031     std::ostringstream oss;
00032     oss << moduleDescriptionID_ << ' ';
00033     for (std::vector<BranchID>::const_iterator 
00034            i = parents_.begin(),
00035            e = parents_.end();
00036          i != e;
00037          ++i)
00038       {
00039         oss << *i << ' ';
00040       }
00041     
00042     std::string stringrep = oss.str();
00043     cms::Digest md5alg(stringrep);
00044     return EntryDescriptionID(md5alg.digest().toString());
00045   }

void edm::EventEntryDescription::init ( void   )  const [private]

Definition at line 18 of file EventEntryDescription.cc.

References edm::detail::ThreadSafeRegistry< KEY, T, E >::instance(), moduleDescriptionID_, and moduleDescriptionPtr().

Referenced by getModuleDescriptionPtr().

00018                                     {
00019     if (!moduleDescriptionPtr()) {
00020       moduleDescriptionPtr().reset(new ModuleDescription);
00021       bool found = ModuleDescriptionRegistry::instance()->getMapped(moduleDescriptionID_, *moduleDescriptionPtr());
00022 
00023       assert(found);
00024     }
00025   }

ModuleDescription const& edm::EventEntryDescription::moduleDescription (  )  const [inline]

Definition at line 51 of file EventEntryDescription.h.

References getModuleDescriptionPtr().

Referenced by edm::Provenance::moduleDescription().

00051 {return *getModuleDescriptionPtr();}

ModuleDescriptionID& edm::EventEntryDescription::moduleDescriptionID (  )  [inline]

Definition at line 50 of file EventEntryDescription.h.

References moduleDescriptionID_.

00050 {return moduleDescriptionID_;}

ModuleDescriptionID const& edm::EventEntryDescription::moduleDescriptionID (  )  const [inline]

Definition at line 49 of file EventEntryDescription.h.

References moduleDescriptionID_.

Referenced by edm::Provenance::moduleDescriptionID(), edm::operator==(), edm::RootFile::readEntryDescriptionTree(), edm::RunLumiEntryInfo::RunLumiEntryInfo(), edm::StreamSerializer::serializeEvent(), and write().

00049 {return moduleDescriptionID_;}

boost::shared_ptr<ModuleDescription>& edm::EventEntryDescription::moduleDescriptionPtr (  )  const [inline, private]

Definition at line 70 of file EventEntryDescription.h.

References transients_.

Referenced by init().

00070                                                                       {
00071       return transients_.get().moduleDescriptionPtr_;
00072     }

std::string const& edm::EventEntryDescription::moduleName (  )  const [inline]

Definition at line 42 of file EventEntryDescription.h.

References getModuleDescriptionPtr().

Referenced by edm::Provenance::moduleName().

00042 {return getModuleDescriptionPtr()->moduleName_;}

std::vector<BranchID>& edm::EventEntryDescription::parents (  )  [inline]

Definition at line 47 of file EventEntryDescription.h.

References parents_.

00047 {return parents_;}

std::vector<BranchID> const& edm::EventEntryDescription::parents (  )  const [inline]

Definition at line 46 of file EventEntryDescription.h.

References parents_.

Referenced by edm::OutputModule::fillDependencyGraph(), edm::RootOutputFile::insertAncestors(), edm::markAncestors(), edm::operator==(), edm::Provenance::parents(), and edm::StreamSerializer::serializeEvent().

00046 {return parents_;}

PassID const& edm::EventEntryDescription::passID (  )  const [inline]

Definition at line 43 of file EventEntryDescription.h.

References getModuleDescriptionPtr().

Referenced by edm::Provenance::passID().

00043 {return getModuleDescriptionPtr()->passID();}

ParameterSetID const& edm::EventEntryDescription::psetID (  )  const [inline]

Definition at line 44 of file EventEntryDescription.h.

References getModuleDescriptionPtr().

Referenced by edm::Provenance::psetID().

00044 {return getModuleDescriptionPtr()->parameterSetID();}

ReleaseVersion const& edm::EventEntryDescription::releaseVersion (  )  const [inline]

Definition at line 45 of file EventEntryDescription.h.

References getModuleDescriptionPtr().

Referenced by edm::Provenance::releaseVersion().

00045 {return getModuleDescriptionPtr()->releaseVersion();}

void edm::EventEntryDescription::setDefaultTransients (  )  const [inline]

Definition at line 58 of file EventEntryDescription.h.

References transients_.

00058                                       {
00059         transients_ = Transients();
00060     };

void edm::EventEntryDescription::write ( std::ostream &  os  )  const

Definition at line 49 of file EventEntryDescription.cc.

References moduleDescriptionID().

Referenced by edm::operator<<().

00049                                                    {
00050     // This is grossly inadequate, but it is not critical for the
00051     // first pass.
00052     os << "Module Description ID = " << moduleDescriptionID() << '\n';
00053   }


Member Data Documentation

ModuleDescriptionID edm::EventEntryDescription::moduleDescriptionID_ [private]

Definition at line 79 of file EventEntryDescription.h.

Referenced by id(), init(), and moduleDescriptionID().

std::vector<BranchID> edm::EventEntryDescription::parents_ [private]

Definition at line 75 of file EventEntryDescription.h.

Referenced by id(), and parents().

Transient<Transients> edm::EventEntryDescription::transients_ [mutable, private]

Definition at line 81 of file EventEntryDescription.h.

Referenced by getModuleDescriptionPtr(), moduleDescriptionPtr(), and setDefaultTransients().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:40:53 2009 for CMSSW by  doxygen 1.5.4