OpendTect 8.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
BufferString Class Reference

OD::String with its own variable length buffer. The buffer has a guaranteed minimum size. More...

#include <bufstring.h>

Inheritance diagram for BufferString:
[legend]

Public Types

enum  CleanType {
  OnlyAlphaNum , AllowDots , NoSpaces , NoFileSeps ,
  NoSpecialChars
}
 

Public Member Functions

 BufferString ()
 
 BufferString (const BufferString &)
 
 BufferString (const char *)
 
template<class T >
 BufferString (const char *, const T &, const char *s=nullptr)
 
 BufferString (const OD::String &)
 
 BufferString (const QString &)
 
 BufferString (const std::string &)
 
 BufferString (const std::wstring &)
 
template<class T >
 BufferString (const T &)
 
 BufferString (int minlen, bool setnull)
 
virtual ~BufferString ()
 
BufferStringadd (char)
 
BufferStringadd (const char *)
 
template<>
BufferStringadd (const double &d)
 
template<>
BufferStringadd (const float &f)
 
BufferStringadd (const OD::String &)
 
BufferStringadd (const QString &)
 
BufferStringadd (const std::string &)
 
BufferStringadd (const std::wstring &)
 
template<class T >
BufferStringadd (const T &)
 
BufferStringadd (double, int nrdec)
 
BufferStringadd (float, int nrdec)
 
BufferStringaddDec (double, int nrdec)
 
BufferStringaddDec (float, int nrdec)
 
BufferStringaddLim (double, int maxnrchars)
 
BufferStringaddLim (float, int maxnrchars)
 
BufferStringaddNewLine (int nrnewlines=1)
 
BufferStringaddSpace (int nrspaces=1)
 
BufferStringaddTab (int nrtabs=1)
 
unsigned int bufSize () const
 
BufferStringclean (CleanType ct=OnlyAlphaNum)
 
BufferStringembed (char open, char close)
 
char * find (char)
 
const char * find (char) const
 
char * find (const char *)
 
const char * find (const char *) const
 
char * findLast (char)
 
const char * findLast (char) const
 
char * findLast (const char *)
 
const char * findLast (const char *) const
 
char & first ()
 
char * getCStr ()
 
int indexOf (char, int from=0) const
 
int indexOf (const char *, int from=0) const
 
BufferStringinsertAt (int idx, const char *)
 If idx >= size(), pads spaces.
 
char & last ()
 
unsigned int minBufSize () const
 
bool operator!= (const BufferString &) const
 
bool operator!= (const char *) const
 
bool operator!= (const OD::String &) const
 
bool operator!= (const StringView &) const
 
BufferStringoperator+= (const char *s)
 
BufferStringoperator+= (const OD::String &s)
 
template<class T >
BufferStringoperator+= (const T &t)
 
BufferStringoperator= (const BufferString &b)
 
BufferStringoperator= (const char *s)
 
BufferStringoperator= (const OD::String &s)
 
BufferStringoperator= (const std::string &)
 
BufferStringoperator= (const std::wstring &)
 
BufferStringoperator= (const StringView &s)
 
template<class T >
BufferStringoperator= (const T &)
 
bool operator== (const BufferString &) const
 
bool operator== (const char *) const
 
bool operator== (const OD::String &) const
 
bool operator== (const StringView &) const
 
char & operator[] (int idx)
 
BufferStringquote (char q='\'')
 
BufferStringremove (char)
 
BufferStringremove (const char *s)
 
BufferStringreplace (char from, char to)
 
BufferStringreplace (const char *from, const char *to)
 
BufferStringreplaceAt (int idx, const char *, bool cutoff=true)
 If idx >= size(), pads spaces.
 
BufferStringset (const char *)
 
template<>
BufferStringset (const double &dval, od_uint16 width, char specifier, od_uint16 precision, const char *length, const char *flags)
 
template<>
BufferStringset (const float &fval, od_uint16 width, char specifier, od_uint16 precision, const char *length, const char *flags)
 
BufferStringset (const OD::String &)
 
template<class T >
BufferStringset (const T &)
 
template<class T >
BufferStringset (const T &, od_uint16 width, char specifier='g', od_uint16 precision=6, const char *length=nullptr, const char *flags=nullptr)
 
BufferStringset (double, int nrdec)
 
BufferStringset (float, int nrdec)
 
bool setBufSize (unsigned int)
 
BufferStringsetCFmt (double, const char *cformat, int minbufsz)
 
BufferStringsetCFmt (float, const char *cformat, int minbufsz)
 
BufferStringsetDec (double, int nrdec)
 
BufferStringsetDec (float, int nrdec)
 
