CMS 3D CMS Logo

edm::StreamDQMSerializer Class Reference

#include <IOPool/Streamer/interface/StreamDQMSerializer.h>

List of all members.

Public Member Functions

unsigned char * bufferPointer () const
unsigned int currentEventSize () const
unsigned int currentSpaceUsed () const
int serializeDQMEvent (DQMEvent::TObjectTable &toTable, bool use_compression, int compression_level)
 Serializes the specified table of ROOT TObjects into the internal buffer.
 StreamDQMSerializer ()
 Default constructor.

Private Attributes

std::vector< unsigned char > comp_buf_
unsigned int curr_event_size_
unsigned int curr_space_used_
unsigned char * ptr_
RootBuffer rootbuf_

Classes

struct  Arr


Detailed Description

Definition at line 25 of file StreamDQMSerializer.h.


Constructor & Destructor Documentation

edm::StreamDQMSerializer::StreamDQMSerializer (  ) 

Default constructor.

Definition at line 25 of file StreamDQMSerializer.cc.

00025                                           :
00026     comp_buf_(init_size),
00027     curr_event_size_(),
00028     curr_space_used_(),
00029     rootbuf_(TBuffer::kWrite,init_size),
00030     ptr_((unsigned char*)rootbuf_.Buffer())
00031   { }


Member Function Documentation

unsigned char* edm::StreamDQMSerializer::bufferPointer (  )  const [inline]

Definition at line 39 of file StreamDQMSerializer.h.

Referenced by stor::DQMServiceManager::manageDQMEventMsg(), and FUShmDQMOutputService::postEventProcessing().

00040 { return ptr_; }

unsigned int edm::StreamDQMSerializer::currentEventSize (  )  const [inline]

Definition at line 41 of file StreamDQMSerializer.h.

References curr_space_used_.

Referenced by stor::DQMServiceManager::manageDQMEventMsg(), and FUShmDQMOutputService::postEventProcessing().

00041 { return curr_space_used_; }

unsigned int edm::StreamDQMSerializer::currentSpaceUsed (  )  const [inline]

Definition at line 40 of file StreamDQMSerializer.h.

References ptr_.

Referenced by stor::DQMServiceManager::manageDQMEventMsg(), and FUShmDQMOutputService::postEventProcessing().

00040 { return ptr_; }

int edm::StreamDQMSerializer::serializeDQMEvent ( DQMEvent::TObjectTable toTable,
bool  use_compression,
int  compression_level 
)

Serializes the specified table of ROOT TObjects into the internal buffer.

Definition at line 36 of file StreamDQMSerializer.cc.

References comp_buf_, edm::StreamSerializer::compressBuffer(), curr_event_size_, curr_space_used_, int, ptr_, and rootbuf_.

Referenced by stor::DQMServiceManager::manageDQMEventMsg(), and FUShmDQMOutputService::postEventProcessing().

00039   {
00040     // initialize the internal TBuffer
00041     rootbuf_.Reset();
00042     RootDebug tracer(10,10);
00043 
00044     // loop over each subfolder
00045     DQMEvent::TObjectTable::const_iterator sfIter;
00046     for (sfIter = toTable.begin(); sfIter != toTable.end(); sfIter++)
00047       {
00048         std::string folderName = sfIter->first;
00049         std::vector<TObject *> toList = sfIter->second;
00050 
00051         // serialize the ME data
00052         uint32 meCount = toList.size();
00053         for (int idx = 0; idx < (int) meCount; idx++) {
00054           TObject *toPtr = toList[idx];
00055           rootbuf_.WriteObject(toPtr);
00056         }
00057       }
00058 
00059     // set sizes and pointer(s) appropriately
00060     curr_event_size_ = rootbuf_.Length();
00061     curr_space_used_ = curr_event_size_;
00062     ptr_ = (unsigned char*) rootbuf_.Buffer();
00063 
00064     // compress the data, if needed
00065     if (use_compression)
00066       {
00067         unsigned int dest_size =
00068           StreamSerializer::compressBuffer(ptr_, curr_event_size_,
00069                                            comp_buf_, compression_level);
00070         // compression succeeded
00071         if (dest_size != 0)
00072           {
00073             ptr_ = &comp_buf_[0]; // reset to point at compressed area
00074             curr_space_used_ = dest_size;
00075           }
00076       }
00077 
00078     return curr_space_used_;
00079   }


Member Data Documentation

std::vector<unsigned char> edm::StreamDQMSerializer::comp_buf_ [private]

Definition at line 55 of file StreamDQMSerializer.h.

Referenced by serializeDQMEvent().

unsigned int edm::StreamDQMSerializer::curr_event_size_ [private]

Definition at line 56 of file StreamDQMSerializer.h.

Referenced by serializeDQMEvent().

unsigned int edm::StreamDQMSerializer::curr_space_used_ [private]

Definition at line 57 of file StreamDQMSerializer.h.

Referenced by currentEventSize(), and serializeDQMEvent().

unsigned char* edm::StreamDQMSerializer::ptr_ [private]

Definition at line 59 of file StreamDQMSerializer.h.

Referenced by currentSpaceUsed(), and serializeDQMEvent().

RootBuffer edm::StreamDQMSerializer::rootbuf_ [private]

Definition at line 58 of file StreamDQMSerializer.h.

Referenced by serializeDQMEvent().


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