CMS 3D CMS Logo

BaseDecoratedSB Class Reference

a decorated sreambuf More...

#include <Utilities/General/interface/DecoratedSB.h>

Inheritance diagram for BaseDecoratedSB:

DecoratedSB< PRE, POST >

List of all members.

Public Types

typedef std::stringbuf super

Public Member Functions

 BaseDecoratedSB (std::streambuf *isb)
std::streambuf * sb (std::streambuf *isb)
std::streambuf * sb ()
int sync ()
virtual ~BaseDecoratedSB ()

Private Member Functions

virtual void post (std::ostream &co)=0
virtual void pre (std::ostream &co)=0

Private Attributes

std::ostream me
std::streambuf * sb_


Detailed Description

a decorated sreambuf

Definition at line 10 of file DecoratedSB.h.


Member Typedef Documentation

typedef std::stringbuf BaseDecoratedSB::super

Reimplemented in DecoratedSB< PRE, POST >.

Definition at line 12 of file DecoratedSB.h.


Constructor & Destructor Documentation

BaseDecoratedSB::BaseDecoratedSB ( std::streambuf *  isb  ) 

Definition at line 4 of file DecoratedSB.cc.

00004                                                    : me(0), sb_(isb) {
00005 }

BaseDecoratedSB::~BaseDecoratedSB (  )  [virtual]

Definition at line 6 of file DecoratedSB.cc.

00006 {}


Member Function Documentation

virtual void BaseDecoratedSB::post ( std::ostream &  co  )  [private, pure virtual]

Implemented in DecoratedSB< PRE, POST >.

Referenced by sync().

virtual void BaseDecoratedSB::pre ( std::ostream &  co  )  [private, pure virtual]

Implemented in DecoratedSB< PRE, POST >.

Referenced by sync().

std::streambuf* BaseDecoratedSB::sb ( std::streambuf *  isb  )  [inline]

Definition at line 18 of file DecoratedSB.h.

References sb_.

00018 { sb_ = isb; return sb_;}

std::streambuf* BaseDecoratedSB::sb (  )  [inline]

Definition at line 17 of file DecoratedSB.h.

References sb_.

00017 { return sb_;}

int BaseDecoratedSB::sync ( void   ) 

Definition at line 10 of file DecoratedSB.cc.

References me, mutex, post(), pre(), and sb_.

00010                           {
00011   static LockMutex::Mutex mutex;
00012   int jj = 
00013     std::stringbuf::sync();
00014   {
00015     LockMutex gl(mutex);
00016     pre(me);
00017     me.rdbuf(sb_);
00018     pre(me);
00019     me << (*this).str();
00020     (*this).str("");
00021     post(me);
00022     me.flush();
00023     me.rdbuf(0);
00024   }
00025   return jj;
00026 }


Member Data Documentation

std::ostream BaseDecoratedSB::me [private]

Definition at line 26 of file DecoratedSB.h.

Referenced by sync().

std::streambuf* BaseDecoratedSB::sb_ [private]

Definition at line 27 of file DecoratedSB.h.

Referenced by sb(), and sync().


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