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