VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vlString.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2015 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vlutil/vlMachineTypes.h>
13 #include <vector>
14 #include <iosfwd>
15 
16 #ifdef DtUSE_UTILITIES_NAMESPACE
17 namespace DtUSE_UTILITIES_NAMESPACE
18 {
19 #endif
20 
26  {
27  public:
28 
30  DtString();
31 
33  DtString( const char* str );
34 
36  DtString( const char* str, int length );
37 
39  DtString( const std::string& str );
40 
42  DtString( const DtString& orig );
43 
50 
51  DtString( double val );
52  DtString( int val );
53  DtString( long val );
54  DtString( char val );
55  DtString( unsigned int val );
56  DtString( unsigned long val );
57 
59 
61  virtual ~DtString();
62 
65 
66  virtual DtString& operator = ( const char* orig );
67  virtual DtString& operator = ( const DtString& orig );
68 
70 
72  virtual operator const char*() const;
73 
75  virtual DtString* clone() const;
76 
79 
80  friend DT_DLL_VLUTIL bool operator < ( const DtString& str1, const DtString& str2 );
81  friend DT_DLL_VLUTIL bool operator > ( const DtString& str1, const DtString& str2 );
82  friend DT_DLL_VLUTIL bool operator == ( const DtString& str1, const DtString& str2 );
83  friend DT_DLL_VLUTIL bool operator != ( const DtString& str1, const DtString& str2 );
84  friend DT_DLL_VLUTIL bool operator <= ( const DtString& str1, const DtString& str2 );
85  friend DT_DLL_VLUTIL bool operator >= ( const DtString& str1, const DtString& str2 );
86 
87  virtual bool operator < ( const char* str ) const;
88  virtual bool operator > ( const char* str ) const;
89  virtual bool operator == ( const char* str ) const;
90  virtual bool operator != ( const char* str ) const;
91  virtual bool operator <= ( const char* str ) const;
92  virtual bool operator >= ( const char* str ) const;
93 
95 
99 
100  virtual bool caseCompare( const char* str ) const;
101  virtual bool caseCompare( const DtString& str ) const;
102 
104 
107 
108  friend DT_DLL_VLUTIL DtString operator + ( const char* str1, const DtString& str2 );
109  friend DT_DLL_VLUTIL DtString operator + ( const DtString& str1, const DtString& str2 );
110 
111  virtual DtString operator + ( const char* str ) const;
112  virtual DtString& operator += ( const char* str );
113  virtual DtString& operator += ( const DtString& str );
114 
116 
119 
120  virtual char& operator [] ( int index );
121  virtual const char& operator [] ( int index ) const;
122 
124 
131 
132  virtual bool snipFront( const char ch, bool toLastCh = false );
133  virtual bool snipBack( const char ch, bool fromFirstCh = false );
135 
137 
138  virtual bool chompFront();
139  virtual bool chompBack();
141 
144  virtual void tokenize( const char delimiter, std::vector<DtString>& tokens ) const;
145 
149  virtual int toInt( bool* ok = 0 ) const;
150 
154  virtual unsigned int toUInt( bool* ok = 0 ) const;
155 
159  virtual float toFloat( bool* ok = 0 ) const;
160 
164  virtual double toDouble( bool* ok = 0 ) const;
165 
169  virtual bool toBoolean( bool* ok = 0 ) const;
170 
172  virtual void toUpper();
173 
175  virtual void toLower();
176 
180  virtual int findChar( const char ch );
181 
185  virtual int findLastChar( const char ch );
186 
190  virtual int findString( const DtString& string ) const;
191 
195  virtual int findLastString( const DtString& string );
196 
197  bool snipFrontToLast( const char ch )
198  {
199  return snipFront( ch, true );
200  }
201 
202  bool snipBackToFirst( const char ch )
203  {
204  return snipBack( ch, true );
205  }
206 
208  virtual int count( const char ch ) const;
209 
212  virtual int length() const;
213 
215  virtual int size() const;
216 
218  virtual std::string stdString() const;
219 
222  virtual const char* string() const;
223 
225  virtual const char* c_str() const;
226 
228  virtual bool isEmpty() const;
229 
232  virtual DtString section(const char sep, int start, int end = -1) const;
233 
234  public:
235 
237  static const DtString& nullString();
238 
241  static const DtString& nullId();
242 
243  protected:
244 
245  friend DT_DLL_VLUTIL std::ostream& operator << ( std::ostream& os, const DtString& str );
246  friend DT_DLL_VLUTIL std::istream& operator >> ( std::istream& is, DtString& str );
247 
252  void clear();
253 
256  void setString( const char* str );
257 
258  protected:
259 
260  enum
261  {
262  theDefaultBufferSize = 64
263  };
264 
265  char myDefaultBuffer[theDefaultBufferSize];
266  char* myString;
267 
269  unsigned int myBufSize;
270 
271  static const int theMaxInsertionStringSize;
272 
273  };
274 
275 
276  inline bool DtString::isEmpty() const
277  {
278  return (myString[0] == '\0');
279  }
280 
281 #ifdef DtUSE_UTILITIES_NAMESPACE
282 }
283 #endif

Document ID: Generated on Mon Feb 6 18:36:34 EST 2017 from SVN revision 173107
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)