3#ifdef __COMPILE_StringArray__
4 #define THIS_NAME __szStringArray_cpp__
5 #define THIS_VALUE __T("dcl/__ARRAY.cpp/String")
6 #define ARRAY_T StringArray
7 #define ELEMENT_T String
8 #define CONST_ELEMENT_REF const String&
9 #define HAVE_CONSTRUCTOR 1
10#elif defined(__COMPILE_ByteStringArray__)
11 #define THIS_NAME __szByteStringArray_cpp__
12 #define THIS_VALUE __T("dcl/__ARRAY.cpp/ByteString")
13 #define ARRAY_T ByteStringArray
14 #define ELEMENT_T ByteString
15 #define CONST_ELEMENT_REF const ByteString&
16 #define HAVE_CONSTRUCTOR 1
17#elif defined(__COMPILE_PointerArray__)
18 #define THIS_NAME __szPointerArray_cpp__
19 #define THIS_VALUE __T("dcl/__ARRAY.cpp/void*")
20 #define ARRAY_T PointerArray
21 #define ELEMENT_T void*
22 #define CONST_ELEMENT_REF const void*
23 #define HAVE_CONSTRUCTOR 0
24#elif defined(__COMPILE_StringStringArray__)
25 #define THIS_NAME __szStringStringArray_cpp__
26 #define THIS_VALUE __T("dcl/__ARRAY.cpp/StringString")
27 #define ARRAY_T StringStringArray
28 #define ELEMENT_T StringString
29 #define CONST_ELEMENT_REF const StringString&
30 #define HAVE_CONSTRUCTOR 1
33#if __DCL_HAVE_THIS_FILE__
34 static const char_t THIS_NAME[] = THIS_VALUE;
36 #define __THIS_FILE__ THIS_NAME
39#if __DCL_HAVE_ALLOC_DEBUG
40 #undef __DCL_ALLOC_LEVEL
41 #define __DCL_ALLOC_LEVEL __DCL_ALLOC_INTERNAL
48String ARRAY_T::toString()
const
50 StringBuilder
r =
__T(
"{");
51 for (ConstIterator it = begin(); it != end(); it++)
55#ifdef __COMPILE_StringArray__
57 r += String::escape((*it), (*it).length());
59#elif defined(__COMPILE_ByteStringArray__)
61 r += String::tryString((*it), 8);
63#elif defined(__COMPILE_PointerArray__)
64 r.format(
__T(
"%p"), (*it));
66 r += (*it).toString();
73#undef constructElements
74#undef destructElements
79ARRAY_T::constructElements(ELEMENT_T* _pElements,
size_t _size)
81 for(; _size; _size--, _pElements++)
83#if __DCL_HAVE_ALLOC_DEBUG
87 new((
void*)_pElements) ELEMENT_T;
89#if __DCL_HAVE_ALLOC_DEBUG
90 #define new __DCL_DEBUG_NEW
97ARRAY_T::destructElements(ELEMENT_T* _pElements,
size_t _size)
99 for( ; _size; _size--, _pElements++)
101 _pElements->~ELEMENT_T();
105 #define constructElements(_pElements, _size)
106 #define destructElements(_pElements, _size)
134 for(
size_t i = 0; i < _src.
size(); i++)
161 buf->__maxSize =
buf->__size;
204 buf->__maxSize = _size;
206 memset((
void*)(
__pData +
buf->__size), 0, (_size -
buf->__size) *
sizeof(ELEMENT_T));
230 size_t newSize =
size() + 1;
239 buf->__maxSize = newSize;
243 memmove((
void*)(
__pData + _index + 1), (
const void*)(
__pData + _index),
244 sizeof(ELEMENT_T) * (
buf->__size - _index));
249 __pData[_index] = (ELEMENT_T) _element;
258 size_t newSize =
size() + _src.
size();
271 for(
size_t i = 0; i < _src.
size(); i++)
283 for ( ; it !=
end(); it++)
298 if (_index + _size <
size())
299 memmove((
void*)(
__pData + _index), (
const void*)(
__pData + _index + _size),
300 (
size() - (_index + _size)) *
sizeof(ELEMENT_T));
306#if __DCL_HAVE_THIS_FILE__
308 #define __THIS_FILE__ __T(__FILE__)
315#undef CONST_ELEMENT_REF
316#undef HAVE_CONSTRUCTOR
#define constructElements(_pElements, _size)
#define destructElements(_pElements, _size)
#define __DCL_ASSERT_PARAM(expr)
#define __DCL_ASSERT(expr)
#define IMPLEMENT_CLASSINFO(class_name, base_class_name)
#define __DCL_ASSERT_HANDLE(expr)
void CharsetConvertException *__fields clear()
size_t index(Iterator _pos) const
Iterator erase(Iterator _pos)
void resize(size_t _size)
ARRAY_T & add(CONST_ELEMENT_REF _element)
ConstIterator end() const
Iterator insert(Iterator _pos, CONST_ELEMENT_REF _element)
Iterator find(CONST_ELEMENT_REF _element)
size_t & __maxSize() const
const ARRAY_T & operator=(const ARRAY_T &_src)
ConstIterator begin() const