00001 #ifndef INCLUDE_ORA_RELATIONALSTREAMERFACTORY_H 00002 #define INCLUDE_ORA_RELATIONALSTREAMERFACTORY_H 00003 00004 namespace Reflex { 00005 class Type; 00006 } 00007 00008 namespace ora { 00009 00010 class ContainerSchema; 00011 class MappingElement; 00012 class IRelationalWriter; 00013 class IRelationalUpdater; 00014 class IRelationalReader; 00015 class IRelationalStreamer; 00016 00017 class RelationalStreamerFactory { 00018 00019 public: 00020 00021 RelationalStreamerFactory( ContainerSchema& contSchema); 00022 00023 ~RelationalStreamerFactory(); 00024 00025 IRelationalWriter* newWriter(const Reflex::Type& dataType,MappingElement& dataMapping ); 00026 00027 IRelationalUpdater* newUpdater(const Reflex::Type& dataType,MappingElement& dataMapping ); 00028 00029 IRelationalReader* newReader(const Reflex::Type& dataType,MappingElement& dataMapping ); 00030 00031 private: 00032 00033 IRelationalStreamer* newStreamer( const Reflex::Type& dataType,MappingElement& dataMapping ); 00034 00035 private: 00036 ContainerSchema& m_containerSchema; 00037 }; 00038 } 00039 00040 00041 #endif 00042