RTP Trace System
1.0
|
00001 // ########################################################################## 00002 // #### #### 00003 // #### RTP Audio Server Project #### 00004 // #### ============================ #### 00005 // #### #### 00006 // #### Strings #### 00007 // #### #### 00008 // #### Version 1.00 -- February 16, 2001 #### 00009 // #### #### 00010 // #### Copyright (C) 1999 Thomas Dreibholz #### 00011 // #### 2000 Universität Bonn, Abt. IV #### 00012 // #### 2001 EMail: dreibh@iem.uni-due.de #### 00013 // #### WWW: https://www.uni-due.de/~be0001 #### 00014 // #### #### 00015 // ########################################################################## 00016 00017 00018 #ifndef STRINGS_H 00019 #define STRINGS_H 00020 00021 00022 #include "system.h" 00023 00024 00032 class String 00033 { 00034 // ====== Constructors/destructor ======================================== 00035 public: 00039 String(); 00040 00046 String(const String& string); 00047 00053 String(const char* string); 00054 00061 String(const char* string, const cardinal length); 00062 00068 String(const cardinal value); 00069 00073 ~String(); 00074 00075 00076 // ====== String functions =============================================== 00082 inline const char* getData() const; 00083 00089 inline cardinal length() const; 00090 00096 inline bool isNull() const; 00097 00104 inline integer index(const char c) const; 00105 00112 inline integer rindex(const char c) const; 00113 00120 inline integer find(const String& string) const; 00121 00127 String toUpper() const; 00128 00134 String toLower() const; 00135 00142 String left(const cardinal maxChars) const; 00143 00151 String mid(const cardinal start, const cardinal maxChars) const; 00152 00159 inline String mid(const cardinal start) const; 00160 00167 String right(const cardinal maxChars) const; 00168 00169 00175 String stripWhiteSpace() const; 00176 00177 00188 bool scanSetting(String& s1, String& s2) const; 00189 00190 00191 // ====== Operators ====================================================== 00195 String& operator=(const String& string); 00196 00200 String& operator=(const char* string); 00201 00205 String& operator=(const cardinal value); 00206 00210 inline int operator==(const String& string) const; 00211 00215 inline int operator!=(const String& string) const; 00216 00220 inline int operator<(const String& string) const; 00221 00225 inline int operator<=(const String& string) const; 00226 00230 inline int operator>(const String& string) const; 00231 00235 inline int operator>=(const String& string) const; 00236 00240 inline char operator[](const int index) const; 00241 00242 00249 inline static cardinal stringLength(const char* string); 00250 00258 inline static integer stringCompare(const char* str1, const char* str2); 00259 00267 inline static char* stringDuplicate(const char* string); 00268 00269 00270 // ====== Private data =================================================== 00271 private: 00272 inline void setData(char* string); 00273 00274 00275 char* Data; 00276 }; 00277 00278 00279 // ====== Operators ========================================================= 00283 ostream& operator<<(ostream& out, const String& string); 00284 00288 String operator+(const String& string1, const String& string2); 00289 00290 00291 #include "strings.icc" 00292 00293 00294 #endif