BufferStringsetEmpty ()
 
BufferStringsetLim (double, int maxnrchars)
 
BufferStringsetLim (float, int maxnrchars)
 
void setMinBufSize (unsigned int)
 
BufferStringsetPtr (const void *, od_uint16 width=0)
 
BufferStringtoLower ()
 
BufferStringtoTitleCase ()
 
BufferStringtoUpper ()
 
BufferStringtrimBlanks ()
 removes front and back whitespaces
 
BufferStringunEmbed (char open, char close)
 
BufferStringunQuote (char q='\'')
 
- Public Member Functions inherited from OD::String
virtual ~String ()
 
const char * buf () const
 
bool contains (char) const
 
bool contains (const char *) const
 
unsigned int count (char) const
 
bool endsWith (const char *, CaseSensitivity c=CaseSensitive) const
 
const char * find (char) const
 
const char * find (const char *) const
 
const char * findLast (char) const
 
const char * findLast (const char *) const
 
virtual char firstChar () const
 
const char * getHash (Crypto::Algorithm) const
 
unsigned int getLevenshteinDist (const char *, bool casesens) const
 
bool isEmpty () const
 
bool isEndOf (const char *, CaseSensitivity c=CaseSensitive) const
 
bool isEqual (const char *, CaseSensitivity c=CaseSensitive) const
 
bool isNumber (bool int_only=false) const
 
bool isStartOf (const char *, CaseSensitivity c=CaseSensitive) const
 
bool isYesNo () const
 
virtual char lastChar () const
 
bool matches (const char *, CaseSensitivity c=CaseSensitive) const
 
 operator const char * () const
 
bool operator!= (const char *) const
 
bool operator!= (const String &) const
 
template<class T >
bool operator!= (const T &t) const
 
bool operator< (const char *) const
 
bool operator< (const String &) const
 
template<class T >
bool operator< (const T &) const
 
bool operator== (const char *) const
 
bool operator== (const String &) const
 
template<class T >
bool operator== (const T &) const
 
bool operator> (const char *) const
 
bool operator> (const String &) const
 
template<class T >
bool operator> (const T &) const
 
const char & operator[] (int idx) const
 
unsigned int size () const
 
bool startsWith (const char *, CaseSensitivity c=CaseSensitive) const
 
const char * str () const
 
bool toBool () const
 
double toDouble () const
 
float toFloat () const
 
int toInt () const
 
std::wstring toStdWString () const
 
od_uint64 toUInt64 () const
 

Static Public Member Functions

static const BufferStringempty ()
 
- Static Public Member Functions inherited from OD::String
static const Stringempty ()
 

Protected Member Functions

BufferStringassignTo (const char *)
 
const char * gtBuf () const override
 
const char * gtStr () const override
 
- Protected Member Functions inherited from OD::String
 String ()
 
 operator bool () const =delete
 

Protected Attributes

char * buf_
 
unsigned int len_
 
const unsigned int minlen_
 

Private Member Functions

BufferStringaddArr32Chars (const char *, int)
 
void destroy ()
 
void init ()
 

Detailed Description

OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.

The minimum buffer size makes life easier in worlds where strcpy etc. rule. Overhead is 4 extra bytes for variable length and 4 bytes for minimum length.

Constructing/asigning/comparing etc. with a (char*) null pointer is no problem.

Don't try to add constructors with a single basic type - this leads to nasty hidden bugs because the compiler will try to convert all kinds of things into BufferStrings. If you just need a string from an int, float, ..., just use str = toString( var ). If you need the BufferString later, use:

BufferString istr( "", intvar );
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition bufstring.h:38

<>

Member Enumeration Documentation

◆ CleanType

Enumerator
OnlyAlphaNum 
AllowDots 
NoSpaces 
NoFileSeps 
NoSpecialChars 

Constructor & Destructor Documentation

◆ BufferString() [1/10]

BufferString::BufferString ( )
inline

◆ BufferString() [2/10]

BufferString::BufferString ( const char * s)
inline

◆ BufferString() [3/10]

BufferString::BufferString ( const OD::String & s)
inline

◆ BufferString() [4/10]

BufferString::BufferString ( int minlen,
bool setnull )

◆ BufferString() [5/10]

BufferString::BufferString ( const BufferString & )

◆ BufferString() [6/10]

template<class T >
BufferString::BufferString ( const T & t)
inlineexplicit

◆ BufferString() [7/10]

template<class T >
BufferString::BufferString ( const char * s1,
const T & t,
const char * s = nullptr )
inline

◆ BufferString() [8/10]

BufferString::BufferString ( const QString & )

◆ BufferString() [9/10]

BufferString::BufferString ( const std::string & )

◆ BufferString() [10/10]

BufferString::BufferString ( const std::wstring & )

◆ ~BufferString()

virtual BufferString::~BufferString ( )
virtual

Member Function Documentation

◆ add() [1/11]

BufferString & BufferString::add ( char )

◆ add() [2/11]

BufferString & BufferString::add ( const char * )

◆ add() [3/11]

template<>
BufferString & BufferString::add ( const double & d)
inline

◆ add() [4/11]

template<>
BufferString & BufferString::add ( const float & f)
inline

◆ add() [5/11]

BufferString & BufferString::add ( const OD::String & )

◆ add() [6/11]

BufferString & BufferString::add ( const QString & )

◆ add() [7/11]

BufferString & BufferString::add ( const std::string & )

◆ add() [8/11]

BufferString & BufferString::add ( const std::wstring & )

◆ add() [9/11]

template<class T >
BufferString & BufferString::add ( const T & t)
inline

◆ add() [10/11]

BufferString & BufferString::add ( double ,
int nrdec )

◆ add() [11/11]

BufferString & BufferString::add ( float ,
int nrdec )

◆ addArr32Chars()

BufferString & BufferString::addArr32Chars ( const char * ,
int  )
private

◆ addDec() [1/2]

BufferString & BufferString::addDec ( double ,
int nrdec )

◆ addDec() [2/2]

BufferString & BufferString::addDec ( float ,
int nrdec )

◆ addLim() [1/2]

BufferString & BufferString::addLim ( double ,
int maxnrchars )

◆ addLim() [2/2]

BufferString & BufferString::addLim ( float ,
int maxnrchars )

◆ addNewLine()

BufferString & BufferString::addNewLine ( int nrnewlines = 1)

◆ addSpace()

BufferString & BufferString::addSpace ( int nrspaces = 1)

◆ addTab()

BufferString & BufferString::addTab ( int nrtabs = 1)

◆ assignTo()

BufferString & BufferString::assignTo ( const char * )
protected

◆ bufSize()

unsigned int BufferString::bufSize ( ) const
inline

◆ clean()

BufferString & BufferString::clean ( CleanType ct = OnlyAlphaNum)

◆ destroy()

void BufferString::destroy ( )
inlineprivate

◆ embed()

BufferString & BufferString::embed ( char open,
char close )

◆ empty()

static const BufferString & BufferString::empty ( )
static

◆ find() [1/4]

char * BufferString::find ( char )

◆ find() [2/4]

const char * BufferString::find ( char c) const
inline

◆ find() [3/4]

char * BufferString::find ( const char * )

◆ find() [4/4]

const char * BufferString::find ( const char * s) const
inline

◆ findLast() [1/4]

char * BufferString::findLast ( char )

◆ findLast() [2/4]

const char * BufferString::findLast ( char c) const
inline

◆ findLast() [3/4]

char * BufferString::findLast ( const char * )

◆ findLast() [4/4]

const char * BufferString::findLast ( const char * s) const
inline

◆ first()

char & BufferString::first ( )
inline

◆ getCStr()

char * BufferString::getCStr ( )
inline

◆ gtBuf()

const char * BufferString::gtBuf ( ) const
overrideprotectedvirtual
Returns
empty even if underlying is null

Implements OD::String.

◆ gtStr()

const char * BufferString::gtStr ( ) const
inlineoverrideprotectedvirtual
Returns
null if empty

Implements OD::String.

◆ indexOf() [1/2]

int BufferString::indexOf ( char ,
int from = 0 ) const

◆ indexOf() [2/2]

int BufferString::indexOf ( const char * ,
int from = 0 ) const

◆ init()

void BufferString::init ( )
private

◆ insertAt()

BufferString & BufferString::insertAt ( int idx,
const char *  )

If idx >= size(), pads spaces.

◆ last()

char & BufferString::last ( )
inline

◆ minBufSize()

unsigned int BufferString::minBufSize ( ) const
inline

◆ operator!=() [1/4]

bool BufferString::operator!= ( const BufferString & s) const
inline

◆ operator!=() [2/4]

bool BufferString::operator!= ( const char * s) const
inline

◆ operator!=() [3/4]

bool BufferString::operator!= ( const OD::String & s) const
inline

◆ operator!=() [4/4]

bool BufferString::operator!= ( const StringView & s) const
inline

◆ operator+=() [1/3]

BufferString & BufferString::operator+= ( const char * s)
inline

◆ operator+=() [2/3]

BufferString & BufferString::operator+= ( const OD::String & s)
inline

◆ operator+=() [3/3]

template<class T >
BufferString & BufferString::operator+= ( const T & t)
inline

◆ operator=() [1/7]

BufferString & BufferString::operator= ( const BufferString & b)
inline

◆ operator=() [2/7]

BufferString & BufferString::operator= ( const char * s)
inline

◆ operator=() [3/7]

BufferString & BufferString::operator= ( const OD::String & s)
inline

◆ operator=() [4/7]

BufferString & BufferString::operator= ( const std::string & )

◆ operator=() [5/7]

BufferString & BufferString::operator= ( const std::wstring & )

◆ operator=() [6/7]

BufferString & BufferString::operator= ( const StringView & s)
inline

◆ operator=() [7/7]

template<class T >
BufferString & BufferString::operator= ( const T & t)
inline

◆ operator==() [1/4]

bool BufferString::operator== ( const BufferString & s) const
inline

◆ operator==() [2/4]

bool BufferString::operator== ( const char * s) const
inline

◆ operator==() [3/4]

bool BufferString::operator== ( const OD::String & s) const
inline

◆ operator==() [4/4]

bool BufferString::operator== ( const StringView & s) const
inline

◆ operator[]()

char & BufferString::operator[] ( int idx)
inline

◆ quote()

BufferString & BufferString::quote ( char q = '\'')
inline

◆ remove() [1/2]

BufferString & BufferString::remove ( char )

◆ remove() [2/2]

BufferString & BufferString::remove ( const char * s)
inline

◆ replace() [1/2]

BufferString & BufferString::replace ( char from,
char to )

◆ replace() [2/2]

BufferString & BufferString::replace ( const char * from,
const char * to )

◆ replaceAt()

BufferString & BufferString::replaceAt ( int idx,
const char * ,
bool cutoff = true )

If idx >= size(), pads spaces.

◆ set() [1/8]

BufferString & BufferString::set ( const char * )

◆ set() [2/8]

template<>
BufferString & BufferString::set ( const double & dval,
od_uint16 width,
char specifier,
od_uint16 precision,
const char * length,
const char * flags )
inline

◆ set() [3/8]

template<>
BufferString & BufferString::set ( const float & fval,
od_uint16 width,
char specifier,
od_uint16 precision,
const char * length,
const char * flags )
inline

◆ set() [4/8]

BufferString & BufferString::set ( const OD::String & )

◆ set() [5/8]

template<class T >
BufferString & BufferString::set ( const T & t)
inline

◆ set() [6/8]

template<class T >
BufferString & BufferString::set ( const T & t,
od_uint16 width,
char specifier = 'g',
od_uint16 precision = 6,
const char * length = nullptr,
const char * flags = nullptr )
inline

number types only. The object should be set with an appropriate buffer size. specifier, precision, length and flags are not used for integer types

◆ set() [7/8]

BufferString & BufferString::set ( double ,
int nrdec )

◆ set() [8/8]

BufferString & BufferString::set ( float ,
int nrdec )

◆ setBufSize()

bool BufferString::setBufSize ( unsigned int )

◆ setCFmt() [1/2]

BufferString & BufferString::setCFmt ( double ,
const char * cformat,
int minbufsz )

◆ setCFmt() [2/2]

BufferString & BufferString::setCFmt ( float ,
const char * cformat,
int minbufsz )

◆ setDec() [1/2]

BufferString & BufferString::setDec ( double ,
int nrdec )

◆ setDec() [2/2]

BufferString & BufferString::setDec ( float ,
int nrdec )

◆ setEmpty()

BufferString & BufferString::setEmpty ( )

◆ setLim() [1/2]

BufferString & BufferString::setLim ( double ,
int maxnrchars )

◆ setLim() [2/2]

BufferString & BufferString::setLim ( float ,
int maxnrchars )

◆ setMinBufSize()

void BufferString::setMinBufSize ( unsigned int )

◆ setPtr()

BufferString & BufferString::setPtr ( const void * ,
od_uint16 width = 0 )

◆ toLower()

BufferString & BufferString::toLower ( )

◆ toTitleCase()

BufferString & BufferString::toTitleCase ( )

◆ toUpper()

BufferString & BufferString::toUpper ( )

◆ trimBlanks()

BufferString & BufferString::trimBlanks ( )

removes front and back whitespaces

◆ unEmbed()

BufferString & BufferString::unEmbed ( char open,
char close )

◆ unQuote()

BufferString & BufferString::unQuote ( char q = '\'')
inline

Member Data Documentation

◆ buf_

char* BufferString::buf_
protected

◆ len_

unsigned int BufferString::len_
protected

◆ minlen_

const unsigned int BufferString::minlen_
protected

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