Scopira
20080306
|
#include <polyflow.h>
Public Member Functions | |
isooflow (bool doref, otflow_i *rz) | |
constructor + open | |
virtual | ~isooflow () |
destructor | |
virtual void | write_object (const scopira::tool::object *o) |
saves the object to stream | |
![]() | |
polyoflow (bool doref, otflow_i *rz) | |
constructor + open | |
virtual | ~polyoflow () |
destructor | |
virtual bool | failed (void) const |
are we in a failed state? | |
virtual size_t | write (const byte_t *_buf, size_t _size) |
write a raw block of data | |
virtual void | write_bool (bool val) |
virtual void | write_char (char val) |
virtual void | write_short (short val) |
virtual void | write_int (int val) |
virtual void | write_size_t (size_t val) |
virtual void | write_int64_t (int64_t val) |
virtual void | write_long (long val) |
virtual void | write_float (float val) |
virtual void | write_double (double val) |
virtual void | write_string (const std::string &val) |
void | open (otflow_i *fi) |
void | close (void) |
closes the current file | |
![]() | |
template<class L > | |
void | write_object_type (const scopira::tool::count_ptr< L > &o) |
![]() | |
template<class TT > | |
void | write_generic (const TT &v) |
![]() | |
virtual size_t | write_byte (byte_t b) |
template<class TT > | |
size_t | write_array (const TT *_buf, size_t _numelem) |
size_t | write_void (const void *_buf, size_t _size) |
![]() | |
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 |
Protected Types | |
typedef std::map< const scopira::tool::object *, int > | ptrmap_t |
![]() | |
typedef std::map< std::string, int > | typemap_t |
Protected Attributes | |
int | dm_nextid |
ptrmap_t | dm_ptrmap |
![]() | |
count2_ptr< otflow_i > | dm_file |
int | dm_next_typeid |
typemap_t | dm_typemap |
Additional Inherited Members | |
![]() | |
enum | { input_c = 1, output_c = 2 } |
typedef scopira::tool::byte_t | byte_t |
typedef int | mode_t |
![]() | |
object (void) | |
object (bool neverusecounter) | |
This is an polyoflow implementation that implements full serialazation of objects, and has support for multi references. That is, if an object is refered to by multiple pointers, it will only be written to disk once.
Reading the objects back from the stream also reproduces one instance. rather than many.
This is stream is almost always prefeered over scopira::tool::polyoflow