Scopira  20080306
scopira::tool::isooflow Class Reference

#include <polyflow.h>

Inheritance diagram for scopira::tool::isooflow:
scopira::tool::polyoflow scopira::tool::oobjflow_i scopira::tool::otflow_i scopira::tool::oflow_i scopira::tool::flow_i scopira::tool::object scopira::tool::archiveoflow

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
 
- Public Member Functions inherited from scopira::tool::polyoflow
 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
 
- Public Member Functions inherited from scopira::tool::oobjflow_i
template<class L >
void write_object_type (const scopira::tool::count_ptr< L > &o)
 
- Public Member Functions inherited from scopira::tool::otflow_i
template<class TT >
void write_generic (const TT &v)
 
- Public Member Functions inherited from scopira::tool::oflow_i
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)
 
- 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_iprint (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
 
- Protected Types inherited from scopira::tool::polyoflow
typedef std::map< std::string, int > typemap_t
 

Protected Attributes

int dm_nextid
 
ptrmap_t dm_ptrmap
 
- Protected Attributes inherited from scopira::tool::polyoflow
count2_ptr< otflow_idm_file
 
int dm_next_typeid
 
typemap_t dm_typemap
 

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)
 

Detailed Description

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

Author
Aleksander Demko

The documentation for this class was generated from the following file: