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

ResponseCurveStreamer_v1.cpp

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

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