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
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
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
00035 ScanResult& raw = dynamic_cast<ScanResult&>(ob);
00036
00037 manager.readImpl(in, raw.getHeader(), false);
00038
00039 manager.readImpl(in, raw.getPoints(), false);
00040
00041 manager.readImpl(in, raw.getConfiguration(), false);
00042
00043 }
00044 }
00045 }