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

ScanResultWriter.h

00001 #ifndef SCANRESULTWRITER_H
00002 #define SCANRESULTWRITER_H
00003 
00004 #include <is/isinfo.h>
00005 #include "scan.h"
00006 #include <string>
00007 #include "Sct/Streamer.h"
00008 #include "Sct/IOManager.h"
00009 #include "Sct/LogicErrors.h"
00010 #include "Sct/IoExceptions.h"
00011 
00012 using namespace std;
00013 using namespace Sct;
00014 
00015 namespace SctData {
00016 
00022 class ScanResultWriter : public virtual Streamer {
00023 public:
00029     static bool publish(scan_result_ptrs& scanResult);
00030 
00034     static ScanResultWriter& getRawWriter();
00035     //static ScanResultWriter& getFitWriter();
00036     static void writeClass(const string& name, OStream& out);
00037     
00038     //Streamer overrides
00039     virtual void write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError);
00040     
00041     //Do nothing:
00042     virtual shared_ptr<Streamable> read(IStream& in, const IOManager& manager) const throw(LogicError, IoError);
00043     virtual void read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError);
00044 
00045     virtual unsigned getVersion() const throw();
00046 protected:
00047     scan_result_ptrs* scanResult;       //Points to a scan_result object
00048 
00049     void setData(scan_result_ptrs& scanResult);
00050     void writeGuts(OStream& out) const ;
00051     void writeHeader(OStream& out) const;
00052     void writeScanPoints(OStream& out) const;
00053     void writeConfiguration(OStream& out) const;
00054     void writeChipConfig(OStream& out, const ABCDChip& data) const;
00055     void writeData(OStream& out) const;
00056 
00057 private:
00058     //Constructor - all public access via static methods
00059     ScanResultWriter(const string& className, unsigned version);
00060 
00061     string className;
00062     unsigned m_version;
00063     static bool rawInMap;
00064 };
00065 
00066 }
00067 
00068 #endif //#ifndef SCANRESULTWRITER_H

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