00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef CBUFFER_H
00015 #define CBUFFER_H
00016
00017 #include "definitions.h"
00018
00019 #include <vector>
00020 #include <iterator>
00021 #include <cassert>
00022
00023
00024 namespace pico {
00025 class CBuffer;
00026 }
00027
00028
00029 class pico::CBuffer{
00030
00031 public:
00032 CBuffer(){}
00033
00034 ~CBuffer();
00035
00036
00037 void copyToBuffer(const char * const start, const size_t& size);
00038 void allocateBuffer(const size_t& size);
00039
00040
00041 char * start() {
00042 if (_buf.empty()) return NULL;
00043 return &(_buf[0]);
00044 }
00045
00046 int size() const {
00047 assert (_buf.size()>0);
00048 return _buf.size();
00049 }
00050
00051
00052 private:
00053 CBuffer(const CBuffer &);
00054 const CBuffer & operator=(const CBuffer &);
00055
00056 private:
00057 std::vector<char> _buf;
00058 };
00059
00060 #endif
00061
00062