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
00031
00032
00033 #pragma once
00034
00035
00036 #include "../api_core.h"
00037 #include "sharedptr.h"
00038
00039 class CL_MemoryPool;
00040 class CL_DataBuffer_Impl;
00041
00045 class CL_API_CORE CL_DataBuffer
00046 {
00049
00050 public:
00052 CL_DataBuffer();
00053
00054 CL_DataBuffer(const CL_DataBuffer ©);
00055
00056 CL_DataBuffer(int size, CL_MemoryPool *pool = 0);
00057
00058 CL_DataBuffer(const void *data, int size, CL_MemoryPool *pool = 0);
00059
00060 CL_DataBuffer(const CL_DataBuffer &data, int pos, int size = -1, CL_MemoryPool *pool = 0);
00061
00062 ~CL_DataBuffer();
00063
00064
00068
00069 public:
00071 char *get_data();
00072
00073 const char *get_data() const;
00074
00076 int get_size() const;
00077
00079 int get_capacity() const;
00080
00082 char &operator[](int i);
00083
00084 const char &operator[](int i) const;
00085
00086 char &operator[](unsigned int i);
00087
00088 const char &operator[](unsigned int i) const;
00089
00091 bool is_null() const;
00092
00093
00097
00098 public:
00099 CL_DataBuffer &operator =(const CL_DataBuffer ©);
00100
00102 void set_size(int size);
00103
00105 void set_capacity(int capacity);
00106
00107
00111
00112 private:
00113 CL_SharedPtr<CL_DataBuffer_Impl> impl;
00115 };
00116
00117