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 ISProxyStreamer::ISProxyStreamer() throw () {}
00014 bool ISProxyStreamer::inMap = IOManager::addToMap("Sct::ISProxy::ISProxy", auto_ptr<Streamer>(new ISProxyStreamer()));
00015
00016 void ISProxyStreamer::write(OStream& out, const Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00017 const ISProxy& var = dynamic_cast<const ISProxy&>(ob);
00018 out << var.getFileName();
00019 }
00020
00021 shared_ptr<Streamable> ISProxyStreamer::read(IStream& in, const IOManager& manager) const throw(LogicError, IoError) {
00022 string fileName;
00023 in >> fileName;
00024
00025 return IOManagerFile::instance().read(fileName);
00026 }
00027
00028 void ISProxyStreamer::read(IStream& in, Streamable& ob, const IOManager& manager) const throw(LogicError, IoError) {
00029 ISProxy& var = dynamic_cast<ISProxy&>(ob);
00030 string fileName;
00031 in >> fileName;
00032 var.setFileName(fileName);
00033 }
00034
00035
00036
00037 }
00038 }