CMS 3D CMS Logo

Public Member Functions | Private Attributes

edm::StreamedProduct Class Reference

#include <StreamedProducts.h>

List of all members.

Public Member Functions

void allocateForReading ()
BranchID branchID () const
TClassRef const & classRef () const
void clear ()
void clearClassType ()
BranchDescription const * desc () const
std::vector< BranchID > const * parents () const
bool present () const
void * prod ()
void setNewClassType ()
 StreamedProduct (BranchDescription const &desc)
 StreamedProduct (void const *prod, BranchDescription const &desc, bool present, std::vector< BranchID > const *parents)
 StreamedProduct ()

Private Attributes

TClassRef classRef_
BranchDescription const * desc_
std::vector< BranchID > const * parents_
bool present_
void * prod_

Detailed Description

Definition at line 32 of file StreamedProducts.h.


Constructor & Destructor Documentation

edm::StreamedProduct::StreamedProduct ( ) [inline]

Definition at line 34 of file StreamedProducts.h.

: desc_(0), present_(false), parents_(0), prod_(0), classRef_() {}
edm::StreamedProduct::StreamedProduct ( BranchDescription const &  desc) [inline, explicit]

Definition at line 35 of file StreamedProducts.h.

                                                            :
      desc_(&desc), present_(false), parents_(0), prod_(0), classRef_() {}
edm::StreamedProduct::StreamedProduct ( void const *  prod,
BranchDescription const &  desc,
bool  present,
std::vector< BranchID > const *  parents 
)

Definition at line 6 of file StreamedProducts.cc.

References edm::BranchDescription::branchName(), Exception, edm::BranchDescription::init(), edm::errors::LogicError, and present_.

                                                        :
      desc_(&desc), present_(present), parents_(parents), prod_(const_cast<void*>(prod)), classRef_() {
      if(present_ && prod == 0) {
        desc.init();
        throw edm::Exception(edm::errors::LogicError, "StreamedProduct::StreamedProduct\n")
           << "A product with a status of 'present' is not actually present.\n"
           << "The branch name is " << desc.branchName() << "\n"
           << "Contact a framework developer.\n";
      }
    }

Member Function Documentation

void edm::StreamedProduct::allocateForReading ( )

Definition at line 21 of file StreamedProducts.cc.

References classRef_, prod_, and setNewClassType().

Referenced by edm::StreamedProductStreamer::operator()().

                                        {
      setNewClassType();
      prod_ = classRef_->New();
    }
BranchID edm::StreamedProduct::branchID ( ) const [inline]

Definition at line 44 of file StreamedProducts.h.

References edm::BranchDescription::branchID(), and desc_.

{return desc_->branchID();}
TClassRef const& edm::StreamedProduct::classRef ( ) const [inline]

Definition at line 48 of file StreamedProducts.h.

References classRef_.

Referenced by edm::StreamedProductStreamer::operator()().

{return classRef_;}
void edm::StreamedProduct::clear ( void  ) [inline]

Definition at line 53 of file StreamedProducts.h.

References desc_, parents_, present_, and prod_.

                {
     prod_= 0;
     delete desc_;
     desc_= 0;
     present_ = false;
     delete parents_;
     parents_ = 0;
  }
void edm::StreamedProduct::clearClassType ( )

Definition at line 32 of file StreamedProducts.cc.

References classRef_, and prod_.

Referenced by edm::StreamedProductStreamer::operator()().

                                    {
      if(prod_ != 0) {
        classRef_->Destructor(prod_);
        prod_ = 0;
      }
    }
BranchDescription const* edm::StreamedProduct::desc ( ) const [inline]

Definition at line 43 of file StreamedProducts.h.

References desc_.

{return desc_;}
std::vector<BranchID> const* edm::StreamedProduct::parents ( ) const [inline]

Definition at line 46 of file StreamedProducts.h.

References parents_.

{return parents_;}
bool edm::StreamedProduct::present ( ) const [inline]

Definition at line 45 of file StreamedProducts.h.

References present_.

Referenced by edm::StreamedProductStreamer::operator()().

{return present_;}
void* edm::StreamedProduct::prod ( ) [inline]

Definition at line 47 of file StreamedProducts.h.

References prod_.

Referenced by edm::StreamedProductStreamer::operator()().

{return prod_;}
void edm::StreamedProduct::setNewClassType ( )

Member Data Documentation

TClassRef edm::StreamedProduct::classRef_ [private]

Definition at line 67 of file StreamedProducts.h.

Referenced by allocateForReading(), classRef(), clearClassType(), and setNewClassType().

Definition at line 63 of file StreamedProducts.h.

Referenced by branchID(), clear(), desc(), and setNewClassType().

std::vector<BranchID> const* edm::StreamedProduct::parents_ [private]

Definition at line 65 of file StreamedProducts.h.

Referenced by clear(), and parents().

Definition at line 64 of file StreamedProducts.h.

Referenced by clear(), present(), and StreamedProduct().

void* edm::StreamedProduct::prod_ [private]

Definition at line 66 of file StreamedProducts.h.

Referenced by allocateForReading(), clear(), clearClassType(), and prod().