00001 #include "ISProxyStreamer.h"
00002 #include "ISProxy.h"
00003 #include "../IOManager.h"
00004 #include "../File/IOManagerFile.h"
00005 #include <memory>
00006
00007 using namespace Sct::File;
00008 using namespace std;
00009
00010 namespace Sct {
00011 namespace ISProxy {
00012
00013 unsigned ISProxyStreamer::s_version=1;
00014
00015 ISProxyStreamer::ISProxyStreamer() throw () {}
00016 bool ISProxyStreamer::inMap = IOManager::addToMap("Sct::ISProxy::ISProxy", auto_ptr<Streamer>(new ISProxyStreamer()));
00017
00018 void ISProxyStreamer::write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00019 const ISProxy& var = dynamic_cast<const ISProxy&>(ob);
00020 out << var.getFileName();
00021 }
00022
00023 shared_ptr<Streamable> ISProxyStreamer::read(IStream& in, const IOManager& manager) const throw(LogicError, IoError) {
00024 string fileName;
00025 in >> fileName;
00026
00027 return IOManagerFile::instance().read(fileName);
00028 }
00029
00030 void ISProxyStreamer::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00031 ISProxy& var = dynamic_cast<ISProxy&>(ob);
00032 string fileName;
00033 in >> fileName;
00034 var.setFileName(fileName);
00035 }
00036
00037
00038
00039 }
00040 }