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

ResultHeaderStreamer_v1.cpp

00001 #include "ResultHeaderStreamer_v1.h"
00002 #include "../ResultHeader.h"
00003 #include "../ConfigurationVariable.h"
00004 #include "../mVThresholdVariable.h"
00005 
00006 #include <string>
00007 
00008 using std::string;
00009 using namespace Sct;
00010 
00011 namespace SctData {
00012 namespace IO {
00013 
00014 /* READ NOTES ON STREAMERS AND VERSIONS BEFORE EDITING THIS FILE! */
00015 unsigned ResultHeaderStreamer_v1::s_version=1;
00016     
00017 ResultHeaderStreamer_v1::ResultHeaderStreamer_v1() throw() {}
00018 
00019 bool ResultHeaderStreamer_v1::inMap = IOManager::addToMap("SctData::ResultHeader",  auto_ptr<Streamer>(new ResultHeaderStreamer_v1()));
00020 
00021 shared_ptr<Streamable> ResultHeaderStreamer_v1::read(IStream& in, const IOManager& manager) const throw(LogicError, IoError) {
00022     shared_ptr<Streamable> ad (new ResultHeader(0, 0, "", mVThresholdVariable::instance()));
00023     read(in, *ad, manager);
00024     return ad;
00025 }
00026 
00027 void ResultHeaderStreamer_v1::write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00028     //Downcast should always work!
00029     const ResultHeader& header = dynamic_cast<const ResultHeader&>(ob);
00030 
00031     out << header.getRunNumber() << header.getScanNumber() << header.getModuleName();
00032     out << header.getStartTimeString() << header.getEndTimeString();
00033     manager.writeImpl(out, header.getVariable(), false);
00034 }
00035 
00036 void ResultHeaderStreamer_v1::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00037     //Downcast should always work!
00038     ResultHeader& header = dynamic_cast<ResultHeader&>(ob);
00039 
00040     // cout << "ResultHeaderIS refresh" << endl;
00041     unsigned int runNumber = 0;
00042     unsigned int scanNumber = 0;
00043     string name, start, end;
00044     in >> runNumber >> scanNumber >> name >> start >> end;
00045     header.setRunNumber(runNumber);
00046     header.setScanNumber(scanNumber);
00047     header.setModuleName(name);
00048     header.setStartTimeString(start);
00049     header.setEndTimeString(end);
00050     shared_ptr<Streamable> ob2 = manager.readImpl(in, "SctData::ConfigurationVariable");
00051     header.setVariable(*boost::dynamic_pointer_cast<ConfigurationVariable>(ob2));   
00052 
00053     // cout << "Done" << endl;
00054 }
00055 
00056 }
00057 }

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