File: TCollection_ExtendedString.hxx

package info (click to toggle)
opencascade 6.2-7
  • links: PTS
  • area: non-free
  • in suites: lenny
  • size: 444,652 kB
  • ctags: 256,750
  • sloc: cpp: 1,150,123; ansic: 225,762; tcl: 30,130; makefile: 12,619; sh: 7,958; xml: 3,981; lisp: 283; java: 212; csh: 203; perl: 15
file content (381 lines) | stat: -rw-r--r-- 13,930 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
// File generated by CPPExt (Value)
//
//                     Copyright (C) 1991 - 2000 by  
//                      Matra Datavision SA.  All rights reserved.
//  
//                     Copyright (C) 2001 - 2004 by
//                     Open CASCADE SA.  All rights reserved.
// 
// This file is part of the Open CASCADE Technology software.
//
// This software may be distributed and/or modified under the terms and
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
// and appearing in the file LICENSE included in the packaging of this file.
//  
// This software is distributed on an "AS IS" basis, without warranty of any
// kind, and Open CASCADE SA hereby disclaims all such warranties,
// including without limitation, any warranties of merchantability, fitness
// for a particular purpose or non-infringement. Please see the License for
// the specific terms and conditions governing rights and limitations under the
// License.

#ifndef _TCollection_ExtendedString_HeaderFile
#define _TCollection_ExtendedString_HeaderFile

#ifndef _Standard_ExtString_HeaderFile
#include <Standard_ExtString.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_CString_HeaderFile
#include <Standard_CString.hxx>
#endif
#ifndef _Standard_Character_HeaderFile
#include <Standard_Character.hxx>
#endif
#ifndef _Standard_ExtCharacter_HeaderFile
#include <Standard_ExtCharacter.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_OStream_HeaderFile
#include <Standard_OStream.hxx>
#endif
class Standard_NullObject;
class Standard_OutOfRange;
class Standard_NumericError;
class Standard_NegativeValue;
class TCollection_AsciiString;


#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

//! A variable-length sequence of "extended" <br>
//! (UNICODE) characters (16-bit character type). It <br>
//! provides editing operations with built-in memory <br>
//! management to make ExtendedString objects <br>
//! easier to use than ordinary extended character arrays. <br>
//! ExtendedString objects follow "value <br>
//! semantics", that is, they are the actual strings, <br>
//! not handles to strings, and are copied through <br>
//! assignment. You may use HExtendedString <br>
//! objects to get handles to strings. <br>
class TCollection_ExtendedString  {

public:

