00001 #ifndef INCLUDED_DT_STREAM_H 00002 #define INCLUDED_DT_STREAM_H 00003 00004 #include "dt_type.h" 00005 00007 typedef enum { 00008 dt_leaf, 00009 dt_rec_in, 00010 dt_rec_out, 00011 dt_arr_in, 00012 dt_arr_out, 00013 dt_end 00014 } dt_step_kind; 00015 00017 typedef struct dt_stream_step_ 00018 { 00019 enum dt_step_kind kind; 00020 dt_byte const* key; 00021 size_t key_len; 00022 dt_byte const* val; 00023 size_t val_len; 00024 } dt_stream_step; 00025 00026 typedef struct dt_reader_ dt_reader; 00027 dt_bool dt_read ( dt_reader* obj, dt_stream_step* step); 00028 void dt_free_reader( dt_reader* obj ); 00029 00030 typedef struct dt_writer_ dt_writer; 00031 dt_bool dt_write(dt_writer* obj, dt_stream_step const* step); 00032 void dt_free_writer( dt_writer* obj ); 00033 00034 00035 00036 #endif/*INCLUDED_DT_STREAM_H*/ 00037