00001 #ifndef SCTDATA_IO_SCANHEADERSTREAMER_H
00002 #define SCTDATA_IO_SCANHEADERSTREAMER_H
00003
00004 #include "Sct/Streamer.h"
00005 #include "../ScanHeaderIOHelper.h"
00006 #include "Sct/LogicErrors.h"
00007 #include "Sct/IoExceptions.h"
00008
00009 using namespace Sct;
00010
00016 namespace SctData {
00017 namespace IO {
00018
00023 class ScanHeaderStreamer : public virtual Streamer {
00024 public:
00025
00026 virtual void write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError);
00027 virtual shared_ptr<Streamable> read(IStream& in, const IOManager& manager) const throw(LogicError, IoError);
00028 virtual void read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError);
00029
00030 private:
00031 mutable ScanHeaderIOHelper headerHelper;
00032 ScanHeaderStreamer() throw();
00033 static bool inMap;
00034 };
00035 }
00036 }
00037 #endif //#ifndef SCTDATA_IO_SCANHEADERSTREAMER_H