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