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

IOManagerISProxy.cpp

00001 #include "IOManagerISProxy.h"
00002 #include "ISProxy.h"
00003 #include "../File/IOManagerFile.h"
00004 #include "../OStream.h"
00005 #include "../Streamer.h"
00006 
00007 using namespace Sct::File;
00008 
00009 namespace Sct {
00010 namespace ISProxy { 
00011 
00012 IOManagerISProxy::IOManagerISProxy() throw() {
00013 }
00014     
00015 IOManagerISProxy& IOManagerISProxy::instance() {
00016     static IOManagerISProxy theInstance;
00017     return theInstance;
00018 }
00019     
00020 void IOManagerISProxy::write(const Serializable& ob, const IOParams* params) const throw(LogicError, IoError) {
00021     ISProxy proxy(ob.getUniqueID(), ob.getClassName());
00022     IOManagerFile::instance().write(ob);    
00023     IOManagerIS::write(proxy, params);
00024 }
00025 
00026 void IOManagerISProxy::writeImpl(OStream& out, const Streamable& ob, bool bWriteClassName) const throw(LogicError, IoError) {
00027     //cout << "IOManagerISProxy::writeImpl" << &ob << endl;
00028     const ISProxy* proxy = dynamic_cast<const ISProxy*>(&ob);
00029     if (proxy) {
00030     if (bWriteClassName) writeClassName(out, "Sct::ISProxy::ISProxy");
00031     Streamer& proxyStreamer = getStreamer("Sct::ISProxy::ISProxy");
00032     proxyStreamer.write(out, ob, *this);
00033     } else {
00034     IOManagerIS::writeImpl(out, ob, bWriteClassName);
00035     }
00036 }
00037     
00038 }
00039 }

Generated on Mon Dec 8 18:03:52 2003 for SCT DAQ/DCS Software by doxygen1.3-rc3