CMS 3D CMS Logo

Public Member Functions | Private Attributes

edm::RefCoreCheckTransientOnWriteStreamer Class Reference

#include <RefCoreStreamer.h>

List of all members.

Public Member Functions

void operator() (TBuffer &R__b, void *objp)
 RefCoreCheckTransientOnWriteStreamer ()

Private Attributes

TClassRef cl_

Detailed Description

Definition at line 29 of file RefCoreStreamer.h.


Constructor & Destructor Documentation

edm::RefCoreCheckTransientOnWriteStreamer::RefCoreCheckTransientOnWriteStreamer ( ) [inline, explicit]

Definition at line 31 of file RefCoreStreamer.h.

: cl_("edm::RefCore::CheckTransientOnWrite"){}

Member Function Documentation

void edm::RefCoreCheckTransientOnWriteStreamer::operator() ( TBuffer &  R__b,
void *  objp 
)

Definition at line 54 of file RefCoreStreamer.cc.

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

                                                                            {
    typedef RefCore::CheckTransientOnWrite CheckTransientOnWrite;
    if (R__b.IsReading()) {
      //std::cout <<"reading CheckTransientOnWrite"<<std::endl;
#if 1
      Version_t version;
      R__b >> version;
#else
      R__b.ReadVersion();
#endif
      CheckTransientOnWrite* obj = static_cast<CheckTransientOnWrite *>(objp);
      obj->transient_ = false;
      obj->cacheIsProductPtr_ = false;
    } else {
      //std::cout <<"writing CheckTransientOnWrite"<<std::endl;
      TVirtualStreamerInfo* sinfo = cl_->GetStreamerInfo();
      CheckTransientOnWrite* obj = static_cast<CheckTransientOnWrite *>(objp);
      if (obj->transient_) {
        throw Exception(errors::InvalidReference,"Inconsistency")
          << "RefCoreStreamer: transient Ref or Ptr cannot be made persistent.";
      }
#if 1
      R__b << cl_->GetClassVersion();
#else
      R__b.WriteVersion(cl_, kFALSE);
#endif
      R__b.TagStreamerInfo(sinfo);
    }
  }

Member Data Documentation

Definition at line 36 of file RefCoreStreamer.h.

Referenced by operator()().