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

ResponseCurveStreamer.cpp

Go to the documentation of this file.
00001 #include "ResponseCurveStreamer.h"
00002 #include "../ResponseCurve.h"
00003 
00004 using namespace Sct;
00005 
00006 namespace SctData {
00007 namespace IO {
00008 
00009 ResponseCurveStreamer::ResponseCurveStreamer() throw() {}
00010 
00011 bool ResponseCurveStreamer::inMap = IOManager::addToMap("SctData::ResponseCurve", auto_ptr<Streamer>(new ResponseCurveStreamer()));
00012 
00013 void ResponseCurveStreamer::write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00014     const ResponseCurve& rc = dynamic_cast<const ResponseCurve&>(ob);
00015     out << ResponseCurveMap::getMap().getIndex(rc.getCurveName());
00016     for (int ipar=0; ipar<3; ++ipar) {
00017         out << rc.getFunction()->GetParameter(ipar);
00018     }
00019 }
00020 
00021 shared_ptr<Streamable> ResponseCurveStreamer::read(IStream& in, const IOManager& manager) const throw(LogicError, IoError) {
00022     int index;
00023     in >> index;
00024     auto_ptr<ResponseCurve> rc=ResponseCurveMap::getMap().get(index);
00025     for (int ipar=0; ipar<3; ++ipar) {
00026         double value;
00027         in >> value;
00028         rc->getFunction()->SetParameter(ipar,value);
00029     }
00030     return shared_ptr<Streamable>(rc);
00031 }
00032 
00033 void ResponseCurveStreamer::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00034     dynamic_cast<ResponseCurve&>(ob);
00035     ob = *read(in, manager);
00036 }
00037 }
00038 }
00039 

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