00001 #ifndef SCT_STREAMER_H
00002 #define SCT_STREAMER_H
00003
00004 #include <boost/shared_ptr.hpp>
00005 #include "OStream.h"
00006 #include "IStream.h"
00007 #include "IOManager.h"
00008 #include "Streamable.h"
00009
00010
00011
00012 using boost::shared_ptr;
00013
00014 namespace Sct {
00015
00016 class Streamer {
00017 public:
00018 virtual ~Streamer() {}
00019
00027 virtual void write(OStream& out, const Streamable& ob, const IOManager& manager) const = 0;
00028
00036 virtual shared_ptr<Streamable> read(IStream& in, const IOManager& manager) const = 0;
00037
00045 virtual void read(IStream& in, Streamable& ob, const IOManager& manager) const = 0;
00046 };
00047
00048 }
00049
00050 #endif //SCT_STREAMER_H