1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #if 0 25 *********************************************************************** 26 * 27 * Die vordefinierte Arrays werden ueber POSITIV-Defines aktiviert: 28 * (die defines setzen sich aus "_SVSTDARR_" und dem Namen des Array 29 * ohne "Sv" zusammen) 30 * 31 * VarArr: SvBools, SvULongs, SvUShorts, SvLongs, SvShorts 32 * PtrArr: SvStrings, SvStringsDtor 33 * SortArr: SvStringsSort, SvStringsSortDtor, 34 * SvStringsISort, SvStringsISortDtor, 35 * SvUShortsSort 36 *********************************************************************** 37 #endif 38 39 #include "svl/svldllapi.h" 40 #include <svl/svarray.hxx> 41 #include <deque> 42 43 typedef std::deque< sal_Bool > SvBools; 44 45 typedef std::deque< sal_uInt8 > SvBytes; 46 47 //#ifdef _SVSTDARR_ULONGS 48 #ifndef _SVSTDARR_ULONGS_DECL 49 SV_DECL_VARARR_VISIBILITY( SvULongs, sal_uLong, 1, 1, SVL_DLLPUBLIC ) 50 #define _SVSTDARR_ULONGS_DECL 51 #endif 52 //#endif 53 54 //#ifdef _SVSTDARR_ULONGSSORT 55 #ifndef _SVSTDARR_ULONGSSORT_DECL 56 SV_DECL_VARARR_SORT_VISIBILITY( SvULongsSort, sal_uLong, 1, 1, SVL_DLLPUBLIC ) 57 #define _SVSTDARR_ULONGSSORT_DECL 58 #endif 59 //#endif 60 61 //#ifdef _SVSTDARR_USHORTS 62 #ifndef _SVSTDARR_USHORTS_DECL 63 SV_DECL_VARARR_VISIBILITY( SvUShorts, sal_uInt16, 1, 1, SVL_DLLPUBLIC ) 64 #define _SVSTDARR_USHORTS_DECL 65 #endif 66 //#endif 67 68 //#ifdef _SVSTDARR_USHORTSSORT 69 #ifndef _SVSTDARR_USHORTSSORT_DECL 70 71 typedef sal_Bool (*FnForEach_SvUShortsSort)( const sal_uInt16&, void* ); 72 class SVL_DLLPUBLIC SvUShortsSort : __MWERKS__PRIVATE SvUShorts 73 { 74 public: SvUShortsSort(sal_uInt8 nSize=1,sal_uInt8 nG=1)75 SvUShortsSort(sal_uInt8 nSize = 1, sal_uInt8 nG = 1) 76 : SvUShorts(nSize,nG) {} 77 78 void Insert( const SvUShortsSort *pI, sal_uInt16 nS=0, sal_uInt16 nE=USHRT_MAX ); 79 sal_Bool Insert( const sal_uInt16 aE ); 80 sal_Bool Insert( const sal_uInt16 aE, sal_uInt16& rP ); 81 void Insert( const sal_uInt16 *pE, sal_uInt16 nL ); 82 // remove ab Pos 83 void RemoveAt( const sal_uInt16 nP, sal_uInt16 nL = 1 ); 84 // remove ab dem Eintrag 85 void Remove( const sal_uInt16 nP, sal_uInt16 nL = 1 ); 86 sal_Bool Seek_Entry( const sal_uInt16 aE, sal_uInt16* pP = 0 ) const; 87 Count() const88 sal_uInt16 Count() const { return SvUShorts::Count(); } GetData() const89 const sal_uInt16* GetData() const { return (const sal_uInt16*)pData; } 90 operator [](sal_uInt16 nP) const91 const sal_uInt16& operator[](sal_uInt16 nP) const { 92 return SvUShorts::operator[]( nP ); 93 } GetObject(sal_uInt16 nP) const94 const sal_uInt16& GetObject(sal_uInt16 nP) const { 95 return SvUShorts::GetObject( nP ); 96 } ForEach(FnForEach_SvUShortsSort fnForEach,void * pArgs=0)97 void ForEach( FnForEach_SvUShortsSort fnForEach, void* pArgs = 0 ) 98 { 99 _ForEach( 0, nA, (FnForEach_SvUShorts)fnForEach, pArgs ); 100 } ForEach(sal_uInt16 nS,sal_uInt16 nE,FnForEach_SvUShortsSort fnForEach,void * pArgs=0)101 void ForEach( sal_uInt16 nS, sal_uInt16 nE, 102 FnForEach_SvUShortsSort fnForEach, void* pArgs = 0 ) 103 { 104 _ForEach( nS, nE, (FnForEach_SvUShorts)fnForEach, pArgs ); 105 } 106 private: 107 SvUShortsSort( const SvUShortsSort& ); 108 SvUShortsSort& operator=( const SvUShortsSort& ); 109 }; 110 111 #define _SVSTDARR_USHORTSSORT_DECL 112 #endif 113 //#endif 114 115 //#ifdef _SVSTDARR_LONGS 116 #ifndef _SVSTDARR_LONGS_DECL 117 SV_DECL_VARARR_VISIBILITY( SvLongs, long, 1, 1, SVL_DLLPUBLIC ) 118 #define _SVSTDARR_LONGS_DECL 119 #endif 120 //#endif 121 122 //#ifdef _SVSTDARR_LONGSSORT 123 #ifndef _SVSTDARR_LONGSSORT_DECL 124 SV_DECL_VARARR_SORT_VISIBILITY( SvLongsSort, long, 1, 1, SVL_DLLPUBLIC ) 125 #define _SVSTDARR_LONGSSORT_DECL 126 #endif 127 //#endif 128 129 typedef std::deque< short > SvShorts; 130 131 /* 132 form here all Arrays for Strings, ByteString and then 133 len of a string (xub_StrLen) 134 #if (defined(_SVSTDARR_STRINGS) && !defined(_SVSTDARR_STRINGS_DECL)) || \ 135 (defined(_SVSTDARR_STRINGSDTOR) && !defined(_SVSTDARR_STRINGSDTOR_DECL)) || \ 136 (defined(_SVSTDARR_STRINGSSORT) && !defined(_SVSTDARR_STRINGSSORT_DECL)) || \ 137 (defined(_SVSTDARR_STRINGSSORTDTOR) && !defined(_SVSTDARR_STRINGSSORTDTOR_DECL)) || \ 138 (defined(_SVSTDARR_STRINGSISORT) && !defined(_SVSTDARR_STRINGSISORT_DECL)) || \ 139 (defined(_SVSTDARR_STRINGSISORTDTOR) && !defined(_SVSTDARR_STRINGSISORTDTOR_DECL)) || \ 140 (defined(_SVSTDARR_BYTESTRINGS) && !defined(_SVSTDARR_BYTESTRINGS_DECL)) || \ 141 (defined(_SVSTDARR_BYTESTRINGSDTOR) && !defined(_SVSTDARR_BYTESTRINGSDTOR_DECL)) || \ 142 (defined(_SVSTDARR_BYTESTRINGSSORT) && !defined(_SVSTDARR_BYTESTRINGSSORT_DECL)) || \ 143 (defined(_SVSTDARR_BYTESTRINGSSORTDTOR) && !defined(_SVSTDARR_BYTESTRINGSSORTDTOR_DECL)) || \ 144 (defined(_SVSTDARR_BYTESTRINGSISORT) && !defined(_SVSTDARR_BYTESTRINGSISORT_DECL)) || \ 145 (defined(_SVSTDARR_BYTESTRINGSISORTDTOR) && !defined(_SVSTDARR_BYTESTRINGSISORTDTOR_DECL)) || \ 146 (defined(_SVSTDARR_XUB_STRLEN) && !defined(_SVSTDARR_XUB_STRLEN_DECL)) ||\ 147 (defined(_SVSTDARR_XUB_STRLENSORT) && !defined(_SVSTDARR_XUB_STRLENSORT_DECL)) 148 */ 149 #include <tools/string.hxx> 150 151 typedef String* StringPtr; 152 typedef ByteString* ByteStringPtr; 153 154 //#endif 155 156 //#ifdef _SVSTDARR_STRINGS 157 #ifndef _SVSTDARR_STRINGS_DECL 158 SV_DECL_PTRARR_VISIBILITY( SvStrings, StringPtr, 1, 1, SVL_DLLPUBLIC ) 159 #define _SVSTDARR_STRINGS_DECL 160 #endif 161 //#endif 162 163 //#ifdef _SVSTDARR_STRINGSDTOR 164 #ifndef _SVSTDARR_STRINGSDTOR_DECL 165 SV_DECL_PTRARR_DEL_VISIBILITY( SvStringsDtor, StringPtr, 1, 1, SVL_DLLPUBLIC ) 166 #define _SVSTDARR_STRINGSDTOR_DECL 167 #endif 168 //#endif 169 170 //#ifdef _SVSTDARR_STRINGSSORT 171 #ifndef _SVSTDARR_STRINGSSORT_DECL 172 SV_DECL_PTRARR_SORT_VISIBILITY( SvStringsSort, StringPtr, 1, 1, SVL_DLLPUBLIC ) 173 #define _SVSTDARR_STRINGSSORT_DECL 174 #endif 175 //#endif 176 177 //#ifdef _SVSTDARR_STRINGSSORTDTOR 178 #ifndef _SVSTDARR_STRINGSSORTDTOR_DECL 179 SV_DECL_PTRARR_SORT_DEL_VISIBILITY( SvStringsSortDtor, StringPtr, 1, 1, SVL_DLLPUBLIC ) 180 #define _SVSTDARR_STRINGSSORTDTOR_DECL 181 #endif 182 //#endif 183 184 //#ifdef _SVSTDARR_STRINGSISORT 185 #ifndef _SVSTDARR_STRINGSISORT_DECL 186 SV_DECL_PTRARR_SORT_VISIBILITY( SvStringsISort, StringPtr, 1, 1, SVL_DLLPUBLIC ) 187 #define _SVSTDARR_STRINGSISORT_DECL 188 #endif 189 //#endif 190 191 //#ifdef _SVSTDARR_STRINGSISORTDTOR 192 #ifndef _SVSTDARR_STRINGSISORTDTOR_DECL 193 SV_DECL_PTRARR_SORT_DEL_VISIBILITY( SvStringsISortDtor, StringPtr, 1, 1, SVL_DLLPUBLIC ) 194 #define _SVSTDARR_STRINGSISORTDTOR_DECL 195 #endif 196 //#endif 197 198 //#ifdef _SVSTDARR_BYTESTRINGS 199 #ifndef _SVSTDARR_BYTESTRINGS_DECL 200 SV_DECL_PTRARR_VISIBILITY( SvByteStrings, ByteStringPtr, 1, 1, SVL_DLLPUBLIC ) 201 #define _SVSTDARR_BYTESTRINGS_DECL 202 #endif 203 //#endif 204 205 //#ifdef _SVSTDARR_BYTESTRINGSDTOR 206 #ifndef _SVSTDARR_BYTESTRINGSDTOR_DECL 207 SV_DECL_PTRARR_DEL_VISIBILITY( SvByteStringsDtor, ByteStringPtr, 1, 1, SVL_DLLPUBLIC ) 208 #define _SVSTDARR_BYTESTRINGSDTOR_DECL 209 #endif 210 //#endif 211 212 //#ifdef _SVSTDARR_BYTESTRINGSSORT 213 #ifndef _SVSTDARR_BYTESTRINGSSORT_DECL 214 SV_DECL_PTRARR_SORT_VISIBILITY( SvByteStringsSort, ByteStringPtr, 1, 1, SVL_DLLPUBLIC ) 215 #define _SVSTDARR_BYTESTRINGSSORT_DECL 216 #endif 217 //#endif 218 219 //#ifdef _SVSTDARR_BYTESTRINGSSORTDTOR 220 #ifndef _SVSTDARR_BYTESTRINGSSORTDTOR_DECL 221 SV_DECL_PTRARR_SORT_DEL_VISIBILITY( SvByteStringsSortDtor, ByteStringPtr, 1, 1, SVL_DLLPUBLIC ) 222 #define _SVSTDARR_BYTESTRINGSSORTDTOR_DECL 223 #endif 224 //#endif 225 226 //#ifdef _SVSTDARR_BYTESTRINGSISORT 227 #ifndef _SVSTDARR_BYTESTRINGSISORT_DECL 228 SV_DECL_PTRARR_SORT_VISIBILITY( SvByteStringsISort, ByteStringPtr, 1, 1, SVL_DLLPUBLIC ) 229 #define _SVSTDARR_BYTESTRINGSISORT_DECL 230 #endif 231 //#endif 232 233 //#ifdef _SVSTDARR_BYTESTRINGSISORTDTOR 234 #ifndef _SVSTDARR_BYTESTRINGSISORTDTOR_DECL 235 SV_DECL_PTRARR_SORT_DEL_VISIBILITY( SvByteStringsISortDtor, ByteStringPtr, 1, 1, SVL_DLLPUBLIC ) 236 #define _SVSTDARR_BYTESTRINGSISORTDTOR_DECL 237 #endif 238 //#endif 239 240 typedef std::deque< xub_StrLen > SvXub_StrLens; 241 242