RxThresholdBasedOnConfigRegisterTestResultStreamer_v2.cpp

00001 #include "RxThresholdBasedOnConfigRegisterTestResultStreamer_v2.h"
00002 
00003 using namespace Sct;
00004 
00005 namespace SctData {
00006     namespace IO {
00007 
00008 /* READ NOTES ON STREAMERS AND VERSIONS BEFORE EDITING THIS FILE! */
00009 unsigned RxThresholdBasedOnConfigRegisterTestResultStreamer_v2::s_version=2;
00010 
00011     RxThresholdBasedOnConfigRegisterTestResultStreamer_v2::RxThresholdBasedOnConfigRegisterTestResultStreamer_v2() throw() {}
00012     
00013 bool RxThresholdBasedOnConfigRegisterTestResultStreamer_v2::inMap = IOManager::addToMap("SctData::RxThresholdBasedOnConfigRegisterTestResult",  auto_ptr<Streamer>(new RxThresholdBasedOnConfigRegisterTestResultStreamer_v2()));
00014     
00015     shared_ptr<Streamable> RxThresholdBasedOnConfigRegisterTestResultStreamer_v2::read(IStream& in, const IOManager& manager) const throw(LogicError, IoError){
00016         boost::shared_ptr<Streamable> ad (new RxThresholdBasedOnConfigRegisterTestResult());
00017         read(in, *ad, manager);
00018         return ad;
00019     }
00020     
00021     void RxThresholdBasedOnConfigRegisterTestResultStreamer_v2::write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00022         //Let superclass do its work
00023         manager.writeImpl(out, ob, "SctData::TestResult");
00024         
00025         //cout << "RxThresholdBasedOnConfigRegisterTestResultStreamer_v2 doing dynamic_cast" << endl;
00026         const RxThresholdBasedOnConfigRegisterTestResult& mytest = dynamic_cast<const RxThresholdBasedOnConfigRegisterTestResult&>(ob);
00027         
00028         for (unsigned int iStream=0; iStream<nLinkModule; iStream++) {
00029         writeStreamResult(out, mytest.getStreamResult(iStream), manager);
00030         }
00031     }
00032     
00033     void RxThresholdBasedOnConfigRegisterTestResultStreamer_v2::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00034         manager.readImpl(in, ob, "SctData::TestResult");
00035         
00036         RxThresholdBasedOnConfigRegisterTestResult& mytest = dynamic_cast<RxThresholdBasedOnConfigRegisterTestResult&>(ob);
00037         
00038         for (unsigned int iStream=0; iStream<nLinkModule; iStream++) {
00039         readStreamResult(in, mytest.getStreamResult(iStream), manager);
00040         }
00041     }
00042     
00043     void RxThresholdBasedOnConfigRegisterTestResultStreamer_v2::writeStreamResult(OStream& out, const RxThresholdBasedOnConfigRegisterTestResult::StreamResult& c, const IOManager& manager) const throw (LogicError, IoError) {
00044           out << c.minErrorFreeRxThresh() 
00045               << c.maxErrorFreeRxThresh()
00046               << c.bestRxThresh()
00047           << c.getRiseTime();
00048     }
00049     
00050     void RxThresholdBasedOnConfigRegisterTestResultStreamer_v2::readStreamResult(IStream& in, RxThresholdBasedOnConfigRegisterTestResult::StreamResult& c, const IOManager& manager) const throw(LogicError, IoError) {
00051           typedef RxThresholdBasedOnConfigRegisterTestResult::StreamResult::ThresholdType ThresholdType;
00052           ThresholdType minTmp,maxTmp,bestTmp;
00053       int riseTime;
00054           in >> minTmp >> maxTmp >> bestTmp >> riseTime;
00055           c.setMinErrorFreeRxThresh(minTmp);
00056           c.setMaxErrorFreeRxThresh(maxTmp);
00057           c.setBestRxThresh(bestTmp);
00058       c.setRiseTime(riseTime);
00059     }
00060     
00061     } 
00062 }

Generated on Mon Feb 6 14:01:26 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6