00001 #ifndef INCLUDED_DT_STREAM_BASE_H 00002 #define INCLUDED_DT_STREAM_BASE_H 00003 00004 #include "dt_stream.h" 00005 00007 typedef struct dt_reader_ 00008 { 00010 void (*free_impl)( dt_reader* obj ); 00012 dt_bool (*read_impl)( dt_reader* obj, dt_stream_step* step ); 00013 } dt_reader; 00014 00016 typedef struct dt_writer_ 00017 { 00019 void (*free_impl )( dt_writer* obj ); 00021 dt_bool (*write_impl)( dt_writer* obj, dt_stream_step const* step ); 00022 } dt_writer; 00023 00024 00025 00026 void dt_init_reader_base( dt_reader* reader 00027 , void (*free_impl)(dt_reader*) 00028 , dt_bool (*read_impl)(dt_reader*, dt_stream_step*) 00029 ); 00030 void dt_init_writer_base( dt_writer* writer 00031 , void (*free_impl)(dt_writer*) 00032 , dt_bool (*write_impl)(dt_writer*, dt_stream_step const*) 00033 ); 00034 00035 00036 #endif/*INCLUDED_DT_STREAM_BASE_H*/ 00037