CMS 3D CMS Logo

fwlite::RefStreamer Class Reference

#include <FWCore/FWLite/src/RefStreamer.h>

List of all members.

Public Member Functions

void operator() (TBuffer &R__b, void *objp)
 RefStreamer (edm::EDProductGetter const *ep)
edm::EDProductGetter const * setProductGetter (edm::EDProductGetter const *ep)

Private Attributes

TClassRef cl_
edm::EDProductGetter const * prodGetter_


Detailed Description

Definition at line 12 of file RefStreamer.h.


Constructor & Destructor Documentation

fwlite::RefStreamer::RefStreamer ( edm::EDProductGetter const *  ep  )  [inline, explicit]

Definition at line 14 of file RefStreamer.h.

00014 : cl_("edm::RefCore"), prodGetter_(ep) {}


Member Function Documentation

void fwlite::RefStreamer::operator() ( TBuffer &  R__b,
void objp 
)

Definition at line 11 of file RefStreamer.cc.

References cl_, Exception, edm::errors::InvalidReference, VarParsing::obj, and prodGetter_.

00011                                                    {
00012     using edm::RefCore;
00013     using edm::Exception;
00014     using edm::errors::InvalidReference;
00015     if (R__b.IsReading()) {
00016       cl_->ReadBuffer(R__b, objp);
00017       RefCore* obj = static_cast<RefCore *>(objp);
00018       obj->setProductGetter(prodGetter_);
00019       obj->setProductPtr(0);
00020     } else {
00021       RefCore* obj = static_cast<RefCore *>(objp);
00022       if (obj->isTransient()) {
00023         throw Exception(InvalidReference,"Inconsistency")
00024           << "RefStreamer: transient Ref or Ptr cannot be made persistent.";
00025       }
00026       cl_->WriteBuffer(R__b, objp);
00027     }
00028   }

edm::EDProductGetter const* fwlite::RefStreamer::setProductGetter ( edm::EDProductGetter const *  ep  )  [inline]

Definition at line 16 of file RefStreamer.h.

References prodGetter_.

Referenced by fwlite::setRefStreamer().

00016                                                                              {
00017       edm::EDProductGetter const* previous = prodGetter_;
00018       prodGetter_ = ep;
00019       return previous;
00020     }


Member Data Documentation

TClassRef fwlite::RefStreamer::cl_ [private]

Definition at line 24 of file RefStreamer.h.

Referenced by operator()().

edm::EDProductGetter const* fwlite::RefStreamer::prodGetter_ [private]

Definition at line 25 of file RefStreamer.h.

Referenced by operator()(), and setProductGetter().


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