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
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
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
00038 ResultHeader& header = dynamic_cast<ResultHeader&>(ob);
00039
00040
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
00054 }
00055
00056 }
00057 }