00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #pragma once
00022
00023 #include <cstddef>
00024
00025 namespace drizzled {
00026
00027 class DYNAMIC_ARRAY
00028 {
00029 public:
00030 unsigned char *buffer;
00031 size_t max_element;
00032 uint32_t alloc_increment;
00033 uint32_t size_of_element;
00034
00035 void push_back(void*);
00036
00037 size_t size() const
00038 {
00039 return elements;
00040 }
00041
00042 void set_size(size_t v)
00043 {
00044 elements = v;
00045 }
00046 private:
00047 size_t elements;
00048 };
00049
00050 #define my_init_dynamic_array(A,B,C,D) init_dynamic_array2(A,B,NULL,C,D)
00051 #define my_init_dynamic_array_ci(A,B,C,D) init_dynamic_array2(A,B,NULL,C,D)
00052
00053 bool init_dynamic_array2(DYNAMIC_ARRAY *array,uint32_t element_size,
00054 void *init_buffer, uint32_t init_alloc,
00055 uint32_t alloc_increment);
00056 unsigned char *alloc_dynamic(DYNAMIC_ARRAY *array);
00057 unsigned char *pop_dynamic(DYNAMIC_ARRAY*);
00058 void delete_dynamic(DYNAMIC_ARRAY *array);
00059
00060 }
00061