OpendTect  6.3
odstring.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: Bert
8  Date: Dec 2013
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "basicmod.h"
14 #include "gendefs.h"
15 
16 
17 namespace OD
18 {
19 
20 
30 {
31 public:
32 
33 
34  virtual ~String() {}
35 
36  inline bool operator==(const String&) const;
37  inline bool operator!=(const String&) const;
38  inline bool operator==(const char*) const;
39  inline bool operator!=(const char*) const;
40  template <class T>
41  inline bool operator==(const T&) const;
42  template <class T>
43  inline bool operator!=( const T& t ) const { return !(*this==t); }
44 
45  inline const char* buf() const { return gtBuf(); }
46  inline const char* str() const { return gtStr(); }
47  inline operator const char*() const { return gtBuf(); }
48  unsigned int size() const;
49  inline bool isEmpty() const { return !gtStr(); }
50  inline const char& operator []( int idx ) const { return gtBuf()[idx]; }
51  virtual char firstChar() const { return gtBuf()[0]; }
52  virtual char lastChar() const { return gtBuf()[size()-1]; }
53 
54 # define mODStringDefSens CaseSensitivity c=CaseSensitive
55  bool isEqual(const char*,mODStringDefSens) const;
56  bool isStartOf(const char*,mODStringDefSens) const;
57  bool startsWith(const char*,mODStringDefSens) const;
58  bool isEndOf(const char*,mODStringDefSens) const;
59  bool endsWith(const char*,mODStringDefSens) const;
60  bool matches(const char*,mODStringDefSens) const;
61 
62  bool contains(char) const;
63  bool contains(const char*) const;
64  const char* find(char) const;
65  const char* findLast(char) const;
66  const char* find(const char*) const;
67  const char* findLast(const char*) const;
68 
69  unsigned int count(char) const;
70 
71  bool isNumber(bool int_only=false) const;
72  bool isYesNo() const;
73  int toInt() const;
74  float toFloat() const;
75  double toDouble() const;
76  bool toBool() const;
77 
78  bool operator >(const char*) const;
79  bool operator <(const char*) const;
80  template <class T>
81  inline bool operator >(const T&) const;
82  template <class T>
83  inline bool operator <(const T&) const;
84 
85  static const String& empty();
86 
87 protected:
88 
89  virtual const char* gtBuf() const = 0;
91  virtual const char* gtStr() const = 0;
93 
94 };
95 
96 
97 
98 inline bool String::operator==( const String& s ) const
99 { return isEqual( s.str() ); }
100 inline bool String::operator!=( const String& s ) const
101 { return !isEqual( s.str() ); }
102 
103 inline bool String::operator==( const char* s ) const
104 { return isEqual( s ); }
105 inline bool String::operator!=( const char* s ) const
106 { return !isEqual( s ); }
107 
108 template <class T> inline bool String::operator==( const T& t ) const
109 { return isEqual( toString(t) ); }
110 
111 template <class T> inline bool String::operator >( const T& t ) const
112 { return *this > ( toString( t ) ); }
113 
114 template <class T> inline bool String::operator <( const T& t ) const
115 { return *this < ( toString( t ) ); }
116 
117 
118 } // namespace OD
#define mExpClass(module)
Definition: commondefs.h:157
int toInt(const char *s, int defval=0)
Definition: string2.h:70
bool operator>(const NamedObject &obj1, const NamedObject &obj2)
Definition: namedobj.h:75
float toFloat(const char *s, float defval=0)
Definition: string2.h:64
const char * str() const
Definition: odstring.h:46
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:51
virtual ~String()
Definition: odstring.h:34
#define mODStringDefSens
Definition: odstring.h:54
virtual char lastChar() const
Definition: odstring.h:52
double toDouble(const char *s, double defval=0)
Definition: string2.h:67
bool operator<(const char *) const
bool isEqual(const char *, CaseSensitivity c=CaseSensitive) const
encapsulates the read-access-only part of strings in OD.
Definition: odstring.h:29
bool operator>(const char *) const
bool operator==(const String &) const
Definition: odstring.h:98
bool operator!=(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:60
BufferString toString(const DBKey &ky)
Definition: dbkey.h:115
const T * find(const ObjectSet< T > &os, const S &val)
Get const object in set.
Definition: objectset.h:187
virtual char firstChar() const
Definition: odstring.h:51
const char * buf() const
Definition: odstring.h:45
bool operator!=(const T &t) const
Definition: odstring.h:43
bool isEmpty() const
Definition: odstring.h:49
OpendTect.
Definition: commontypes.h:25
bool operator!=(const String &) const
Definition: odstring.h:100
bool toBool(const char *s, bool defval=true)
Definition: string2.h:61

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017