Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

FitObjectStreamer_v1.h

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     //Streamer_v1 overrides
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 //Now ISStreamer_v1s for all the different FitObjects
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

Generated on Thu Jul 15 09:50:45 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5