#include <IOManager.h>
Inheritance diagram for Sct::IOManager:
Methods for Streamable implementors | |
| |
virtual void | writeImpl (OStream &out, const Streamable &ob, bool writeClassName) const |
Writes a Streamable to an output stream. | |
virtual void | writeImpl (OStream &out, const Streamable &ob, const string &className) const |
Writes a Streamable to an output stream with a different name - to be used for base classes. | |
virtual void | writeImpl (OStream &out, const Streamable &ob, const char *className) const |
explicitly calls same with string as final argument, to prevent implicit conversion to bool | |
virtual shared_ptr< Streamable > | readImpl (IStream &in) const |
Read a Streamable from an input stream. | |
virtual shared_ptr< Streamable > | readImpl (IStream &in, const string &className) const |
Read a Streamable from an input stream. | |
virtual shared_ptr< Streamable > | readImpl (IStream &in, const char *className) const |
explicit conversion to string for the final argument prevents accidental implicit conversion to bool. | |
virtual void | readImpl (IStream &in, Streamable &ob, bool readClassName) const |
Read a Streamable from an input stream. | |
virtual void | readImpl (IStream &in, Streamable &ob, const string &className) const |
Read a Streamable from an input stream with different classname - to be used for derrived classes. | |
virtual void | readImpl (IStream &in, Streamable &ob, const char *className) const |
calls method with explicit string in last arg to prevent implicit conversion to bool | |
virtual void | writeClassName (OStream &out, const string &className) const |
Writes a class name to an OStream. | |
virtual string | readClassName (IStream &in) const |
Read a class name from an IStream. | |
static bool | addToMap (const std::string &className, std::auto_ptr< Streamer > s) throw () |
Add a Streamer to the map. | |
Methods for sub-class authors | |
typedef map< string, shared_ptr< Streamer > > | StreamerMap |
virtual Streamer & | getStreamer (const string &className) const |
A sub-class can override this if it wants to influence the Streamer that will be used for a particular class. | |
virtual Streamer & | getStreamer (const string &className, const unsigned version) const |
Get a particular verion of a streamer, to be used e.g. | |
static StreamerMap & | getMap () throw () |
map of classname, streamer | |
static StreamerMap & | getFullVersionMap () throw () |
map of mapname (=classname/version), streamer | |
static std::string | getMapName (const std::string &classname, const unsigned version) throw () |
class | Streamer |
Public Member Functions | |
virtual | ~IOManager () |
Methods for users | |
{ | |
virtual void | write (const Serializable &ob, const IOParams *params=0) const =0 |
Write an object. | |
virtual shared_ptr< Serializable > | read (const string &name, const IOParams *params=0) const =0 |
Read an object. |
Possibilities are raw file, IS, some other form of persistency. Perhaps even a viewer.
Some methods here deal with a name. This is a backend specific identifier - e.g. a filename or an IS name. In order to retrieve a name, a backend specific method or an appropriate IOName sub-class should be used.
shared_ptr is returned sometimes, rather than auto_ptr to allow singletons to be returned which might be indicated by some numeric ID for instance.
Definition at line 43 of file IOManager.h.
|
Add a Streamer to the map. The Streamer will be used to do IO on classes named className.
|
|
map of mapname (=classname/version), streamer
Definition at line 55 of file IOManager.cpp. Referenced by getStreamer(). |
|
map of classname, streamer
Definition at line 60 of file IOManager.cpp. Referenced by getStreamer(). |
|
Get a particular verion of a streamer, to be used e.g. by archival when reading data saved with old streamers. Definition at line 82 of file IOManager.cpp. References getFullVersionMap(), and getMapName(). Here is the call graph for this function: ![]() |
|
A sub-class can override this if it wants to influence the Streamer that will be used for a particular class.
Reimplemented in Sct::Archive::IOManagerStreamerVersioned. Definition at line 65 of file IOManager.cpp. References getMap(). Referenced by readImpl(), Sct::IOManagerDummy::testStreaming1(), Sct::IOManagerDummy::testStreaming2(), Sct::Archive::IOManagerStreamerVersioned::writeClassName(), and writeImpl(). Here is the call graph for this function: ![]() |
|
Read an object. Will determine the class by first reading a string assumed to contain the className.
Implemented in SctArchiving::IOManagerDB, Sct::Archive::IOManagerArchiveFile, Sct::File::IOManagerFile, Sct::IOManagerDummy, and Sct::IS::IOManagerIS. |
|
Read a class name from an IStream. Should only be overriden if absolutely necessary. Sub-classes should use this method if ever they need to write a class name and avoid proprietry solutions as they may break Java compatability.
Reimplemented in Sct::Archive::IOManagerStreamerVersioned. Definition at line 170 of file IOManager.cpp. Referenced by Sct::Archive::IOManagerStreamerVersioned::readClassName(), and readImpl(). |
|
calls method with explicit string in last arg to prevent implicit conversion to bool
Definition at line 142 of file IOManager.cpp. References readImpl(). Here is the call graph for this function: ![]() |
|
Read a Streamable from an input stream with different classname - to be used for derrived classes.
Definition at line 132 of file IOManager.cpp. References getStreamer(), and Sct::Streamer::read(). Here is the call graph for this function: ![]() |
|
Read a Streamable from an input stream.
Reimplemented in Sct::Archive::IOManagerStreamerVersioned. Definition at line 151 of file IOManager.cpp. References Sct::Streamable::getClassName(), and readClassName(). Here is the call graph for this function: ![]() |
|
explicit conversion to string for the final argument prevents accidental implicit conversion to bool.
Definition at line 146 of file IOManager.cpp. References readImpl(). Here is the call graph for this function: ![]() |
|
Read a Streamable from an input stream. Corresponds to write with writeClassName=false.
Definition at line 137 of file IOManager.cpp. References getStreamer(), and Sct::Streamer::read(). Here is the call graph for this function: ![]() |
|
Read a Streamable from an input stream. Reads the class name from the stream first. Corresponds to write with writeClassName=true.
Reimplemented in Sct::Archive::IOManagerStreamerVersioned. Definition at line 126 of file IOManager.cpp. References getStreamer(), Sct::Streamer::read(), and readClassName(). Referenced by SctData::IO::RawScanResultStreamer_v3::read(), SctData::IO::RawScanResultStreamer_v2::read(), SctData::IO::RawScanResultStreamer_v1::read(), readImpl(), and Sct::IS::detail::ISAdapter::refreshGuts(). Here is the call graph for this function: ![]() |
|
Write an object.
Implemented in SctArchiving::IOManagerDB, Sct::Archive::IOManagerArchiveFile, Sct::File::IOManagerFile, Sct::IOManagerDummy, Sct::IS::IOManagerIS, and Sct::ISProxy::IOManagerISProxy. |
|
Writes a class name to an OStream. Should only be overriden if absolutely necessary. Sub-classes should use this method if ever they need to write a class name and avoid proprietry solutions as they may break Java compatability.
Reimplemented in Sct::Archive::IOManagerStreamerVersioned. Definition at line 166 of file IOManager.cpp. Referenced by Sct::Archive::IOManagerStreamerVersioned::writeClassName(), and writeImpl(). |
|
explicitly calls same with string as final argument, to prevent implicit conversion to bool
Definition at line 117 of file IOManager.cpp. References writeImpl(). Here is the call graph for this function: ![]() |
|
Writes a Streamable to an output stream with a different name - to be used for base classes.
Definition at line 121 of file IOManager.cpp. References getStreamer(), and Sct::Streamer::write(). Here is the call graph for this function: ![]() |
|
Writes a Streamable to an output stream.
Reimplemented in Sct::Archive::IOManagerStreamerVersioned, and Sct::ISProxy::IOManagerISProxy. Definition at line 111 of file IOManager.cpp. References Sct::Streamable::getClassName(), getStreamer(), Sct::Streamer::write(), and writeClassName(). Referenced by Sct::IS::detail::ISAdapter::publishGuts(), SctData::IO::RawScanResultStreamer_v3::write(), SctData::IO::RawScanResultStreamer_v2::write(), SctData::IO::RawScanResultStreamer_v1::write(), and writeImpl(). Here is the call graph for this function: ![]() |