RxThresholdBasedOnConfigRegisterTestResultStreamer_v1.cpp

00001 #include "RxThresholdBasedOnConfigRegisterTestResultStreamer_v1.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_v1::s_version=1;
00010 
00011     RxThresholdBasedOnConfigRegisterTestResultStreamer_v1::RxThresholdBasedOnConfigRegisterTestResultStreamer_v1() throw() {}
00012     
00013 bool RxThresholdBasedOnConfigRegisterTestResultStreamer_v1::inMap = IOManager::addToMap("SctData::RxThresholdBasedOnConfigRegisterTestResult",  auto_ptr<Streamer>(new RxThresholdBasedOnConfigRegisterTestResultStreamer_v1()));
00014     
00015     shared_ptr<Streamable> RxThresholdBasedOnConfigRegisterTestResultStreamer_v1::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_v1::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_v1 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_v1::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_v1::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     }
00048     
00049     void RxThresholdBasedOnConfigRegisterTestResultStreamer_v1::readStreamResult(IStream& in, RxThresholdBasedOnConfigRegisterTestResult::StreamResult& c, const IOManager& manager) const throw(LogicError, IoError) {
00050           typedef RxThresholdBasedOnConfigRegisterTestResult::StreamResult::ThresholdType ThresholdType;
00051           ThresholdType minTmp,maxTmp,bestTmp;
00052           in >> minTmp >> maxTmp >> bestTmp;
00053           c.setMinErrorFreeRxThresh(minTmp);
00054           c.setMaxErrorFreeRxThresh(maxTmp);
00055           c.setBestRxThresh(bestTmp);
00056     }
00057     
00058     } 
00059 }

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