    void* operator new(size_t,void* anAddress) 
      {
        return anAddress;
      }
    void* operator new(size_t size) 
      { 
        return Standard::Allocate(size); 
      }
    void  operator delete(void *anAddress) 
      { 
        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
      }
 // Methods PUBLIC
 // 

//! Initializes a ExtendedString to an empty ExtendedString. <br>
Standard_EXPORT TCollection_ExtendedString();

//! Creation by converting a CString to an extended string. <br>
Standard_EXPORT TCollection_ExtendedString(const Standard_CString astring);

//! Creation by converting an ExtString to an extended string. <br>
Standard_EXPORT TCollection_ExtendedString(const Standard_ExtString astring);

//! Initializes a AsciiString with a single character. <br>
Standard_EXPORT TCollection_ExtendedString(const Standard_Character aChar);

//! Initializes a ExtendedString with a single character. <br>
Standard_EXPORT TCollection_ExtendedString(const Standard_ExtCharacter aChar);

//! Initializes a ExtendedString with <length> space allocated. <br>
//! and filled with <filler>.This is useful for buffers. <br>
Standard_EXPORT TCollection_ExtendedString(const Standard_Integer length,const Standard_ExtCharacter filler);

//! Initializes an ExtendedString with an integer value <br>
Standard_EXPORT TCollection_ExtendedString(const Standard_Integer value);

//! Initializes an ExtendedString with a real value <br>
Standard_EXPORT TCollection_ExtendedString(const Standard_Real value);

//! Initializes a ExtendedString with another ExtendedString. <br>
Standard_EXPORT TCollection_ExtendedString(const TCollection_ExtendedString& astring);

//! Creation by converting a normal Ascii string to an extended string. <br>
Standard_EXPORT TCollection_ExtendedString(const TCollection_AsciiString& astring);

//!  Appends the other extended string to this extended string. <br>
//! Note that this method is an alias of operator +=. <br>
//! Example: aString += anotherString <br>
Standard_EXPORT   void AssignCat(const TCollection_ExtendedString& other) ;
  void operator +=(const TCollection_ExtendedString& other) 
{
  AssignCat(other);
}


//! Appends <other> to me. <br>
Standard_EXPORT   TCollection_ExtendedString Cat(const TCollection_ExtendedString& other) const;
  TCollection_ExtendedString operator +(const TCollection_ExtendedString& other) const
{
  return Cat(other);
}


//! Substitutes all the characters equal to aChar by NewChar <br>
//! in the ExtendedString <me>. <br>
//! The substitution can be case sensitive. <br>
//! If you don't use default case sensitive, no matter wether aChar <br>
//! is uppercase or not. <br>
Standard_EXPORT   void ChangeAll(const Standard_ExtCharacter aChar,const Standard_ExtCharacter NewChar) ;

//! Removes all characters contained in <me>. <br>
//! This produces an empty ExtendedString. <br>
Standard_EXPORT   void Clear() ;

//! Copy <fromwhere> to <me>. <br>
//! Used as operator = <br>
Standard_EXPORT   void Copy(const TCollection_ExtendedString& fromwhere) ;
  void operator =(const TCollection_ExtendedString& fromwhere) 
{
  Copy(fromwhere);
}


//! Frees memory allocated by ExtendedString. <br>
Standard_EXPORT   void Destroy() ;
~TCollection_ExtendedString()
{
  Destroy();
}


//! Insert a Character at position <where>. <br>
Standard_EXPORT   void Insert(const Standard_Integer where,const Standard_ExtCharacter what) ;

//! Insert a ExtendedString at position <where>. <br>
Standard_EXPORT   void Insert(const Standard_Integer where,const TCollection_ExtendedString& what) ;

//! Returns true if the characters in this extended <br>
//! string are identical to the characters in the other extended string. <br>
//! Note that this method is an alias of operator == <br>
Standard_EXPORT   Standard_Boolean IsEqual(const Standard_ExtString other) const;
  Standard_Boolean operator ==(const Standard_ExtString other) const
{
  return IsEqual(other);
}


//! Returns true if the characters in this extended <br>
//! string are identical to the characters in the other extended string. <br>
//! Note that this method is an alias of operator == <br>
Standard_EXPORT   Standard_Boolean IsEqual(const TCollection_ExtendedString& other) const;
  Standard_Boolean operator ==(const TCollection_ExtendedString& other) const
{
  return IsEqual(other);
}


//! Returns true if there are differences between the <br>
//! characters in this extended string and the other extended string. <br>
//! Note that this method is an alias of operator !=. <br>
Standard_EXPORT   Standard_Boolean IsDifferent(const Standard_ExtString other) const;
  Standard_Boolean operator !=(const Standard_ExtString other) const
{
  return IsDifferent(other);
}


//! Returns true if there are differences between the <br>
//! characters in this extended string and the other extended string. <br>
//! Note that this method is an alias of operator !=. <br>
Standard_EXPORT   Standard_Boolean IsDifferent(const TCollection_ExtendedString& other) const;
  Standard_Boolean operator !=(const TCollection_ExtendedString& other) const
{
  return IsDifferent(other);
}


//! Returns TRUE if <me> is less than <other>. <br>
Standard_EXPORT   Standard_Boolean IsLess(const Standard_ExtString other) const;
  Standard_Boolean operator <(const Standard_ExtString other) const
{
  return IsLess(other);
}


//! Returns TRUE if <me> is less than <other>. <br>
Standard_EXPORT   Standard_Boolean IsLess(const TCollection_ExtendedString& other) const;
  Standard_Boolean operator <(const TCollection_ExtendedString& other) const
{
  return IsLess(other);
}


//! Returns TRUE if <me> is greater than <other>. <br>
Standard_EXPORT   Standard_Boolean IsGreater(const Standard_ExtString other) const;
  Standard_Boolean operator >(const Standard_ExtString other) const
{
  return IsGreater(other);
}


//! Returns TRUE if <me> is greater than <other>. <br>
Standard_EXPORT   Standard_Boolean IsGreater(const TCollection_ExtendedString& other) const;
  Standard_Boolean operator >(const TCollection_ExtendedString& other) const
{
  return IsGreater(other);
}


//! Returns True if the ExtendedString contains only <br>
//! "Ascii Range" characters . <br>
Standard_EXPORT   Standard_Boolean IsAscii() const;

//! Returns number of characters in <me>. <br>
//! This is the same functionality as 'strlen' in C. <br>
Standard_EXPORT   Standard_Integer Length() const;

//! Displays <me> . <br>
Standard_EXPORT   void Print(Standard_OStream& astream) const;
friend Standard_EXPORT Standard_OStream& operator << (Standard_OStream& astream,const TCollection_ExtendedString& astring);

//! Removes every <what> characters from <me>. <br>
Standard_EXPORT   void RemoveAll(const Standard_ExtCharacter what) ;

//! Erases <ahowmany> characters from position <where>,<where> included. <br>
Standard_EXPORT   void Remove(const Standard_Integer where,const Standard_Integer ahowmany = 1) ;

//! Searches a ExtendedString in <me> from the beginning <br>
//! and returns position of first item <what> matching. <br>
//! it returns -1 if not found. <br>
Standard_EXPORT   Standard_Integer Search(const TCollection_ExtendedString& what) const;

//! Searches a ExtendedString in another ExtendedString from the <br>
//! end and returns position of first item <what> matching. <br>
//! it returns -1 if not found. <br>
Standard_EXPORT   Standard_Integer SearchFromEnd(const TCollection_ExtendedString& what) const;

//! Replaces one character in the ExtendedString at position <where>. <br>
//! If <where> is less than zero or greater than the length of <me> <br>
//! an exception is raised. <br>
Standard_EXPORT   void SetValue(const Standard_Integer where,const Standard_ExtCharacter what) ;

//! Replaces a part of <me> by another ExtendedString see above. <br>
Standard_EXPORT   void SetValue(const Standard_Integer where,const TCollection_ExtendedString& what) ;

//! Splits this extended string into two sub-strings at position where. <br>
//! -   The second sub-string (from position <br>
//!   where + 1 of this string to the end) is <br>
//!   returned in a new extended string. <br>
//! -   this extended string is modified: its last <br>
//!   characters are removed, it becomes equal to <br>
//!   the first sub-string (from the first character to position where). <br>
//! Example: <br>
//!   aString contains "abcdefg" <br>
//!   aString.Split(3) gives <me> = "abc" and returns "defg" <br>
Standard_EXPORT   TCollection_ExtendedString Split(const Standard_Integer where) ;

//! Extracts <whichone> token from <me>. <br>
//! By default, the <separators> is set to space and tabulation. <br>
//! By default, the token extracted is the first one (whichone = 1). <br>
//! <separators> contains all separators you need. <br>
//! If no token indexed by <whichone> is found, it returns an empty AsciiString. <br>
//! Example: <br>
//!    aString contains "This is a     message" <br>
//!    aString.Token()  returns "This" <br>
//!    aString.Token(" ",4) returns "message" <br>
//!    aString.Token(" ",2) returns "is" <br>
//!    aString.Token(" ",9) returns "" <br>
//! Other separators than space character and tabulation are allowed : <br>
//!    aString contains "1234; test:message   , value" <br>
//!    aString.Token("; :,",4) returns "value" <br>
//!    aString.Token("; :,",2) returns "test" <br>
Standard_EXPORT   TCollection_ExtendedString Token(const Standard_ExtString separators,const Standard_Integer whichone = 1) const;

//! Returns pointer to ExtString <br>
Standard_EXPORT  const Standard_ExtString ToExtString() const;

//! Truncates <me> to <ahowmany> characters. <br>
//! Example:  me = "Hello Dolly" -> Trunc(3) -> me = "Hel" <br>
//!   Exceptions <br>
//! Standard_OutOfRange if ahowmany is greater <br>
//! than the length of this string. <br>
Standard_EXPORT   void Trunc(const Standard_Integer ahowmany) ;

//! Returns character at position <where> in <me>. <br>
//! If <where> is less than zero or greater than the lenght of <br>
//! <me>, an exception is raised. <br>
//! Example: <br>
//!   aString contains "Hello" <br>
//!   aString.Value(2) returns 'e' <br>
//! Exceptions <br>
//! Standard_OutOfRange if where lies outside <br>
//! the bounds of this extended string. <br>
Standard_EXPORT   Standard_ExtCharacter Value(const Standard_Integer where) const;

//! Returns a hashed value for the extended string <br>
//! astring within the range 1..Upper. <br>
//! Note: if astring is ASCII, the computed value is <br>
//! the same as the value computed with the HashCode function on a <br>
//! TCollection_AsciiString string composed with equivalent ASCII characters <br>
Standard_EXPORT static  Standard_Integer HashCode(const TCollection_ExtendedString& astring,const Standard_Integer Upper) ;

//! Returns true if the characters in this extended <br>
//! string are identical to the characters in the other extended string. <br>
//! Note that this method is an alias of operator ==. <br>
Standard_EXPORT static  Standard_Boolean IsEqual(const TCollection_ExtendedString& string1,const TCollection_ExtendedString& string2) ;





protected:

 // Methods PROTECTED
 // 


 // Fields PROTECTED
 //


private: 

 // Methods PRIVATE
 // 


 // Fields PRIVATE
 //
Standard_ExtString mystring;
Standard_Integer mylength;


};





// other Inline functions and methods (like "C++: function call" methods)
//


#endif