CMS 3D CMS Logo

Classes | Public Member Functions | Private Member Functions | Private Attributes

edm::ProductProvenance Class Reference

#include <ProductProvenance.h>

List of all members.

Classes

struct  Transients

Public Member Functions

BranchID const & branchID () const
void initializeTransients () const
ProductProvenance makeProductProvenance () const
bool & noParentage () const
Parentage const & parentage () const
ParentageID const & parentageID () const
 ProductProvenance (BranchID const &bid, ParentageID const &id)
 ProductProvenance (BranchID const &bid, boost::shared_ptr< Parentage > parentagePtr)
 ProductProvenance (BranchID const &bid)
 ProductProvenance (BranchID const &bid, std::vector< BranchID > const &parents)
 ProductProvenance ()
void write (std::ostream &os) const
 ~ProductProvenance ()

Private Member Functions

boost::shared_ptr< Parentage > & parentagePtr () const

Private Attributes

BranchID branchID_
ParentageID parentageID_
Transients transient_

Detailed Description

Definition at line 24 of file ProductProvenance.h.


Constructor & Destructor Documentation

edm::ProductProvenance::ProductProvenance ( )

Definition at line 23 of file ProductProvenance.cc.

edm::ProductProvenance::ProductProvenance ( BranchID const &  bid) [explicit]

Definition at line 29 of file ProductProvenance.cc.

edm::ProductProvenance::ProductProvenance ( BranchID const &  bid,
boost::shared_ptr< Parentage parentagePtr 
)

Definition at line 42 of file ProductProvenance.cc.

References instance, and parentagePtr().

                                                                     :
    branchID_(bid),
    parentageID_(pPtr->id()),
    transient_() {
       parentagePtr() = pPtr;
       ParentageRegistry::instance()->insertMapped(*pPtr);
  }
edm::ProductProvenance::ProductProvenance ( BranchID const &  bid,
ParentageID const &  id 
)

Definition at line 35 of file ProductProvenance.cc.

                                                             :
    branchID_(bid),
    parentageID_(edid),
    transient_()
  {}
edm::ProductProvenance::ProductProvenance ( BranchID const &  bid,
std::vector< BranchID > const &  parents 
)

Definition at line 51 of file ProductProvenance.cc.

References instance, parentageID_, parentagePtr(), and parents.

                                                       :
    branchID_(bid),
    parentageID_(),
    transient_() {
      parentagePtr() = boost::shared_ptr<Parentage>(new Parentage);
      parentagePtr()->parents() = parents;
      parentageID_ = parentagePtr()->id();
      ParentageRegistry::instance()->insertMapped(*parentagePtr());
  }
edm::ProductProvenance::~ProductProvenance ( ) [inline]

Definition at line 36 of file ProductProvenance.h.

{}

Member Function Documentation

BranchID const& edm::ProductProvenance::branchID ( ) const [inline]
void edm::ProductProvenance::initializeTransients ( ) const [inline]
ProductProvenance edm::ProductProvenance::makeProductProvenance ( ) const

Definition at line 63 of file ProductProvenance.cc.

                                                 {
    return *this;
  }
bool& edm::ProductProvenance::noParentage ( ) const [inline]

Definition at line 46 of file ProductProvenance.h.

References edm::ProductProvenance::Transients::noParentage_, and transient_.

Referenced by edm::operator==(), and write().

Parentage const & edm::ProductProvenance::parentage ( ) const

Definition at line 68 of file ProductProvenance.cc.

References instance, parentageID_, and parentagePtr().

Referenced by edm::RootOutputFile::insertAncestors(), and edm::Provenance::parentage().

                                     {
    if (!parentagePtr()) {
      parentagePtr().reset(new Parentage);
      ParentageRegistry::instance()->getMapped(parentageID_, *parentagePtr());
    }
    return *parentagePtr();
  }
ParentageID const& edm::ProductProvenance::parentageID ( ) const [inline]
boost::shared_ptr<Parentage>& edm::ProductProvenance::parentagePtr ( ) const [inline, private]
void edm::ProductProvenance::write ( std::ostream &  os) const

Definition at line 77 of file ProductProvenance.cc.

References branchID(), noParentage(), and parentageID().

Referenced by edm::operator<<(), and edm::Provenance::write().

                                               {
    os << "branch ID = " << branchID() << '\n';
    if (!noParentage()) {
      os << "entry description ID = " << parentageID() << '\n';
    }
  }

Member Data Documentation

Definition at line 61 of file ProductProvenance.h.

Referenced by branchID().

Definition at line 62 of file ProductProvenance.h.

Referenced by parentage(), parentageID(), and ProductProvenance().

Definition at line 63 of file ProductProvenance.h.

Referenced by initializeTransients(), noParentage(), and parentagePtr().