|
Scopira
20080306
|
#include <flow.h>
Public Member Functions | |
| virtual bool | read_object (object *&out)=0 |
| template<class TT > | |
| bool | read_object_type (TT *&out) |
| template<class TT > | |
| bool | read_object_type (count_ptr< TT > &out) |
Public Member Functions inherited from scopira::tool::itflow_i | |
| virtual bool | read_bool (bool &)=0 |
| virtual bool | read_char (char &)=0 |
| virtual bool | read_short (short &)=0 |
| virtual bool | read_int (int &)=0 |
| virtual bool | read_size_t (size_t &)=0 |
| virtual bool | read_int64_t (int64_t &)=0 |
| virtual bool | read_long (long &)=0 |
| virtual bool | read_float (float &)=0 |
| virtual bool | read_double (double &)=0 |
| virtual bool | read_string (std::string &)=0 |
| template<class TT > | |
| bool | read_generic (TT &v) |
Public Member Functions inherited from scopira::tool::iflow_i | |
| virtual size_t | read (byte_t *_buf, size_t _maxsize)=0 |
| virtual size_t | read_byte (byte_t &out) |
| template<class TT > | |
| size_t | read_array (TT *_buf, size_t _numelem) |
| size_t | read_void (void *_buf, size_t _maxsize) |
Public Member Functions inherited from scopira::tool::flow_i | |
| virtual bool | failed (void) const =0 |
Public Member Functions inherited from scopira::tool::object | |
| virtual | ~object () |
| int | add_ref (void) const |
| bool | sub_ref (void) const |
| void | auto_ref (void) const |
| int | current_ref (void) const |
| virtual scopira::tool::oflow_i & | print (scopira::tool::oflow_i &o) const |
| virtual bool | load (scopira::tool::iobjflow_i &in) |
| virtual void | save (scopira::tool::oobjflow_i &out) const |
| bool | is_alive_object (void) const |
| bool | is_dead_object (void) const |
Additional Inherited Members | |
Public Types inherited from scopira::tool::flow_i | |
| enum | { input_c = 1, output_c = 2 } |
| typedef scopira::tool::byte_t | byte_t |
| typedef int | mode_t |
Protected Member Functions inherited from scopira::tool::object | |
| object (void) | |
| object (bool neverusecounter) | |
Input object serialization. This interface adds a virtual-object read method to itflow_t. In total - via inheritance - this interface may read objects, primitive types (including streams) and raw bytes.
|
pure virtual |
Reads a virtual object from the flow.
The method may succeed (by returning true) and still set out to be null. This is normal, and just means that a null pointer was stored in the stream.
Always pass a real object*. Do not attempt to pass (via a cast) yourobject* to this method. You will be bitten by subtlies in the way C++ moves pointers around on multiple or virtual inheritance heiarchies.
| out | this will be set to the read object |
Implemented in scopira::tool::isoiflow, scopira::tool::propiflow, and scopira::tool::polyiflow.
| bool scopira::tool::iobjflow_i::read_object_type | ( | TT *& | out | ) |
This is a type safe helper around read_object. It will do read_object on its own temporary object* and verify (via assert) that it can be cast to your type TT.
| out | the output pointer to set, may be null on success |
| bool scopira::tool::iobjflow_i::read_object_type | ( | count_ptr< TT > & | out | ) |
Similar to read_object_type, but reads into an auto pointer directly.