00001 #ifndef SCTDATA_IO_NPTGAINTESTRESULTSTREAMER_V2_H
00002 #define SCTDATA_IO_NPTGAINTESTRESULTSTREAMER_V2_H
00003
00004 #include "Sct/Streamer.h"
00005
00006 namespace SctData {
00007 class NPtGainTestResult;
00008 class NPtGainTestResultData;
00009 }
00010
00011 using namespace SctData;
00012
00013 namespace SctData {
00014 namespace IO {
00015
00016
00022 class NPtGainTestResultStreamer_v2 : public Sct::Streamer {
00023 public:
00024
00025 virtual void write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError);
00026 virtual shared_ptr<Streamable> read(IStream& in, const IOManager& manager) const throw(LogicError, IoError);
00027 virtual void read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError);
00028 virtual unsigned getVersion() const throw() {return s_version;}
00029
00030 private:
00031 void writeData(OStream& out, const NPtGainTestResultData& ob, const IOManager& manager) const throw(Sct::LogicError, Sct::IoError);
00032 void readData(IStream& in, NPtGainTestResult& mytest, NPtGainTestResultData& ob, const IOManager& manager) const throw(Sct::LogicError, Sct::IoError);
00033
00034 void getSlope(Sct::RangedVector<float>& f, Sct::IStream& is) const;
00035 void putSlope(const Sct::RangedVector<float>& f, Sct::OStream& os) const;
00036 NPtGainTestResultStreamer_v2() throw();
00037 static unsigned s_version;
00038 static bool inMap;
00039 };
00040 }
00041 }
00042 #endif // #ifndef SCTDATA_IO_NPTGAINTESTRESULTSTREAMER_V2_H