00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00038 #if !defined( _OESS_1__IO__BINBUFFER_HPP_ )
00039 #define _OESS_1__IO__BINBUFFER_HPP_
00040
00041 #include <oess_1/io/h/declspec.hpp>
00042
00043 #include <oess_1/io/h/binstream.hpp>
00044
00045 namespace oess_1 {
00046
00047 namespace io {
00048
00049
00050
00051
00052
00066 class OESS_1__IO__TYPE ibinbuffer_t
00067 : public ibinstream_t
00068 {
00069 public :
00070 virtual ~ibinbuffer_t();
00071
00073 virtual size_t
00074 size() const = 0;
00075
00077 virtual size_t
00078 pos() const = 0;
00079
00080 virtual bool
00081 eof() const = 0;
00082
00083 protected :
00084 virtual const oess_1::char_t *
00085 in_reserve(
00086 size_t item_count,
00087 size_t item_size,
00088 size_t & item_available ) = 0;
00089
00090 virtual void
00091 in_shift(
00092 size_t item_count,
00093 size_t item_size ) = 0;
00094 };
00095
00096
00097
00098
00099
00120 class OESS_1__IO__TYPE obinbuffer_t
00121 : public obinstream_t
00122 {
00123 public :
00124 virtual ~obinbuffer_t();
00125
00127 virtual size_t
00128 capacity() const = 0;
00129
00131 virtual size_t
00132 size() const = 0;
00133
00135 virtual size_t
00136 pos() const = 0;
00137
00138 protected :
00139 virtual oess_1::char_t *
00140 out_reserve(
00141 size_t item_count,
00142 size_t item_size,
00143 size_t & item_available ) = 0;
00144
00145 virtual void
00146 out_shift(
00147 size_t item_count,
00148 size_t item_size ) = 0;
00149 };
00150
00151 }
00152
00153 }
00154
00155 #endif