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