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

ScanResultStreamer_v1.cpp

00001 #include "ScanResultStreamer_v1.h"
00002 #include "../ScanResult.h"
00003 #include "Sct/VersionNotSupportedException.h"
00004 #include "Sct/LogicErrors.h"
00005 #include "Sct/IoExceptions.h"
00006 
00007 #include <string>
00008 
00009 using namespace std;
00010 using namespace Sct;
00011 
00012 namespace SctData {
00013 namespace IO {
00014 /* READ NOTES ON STREAMERS AND VERSIONS BEFORE EDITING THIS FILE! */
00015 unsigned ScanResultStreamer_v1::s_version=1;
00016 
00017 bool ScanResultStreamer_v1::inMap = IOManager::addToMap("SctData::ScanResult",  std::auto_ptr<Streamer>(new ScanResultStreamer_v1()));
00018 
00019 ScanResultStreamer_v1::ScanResultStreamer_v1() throw() {}
00020 
00021 shared_ptr<Streamable> ScanResultStreamer_v1::read(IStream&, IOManager const&) const throw(LogicError, IoError) {
00022         throw LogicError("Cannot make a ScanResult - abstract class",__FILE__,__LINE__);
00023 }
00024 
00025 void ScanResultStreamer_v1::write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00026     //Downcast should always work!
00027     const ScanResult& raw = dynamic_cast<const ScanResult&>(ob);
00028     manager.writeImpl(out, raw.getHeader(), false);
00029     manager.writeImpl(out, raw.getPoints(), false);
00030     manager.writeImpl(out, raw.getConfiguration(), false);
00031 }
00032 
00033 void ScanResultStreamer_v1::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00034     //Downcast should always work!
00035     ScanResult& raw = dynamic_cast<ScanResult&>(ob);
00036     //Now read everthing else in.
00037     manager.readImpl(in, raw.getHeader(), false);
00038     //cout << "Done header" << endl;
00039     manager.readImpl(in, raw.getPoints(), false);
00040     //cout << "Done ScanPoints" << endl;
00041     manager.readImpl(in, raw.getConfiguration(), false);
00042     //cout << "Done all "<<endl;
00043 }
00044 }
00045 }

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