RTP Trace System  1.0
strings.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines