Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

dt_stream_base.c

Go to the documentation of this file.
00001 #include "dt_stream_base.h"
00002 
00003 #include <assert.h>
00004 
00005 
00006 #ifndef NDEBUG
00007 
00008   unsigned dt_reader_instance_count = 0;
00010   unsigned dt_writer_instance_count = 0;
00011 #endif
00012 
00013 
00019 dt_bool dt_read ( dt_reader* obj, dt_stream_step* step )
00020 {
00021    assert( (!!obj) && (obj->read_impl) && (obj->free_impl) );
00022    assert( !! step );
00023    
00024    return obj->read_impl( obj, step );
00025 }
00026 
00028 void dt_free_reader( dt_reader* obj )
00029 {
00030    assert( (!!obj) && (obj->read_impl) && (obj->free_impl) );
00031    
00032    obj->free_impl( obj );
00033 #ifndef NDEBUG
00034    -- dt_reader_instance_count;
00035 #endif
00036 }
00037 
00038 
00044 dt_bool dt_write( dt_writer* obj, dt_stream_step const* step)
00045 {
00046    assert( (!!obj) && (obj->write_impl) && (obj->free_impl) );
00047    assert( !! step );
00048    
00049    return obj->write_impl( obj, step );
00050 }
00051 
00053 void dt_free_writer( dt_writer* obj )
00054 {
00055    assert( (!!obj) && (obj->write_impl) && (obj->free_impl) );
00056    
00057    obj->free_impl( obj );
00058 #ifndef NDEBUG
00059    -- dt_writer_instance_count;
00060 #endif
00061 }
00062 
00063 
00064 
00065 void dt_init_reader_base( dt_reader* reader
00066                         , void (*free_impl)(dt_reader*)
00067                         , dt_bool (*read_impl)(dt_reader*, dt_stream_step*)
00068                         )
00069 {
00070    reader->free_impl = free_impl;
00071    reader->read_impl = read_impl;
00072 #ifndef NDEBUG
00073    ++ dt_reader_instance_count;
00074 #endif
00075 }
00076 
00077 void dt_init_writer_base( dt_writer* writer
00078                         , void (*free_impl)(dt_writer*)
00079                         , dt_bool (*write_impl)(dt_writer*, dt_stream_step const*)
00080                         )
00081 {
00082    writer->free_impl  = free_impl;
00083    writer->write_impl = write_impl;
00084 #ifndef NDEBUG
00085    ++ dt_writer_instance_count;
00086 #endif
00087 }
00088 
00089 

Generated on Sun Jun 1 16:35:38 2003 for datatree by doxygen 1.3.1