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

ScanHeaderStreamer.cpp

Go to the documentation of this file.
00001 #include "ScanHeaderStreamer.h"
00002 #include "../ScanHeader.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 ScanHeaderStreamer::ScanHeaderStreamer() throw() {}
00015 
00016 bool ScanHeaderStreamer::inMap = IOManager::addToMap("SctData::ScanHeader", auto_ptr<Streamer>(new ScanHeaderStreamer()));
00017 
00018 shared_ptr<Streamable> ScanHeaderStreamer::read(IStream& in, const IOManager& manager) const throw(LogicError, IoError) {
00019     shared_ptr<Streamable> ad (new ScanHeader(0, 0, "", mVThresholdVariable::instance()));
00020     read(in, *ad, manager);
00021     return ad;
00022 }
00023 
00024 void ScanHeaderStreamer::write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00025     //Downcast should always work!
00026     const ScanHeader& header = dynamic_cast<const ScanHeader&>(ob);
00027 
00028     out << header.getRunNumber() << header.getScanNumber() << header.getModuleName();
00029     manager.writeImpl(out, header.getVariable(), false);
00030 }
00031 
00032 void ScanHeaderStreamer::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00033     //Downcast should always work!
00034     ScanHeader& header = dynamic_cast<ScanHeader&>(ob);
00035 
00036     headerHelper.set(header);
00037     // cout << "ScanHeaderIS refresh" << endl;
00038     in >> headerHelper.getRunNumber();
00039     in >> headerHelper.getScanNumber();
00040     in >> headerHelper.getModuleName();
00041     shared_ptr<Streamable> ob2 = manager.readImpl(in, "SctData::ConfigurationVariable");
00042     headerHelper.getVariable() = boost::dynamic_pointer_cast<ConfigurationVariable>(ob2).get(); 
00043 
00044     // cout << "Done" << endl;
00045 }
00046 
00047 }
00048 }

Generated on Mon Dec 15 19:36:14 2003 for SCT DAQ/DCS Software by doxygen1.3-rc3