CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/CondCore/DBCommon/plugins/TBufferBlobStreamingService.h

Go to the documentation of this file.
00001 #ifndef CondCore_DBCommon_TBufferBlobStreamer_h
00002 #define CondCore_DBCommon_TBufferBlobStreamer_h
00003 
00004 #include "CondCore/ORA/interface/IBlobStreamingService.h"
00005 //
00006 #include <cstddef>
00007 //
00008 #include "CoralBase/Blob.h"
00009 #include "Reflex/Type.h"
00010 #include "TClass.h"
00011 
00012 namespace cond {
00013   class TBufferBlobTypeInfo {
00014   public:
00015     TBufferBlobTypeInfo( const Reflex::Type& type );
00016 
00018     std::size_t m_arraySize;
00019 
00021     TClass *m_class;
00022 
00024     unsigned int m_primitive;
00025   };
00026 
00027   class TBufferBlobStreamingService : virtual public ora::IBlobStreamingService {
00028     public:
00029     TBufferBlobStreamingService();
00030     
00031     virtual ~TBufferBlobStreamingService();
00032 
00033     boost::shared_ptr<coral::Blob> write( const void* addressOfInputData,  Reflex::Type const & classDictionary, bool useCompression=false );
00034 
00035     void read( const coral::Blob& blobData, void* addressOfContainer,  Reflex::Type const & classDictionary );
00036 
00037   };
00038   
00039 }
00040 
00041 #endif // COND_TBUFFERBLOBSTREAMER_H