00001 #ifndef SCTDATA_IO_SCANRESULTSTREAMER_H 00002 #define SCTDATA_IO_SCANRESULTSTREAMER_H 00003 00004 #include "Sct/Streamer.h" 00005 #include "Sct/LogicErrors.h" 00006 #include "Sct/IoExceptions.h" 00007 #include "is/istream.h" 00008 #include "is/ostream.h" 00009 00010 class Sct::Streamable; 00011 00012 using namespace Sct; 00013 00014 namespace SctData { 00015 namespace IO { 00016 00017 00022 class ScanResultStreamer_v1 : public virtual Streamer { 00023 public: 00024 virtual unsigned getVersion() const throw() {return s_version;} 00025 protected: 00026 ScanResultStreamer_v1() throw(); 00027 00028 //Streamer_v1 overrides 00029 virtual void write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError); 00030 virtual void read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError); 00031 virtual shared_ptr<Streamable> read(IStream&, const IOManager&) const throw(LogicError, IoError); 00032 private: 00033 static unsigned s_version; 00034 static bool inMap; 00035 }; 00036 } 00037 } 00038 #endif //#ifndef SCTDATA_IO_SCANRESULTSTREAMER_H