#include <IOPool/Streamer/interface/StreamDQMSerializer.h>
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 |
Definition at line 25 of file StreamDQMSerializer.h.
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 { }
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 }
std::vector<unsigned char> edm::StreamDQMSerializer::comp_buf_ [private] |
unsigned int edm::StreamDQMSerializer::curr_event_size_ [private] |
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] |