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 #include "BufferString.h"
00026 #include <stdlib.h>
00027 #include <string.h>
00028
00029 namespace eyedb {
00030
00031 BufferString::BufferString(int len)
00032 {
00033 buff_alloc = len + 32;
00034 buff = (char *)malloc(buff_alloc);
00035 buff_len = len;
00036 buff[buff_len] = 0;
00037 }
00038
00039 void BufferString::append(const char *str)
00040 {
00041 int len = strlen(str);
00042 if (buff_len + len >= buff_alloc)
00043 {
00044 buff_alloc = buff_len + len + 32;
00045 buff = (char *)realloc(buff, buff_alloc);
00046 }
00047 strcat(buff, str);
00048 buff_len = strlen(buff);
00049 }
00050
00051 int BufferString::length() const
00052 {
00053 return buff_len;
00054 }
00055
00056 const char *BufferString::getString() const
00057 {
00058 return buff;
00059 }
00060
00061 BufferString::~BufferString()
00062 {
00063 free(buff);
00064 }
00065 }