CMS 3D CMS Logo

TBufferBlobStreamer.h

Go to the documentation of this file.
00001 #ifndef COND_TBUFFERBLOBSTREAMER_H
00002 #define COND_TBUFFERBLOBSTREAMER_H
00003 
00004 #include <cstddef>
00005 #include "RelationalStorageService/IBlobStreamingService.h"
00006 #include "CoralBase/Blob.h"
00007 #include "Reflex/Type.h"
00008 #include "TClass.h"
00009 
00010 namespace cond {
00011   class TBufferBlobTypeInfo
00012   {
00013   public:
00014     TBufferBlobTypeInfo( const ROOT::Reflex::Type& type );
00015 
00017     std::size_t m_arraySize;
00018 
00020     TClass *m_class;
00021 
00023     unsigned int m_primitive;
00024   };
00025 
00026   class TBufferBlobWriter : virtual public pool::IBlobWriter
00027   {
00028   public:
00030     explicit TBufferBlobWriter( const ROOT::Reflex::Type& type );
00031 
00033     virtual ~TBufferBlobWriter();
00034 
00036     const coral::Blob& write( const void* addressOfInputData );
00037 
00038   private:
00040     TBufferBlobTypeInfo m_type;
00041 
00043     coral::Blob m_blob;
00044   };
00045 
00046 
00047   class TBufferBlobReader : virtual public pool::IBlobReader
00048   {
00049   public:
00051     TBufferBlobReader( const ROOT::Reflex::Type& type );
00052 
00054     virtual ~TBufferBlobReader();
00055 
00057     void read( const coral::Blob& blobData,
00058                void* containerAddress ) const;
00059 
00060   private:
00062     TBufferBlobTypeInfo m_type;
00063   };
00064 
00065 }
00066 
00067 #endif // COND_TBUFFERBLOBSTREAMER_H

Generated on Tue Jun 9 17:39:09 2009 for CMSSW by  doxygen 1.5.4