00001 #ifndef SCTDATA_IO_FITOBJECTIS_H
00002 #define SCTDATA_IO_FITOBJECTIS_H
00003
00004 #include "Sct/Streamer.h"
00005 #include "Sct/LogicErrors.h"
00006 #include "Sct/IoExceptions.h"
00007
00008 using namespace Sct;
00009
00010 namespace SctData {
00011
00012 class FitObject;
00013
00014 namespace IO {
00015
00019 class FitObjectStreamer_v1 : public virtual Streamer {
00020 public:
00021
00022 virtual void write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError);
00023 virtual void read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError);
00024 virtual shared_ptr<Streamable> read(Sct::IStream&, const Sct::IOManager&) const throw(LogicError, IoError);
00025 virtual unsigned getVersion() const throw() {return s_version;}
00026
00027 protected:
00029 void read(IStream& in, SctData::FitObject& ob, const IOManager& manager) const throw(LogicError, IoError);
00030 FitObjectStreamer_v1() throw() {}
00031
00032 private:
00033 static unsigned s_version;
00034 static bool inMap;
00035 };
00036
00037
00038
00039 class ErfcFitObjectStreamer_v1 : public FitObjectStreamer_v1 {
00040 public:
00042 virtual void read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError);
00043 virtual shared_ptr<Streamable> read(IStream& in, const IOManager& manager) const throw(LogicError, IoError);
00044 virtual unsigned getVersion() const throw() {return s_version;}
00045 private:
00046 ErfcFitObjectStreamer_v1() throw() {}
00047 static unsigned s_version;
00048 static bool inMap;
00049 };
00050
00051 class ErfFitObjectStreamer_v1 : public FitObjectStreamer_v1 {
00052 public:
00054 virtual void read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError);
00055 virtual shared_ptr<Streamable> read(IStream& in, const IOManager& manager) const throw(LogicError, IoError);
00056 virtual unsigned getVersion() const throw() {return s_version;}
00057 private:
00058 ErfFitObjectStreamer_v1() throw() {}
00059 static unsigned s_version;
00060 static bool inMap;
00061 };
00062
00063 class TopHatFitObjectStreamer_v1 : public FitObjectStreamer_v1 {
00064 public:
00066 virtual void read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError);
00067 virtual shared_ptr<Streamable> read(IStream& in, const IOManager& manager) const throw(LogicError, IoError);
00068 virtual unsigned getVersion() const throw() {return s_version;}
00069 private:
00070 TopHatFitObjectStreamer_v1() throw() {}
00071 static unsigned s_version;
00072 static bool inMap;
00073 };
00074
00075 class GausFitObjectStreamer_v1 : public FitObjectStreamer_v1 {
00076 public:
00078 virtual void read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError);
00079 virtual shared_ptr<Streamable> read(IStream& in, const IOManager& manager) const throw(LogicError, IoError);
00080 virtual unsigned getVersion() const throw() {return s_version;}
00081 private:
00082 GausFitObjectStreamer_v1() throw() {}
00083 static unsigned s_version;
00084 static bool inMap;
00085 };
00086
00087 }
00088 }
00089
00090 #endif //SCTDATA_IO_FITOBJECTIS_H