00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00034 #ifndef _AFLIBBUFFERDEV_H
00035 #define _AFLIBBUFFERDEV_H
00036
00037
00038
00039 class aflibBufferDev {
00040
00041 public:
00042
00043 aflibBufferDev();
00044
00045 ~aflibBufferDev();
00046
00047 bool
00048 init(
00049 int buf_size);
00050
00052 inline
00053 int
00054 getBufferSize() const {return(_buf_size);};
00055
00057 inline
00058 int
00059 bytes_available()
00060 {
00061 int bytes_avail;
00062
00063 if (_w_ptr >= _r_ptr)
00064 bytes_avail = _w_ptr - _r_ptr;
00065 else
00066 bytes_avail = _buf_size - (_r_ptr - _w_ptr);
00067
00068 return(bytes_avail);
00069 };
00070
00071 void
00072 write(
00073 unsigned char * buf,
00074 int num_bytes);
00075
00076 void
00077 read(
00078 unsigned char * buf,
00079 int num_bytes);
00080
00081 private:
00082
00083 unsigned char * _buf_ptr;
00084 unsigned char * _end_ptr;
00085 unsigned char * _w_ptr;
00086 unsigned char * _r_ptr;
00087 int _buf_size;
00088
00089
00090 };
00091
00092
00093 #endif