OpendTect  6.6
stringbuilder.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: May 2019
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "basicmod.h"
14 #include "bufstring.h"
15 
20 {
21 public:
22 
23  typedef int size_type;
24 
27  { *this = oth; }
28  StringBuilder(const char*);
29  virtual ~StringBuilder() { delete [] buf_; }
30 
32  StringBuilder& operator=( const char* s ) { return set( s ); }
33 
34  const char* str() const { return buf_; }
35  const char* result() const { return buf_ ? buf_ : ""; }
36  char* getCStr(int minlen=-1);
37 
38  bool operator==(const StringBuilder&) const;
39  bool operator!=(const StringBuilder&) const;
40 
41  bool isEmpty() const { return !buf_; }
43  StringBuilder& set(const char*);
44  template <class T>
45  StringBuilder& set(const T&);
46 
47  StringBuilder& add(const char*);
49  StringBuilder& add(const QString&);
50  template <class T> inline
51  StringBuilder& add( const T& t ) { return add( toString(t) ); }
52 
53  StringBuilder& addSpace( size_type nr=1 ) { return add(' ',nr); }
54  StringBuilder& addTab( size_type nr=1 ) { return add('\t',nr); }
55  StringBuilder& addNewLine( size_type nr=1 ) { return add('\n',nr); }
56 
57 protected:
58 
59  char* buf_ = nullptr;
60  size_type bufsz_ = 0;
61  size_type curpos_ = 0;
62 
63  bool setBufSz(size_type,bool cp_old);
64 
65 };
StringBuilder::add
StringBuilder & add(const char *)
StringBuilder::operator=
StringBuilder & operator=(const StringBuilder &)
StringBuilder
Builds a string by adding strings. Much faster than string manipulation. Only supports adding.
Definition: stringbuilder.h:20
StringBuilder::StringBuilder
StringBuilder()
Definition: stringbuilder.h:25
StringBuilder::isEmpty
bool isEmpty() const
Definition: stringbuilder.h:41
StringBuilder::result
const char * result() const
Definition: stringbuilder.h:35
StringBuilder::setBufSz
bool setBufSz(size_type, bool cp_old)
StringBuilder::StringBuilder
StringBuilder(const char *)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
StringBuilder::~StringBuilder
virtual ~StringBuilder()
Definition: stringbuilder.h:29
StringBuilder::StringBuilder
StringBuilder(const StringBuilder &oth)
Definition: stringbuilder.h:26
bufstring.h
StringBuilder::size_type
int size_type
Definition: stringbuilder.h:23
StringBuilder::addSpace
StringBuilder & addSpace(size_type nr=1)
Definition: stringbuilder.h:53
StringBuilder::addTab
StringBuilder & addTab(size_type nr=1)
Definition: stringbuilder.h:54
BufferStringSet::add
BufferStringSet & add(const char *)
StringBuilder::operator=
StringBuilder & operator=(const char *s)
Definition: stringbuilder.h:32
StringBuilder::str
const char * str() const
Definition: stringbuilder.h:34
StringBuilder::getCStr
char * getCStr(int minlen=-1)
Conv::set
void set(T &_to, const F &fr)
template based type conversion
Definition: convert.h:27
StringBuilder::setEmpty
StringBuilder & setEmpty()
StringBuilder::add
StringBuilder & add(char, size_type nr=1)
StringBuilder::add
StringBuilder & add(const T &t)
Definition: stringbuilder.h:51
StringBuilder::operator==
bool operator==(const StringBuilder &) const
StringBuilder::set
StringBuilder & set(const T &)
StringBuilder::operator!=
bool operator!=(const StringBuilder &) const
StringBuilder::addNewLine
StringBuilder & addNewLine(size_type nr=1)
Definition: stringbuilder.h:55
StringBuilder::set
StringBuilder & set(const char *)
StringBuilder::add
StringBuilder & add(const QString &)
toString
BufferString toString(const BufferStringSet &bss)
Definition: bufstringset.h:156

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