All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
QoreString.h
/* -*- mode: c++; indent-tabs-mode: nil -*- */
/*
QoreString.h
QoreString Class Definition
Qore Programming Language
Copyright 2003 - 2013 David Nichols
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef _QORE_QORESTRING_H
#define _QORE_QORESTRING_H
#include <stdarg.h>
#include <string>
class DateTime;
class BinaryNode;
class QoreString {
protected:
struct qore_string_private* priv;
DLLLOCAL void splice_simple(qore_size_t offset, qore_size_t length, QoreString* extract = 0);
DLLLOCAL void splice_simple(qore_size_t offset, qore_size_t length, const char* str, qore_size_t str_len, QoreString* extract = 0);
DLLLOCAL void splice_complex(qore_offset_t offset, ExceptionSink* xsink, QoreString* extract = 0);
DLLLOCAL void splice_complex(qore_offset_t offset, qore_offset_t length, ExceptionSink* xsink, QoreString* extract = 0);
DLLLOCAL void splice_complex(qore_offset_t offset, qore_offset_t length, const QoreString* str, ExceptionSink* xsink, QoreString* extract = 0);
DLLLOCAL int substr_simple(QoreString* str, qore_offset_t offset) const;
DLLLOCAL int substr_simple(QoreString* str, qore_offset_t offset, qore_offset_t length) const;
DLLLOCAL int substr_complex(QoreString* str, qore_offset_t offset, ExceptionSink* xsink) const;
DLLLOCAL int substr_complex(QoreString* str, qore_offset_t offset, qore_offset_t length, ExceptionSink* xsink) const;
// writes a new QoreString with the characters reversed of the "this" QoreString
// assumes the encoding is the same and the length is 0
DLLLOCAL void concat_reverse(QoreString* targ) const;
DLLLOCAL int snprintf(size_t size, const char* fmt, ...);
DLLLOCAL int vsnprintf(size_t size, const char* fmt, va_list args);
DLLLOCAL static int convert_encoding_intern(const char* src, qore_size_t src_len, const QoreEncoding* from, QoreString& targ, const QoreEncoding* to, ExceptionSink* xsink);
public:
DLLEXPORT QoreString();
DLLEXPORT QoreString(bool b);
DLLEXPORT QoreString(const char* str);
DLLEXPORT QoreString(const char* str, const QoreEncoding* new_qorecharset);
DLLEXPORT QoreString(const QoreEncoding* new_qorecharset);
DLLEXPORT QoreString(const char* str, qore_size_t len, const QoreEncoding* new_qorecharset = QCS_DEFAULT);
DLLEXPORT QoreString(const std::string& str, const QoreEncoding* new_encoding = QCS_DEFAULT);
DLLEXPORT QoreString(char c);
DLLEXPORT QoreString(const QoreString& str);
DLLEXPORT QoreString(const QoreString* str);
DLLEXPORT QoreString(const QoreString* str, qore_size_t len);
DLLEXPORT QoreString(int64 i);
DLLEXPORT QoreString(double f);
DLLEXPORT QoreString(const DateTime* date);
DLLEXPORT QoreString(const BinaryNode* bin);
DLLEXPORT QoreString(const BinaryNode* bin, qore_size_t maxlinelen);
DLLEXPORT QoreString(char* nbuf, qore_size_t nlen, qore_size_t nallocated, const QoreEncoding* enc);
DLLEXPORT ~QoreString();
DLLEXPORT qore_size_t length() const;
DLLEXPORT void set(const char* str, const QoreEncoding* new_qorecharset = QCS_DEFAULT);
DLLEXPORT void set(const std::string& str, const QoreEncoding* new_qorecharset = QCS_DEFAULT);
DLLEXPORT void set(const QoreString* str);
DLLEXPORT void set(const QoreString& str);
DLLEXPORT void setEncoding(const QoreEncoding* new_encoding);
DLLEXPORT void concatAndHTMLEncode(const char* str);
DLLEXPORT void concatAndHTMLDecode(const QoreString* str);
DLLEXPORT void concatAndHTMLDecode(const char* str, size_t slen);
DLLEXPORT void concatAndHTMLDecode(const char* str);
DLLEXPORT void concatDecodeUrl(const char* url);
DLLEXPORT int concatDecodeUrl(const QoreString& url, ExceptionSink* xsink);
DLLEXPORT int concatEncodeUrl(ExceptionSink* xsink, const QoreString& url, bool encode_all = false);
DLLEXPORT void concatEscape(const QoreString* str, char c, char esc_char, ExceptionSink* xsink);
DLLEXPORT void concatEscape(const char* str, char c, char esc_char = '\\');
DLLEXPORT void concatAndHTMLEncode(const QoreString* , ExceptionSink* xsink);
DLLEXPORT void concat(const QoreString* str, ExceptionSink* xsink);
DLLEXPORT int concat(const QoreString& str, qore_offset_t pos, ExceptionSink* xsink);
DLLEXPORT int concat(const QoreString& str, qore_offset_t pos, qore_offset_t len, ExceptionSink* xsink);
DLLEXPORT void concat(const QoreString* str, qore_size_t size, ExceptionSink* xsink);
DLLEXPORT void concatBase64(const char* buf, qore_size_t size);
DLLEXPORT void concatBase64(const BinaryNode* bin);
DLLEXPORT void concatBase64(const QoreString* str);
DLLEXPORT void concatBase64(const char* buf, qore_size_t size, qore_size_t maxlinelen);
DLLEXPORT void concatBase64(const BinaryNode* bin, qore_size_t maxlinelen);
DLLEXPORT void concatBase64(const QoreString* str, qore_size_t maxlinelen);
DLLEXPORT BinaryNode* parseBase64(ExceptionSink* xsink) const;
DLLEXPORT QoreString* parseBase64ToString(ExceptionSink* xsink) const;
DLLEXPORT QoreString* parseBase64ToString(const QoreEncoding* enc, ExceptionSink* xsink) const;
DLLEXPORT void concatHex(const char* buf, qore_size_t size);
DLLEXPORT void concatHex(const BinaryNode* bin);
DLLEXPORT void concatHex(const QoreString* str);
DLLEXPORT BinaryNode* parseHex(ExceptionSink* xsink) const;
DLLEXPORT void concat(const DateTime* d);
DLLEXPORT void concatISO8601DateTime(const DateTime* d);
DLLEXPORT void concat(const char* str);
DLLEXPORT void concat(const std::string& str);
DLLEXPORT void concat(const char* str, qore_size_t size);
DLLEXPORT void concat(const char c);
DLLEXPORT int compareSoft(const QoreString* str, ExceptionSink* xsink) const;
DLLEXPORT int compare(const QoreString* str) const;
DLLEXPORT int compare(const char* str) const;
DLLEXPORT bool equal(const QoreString& str) const;
DLLEXPORT bool equal(const char* str) const;
DLLEXPORT bool equalSoft(const QoreString& str, ExceptionSink* xsink) const;
DLLEXPORT bool equalPartial(const QoreString& str) const;
DLLEXPORT bool equalPartial(const char* str) const;
DLLEXPORT bool equalPartialSoft(const QoreString& str, ExceptionSink* xsink) const;
DLLEXPORT bool equalPartialPath(const QoreString& str, ExceptionSink* xsink) const;
DLLEXPORT void terminate(qore_size_t size);
DLLEXPORT void reserve(qore_size_t size);
DLLEXPORT int sprintf(const char* fmt, ...);
DLLEXPORT int vsprintf(const char* fmt, va_list args);
DLLEXPORT void take(char* str);
DLLEXPORT void take(char* str, const QoreEncoding* enc);
DLLEXPORT void take(char* str, qore_size_t size);
DLLEXPORT void take(char* str, qore_size_t size, const QoreEncoding* enc);
DLLEXPORT void takeAndTerminate(char* str, qore_size_t size);
DLLEXPORT void takeAndTerminate(char* str, qore_size_t size, const QoreEncoding* enc);
DLLEXPORT QoreString* convertEncoding(const QoreEncoding* nccs, ExceptionSink* xsink) const;
DLLEXPORT char* giveBuffer();
DLLEXPORT void clear();
DLLEXPORT void reset();
DLLEXPORT void replaceAll(const char* old_str, const char* new_str);
DLLEXPORT void replace(qore_size_t offset, qore_size_t len, const char* str);
DLLEXPORT void replace(qore_size_t offset, qore_size_t len, const QoreString* str);
DLLEXPORT void replace(qore_size_t offset, qore_size_t len, const QoreString* str, ExceptionSink* xsink);
DLLEXPORT void replaceChar(qore_size_t offset, char c);
DLLEXPORT void splice(qore_offset_t offset, ExceptionSink* xsink);
DLLEXPORT void splice(qore_offset_t offset, qore_offset_t length, ExceptionSink* xsink);
DLLEXPORT void splice(qore_offset_t offset, qore_offset_t length, const AbstractQoreNode* strn, ExceptionSink* xsink);
DLLEXPORT void splice(qore_offset_t offset, qore_offset_t length, const QoreString& str, ExceptionSink* xsink);
DLLEXPORT QoreString* extract(qore_offset_t offset, ExceptionSink* xsink);
DLLEXPORT QoreString* extract(qore_offset_t offset, qore_offset_t length, ExceptionSink* xsink);
DLLEXPORT QoreString* extract(qore_offset_t offset, qore_offset_t length, const AbstractQoreNode* strn, ExceptionSink* xsink);
DLLEXPORT QoreString* substr(qore_offset_t offset, ExceptionSink* xsink) const;
DLLEXPORT QoreString* substr(qore_offset_t offset, qore_offset_t length, ExceptionSink* xsink) const;
DLLEXPORT qore_size_t chomp();
DLLEXPORT const QoreEncoding* getEncoding() const;
DLLEXPORT QoreString* copy() const;
DLLEXPORT void tolwr();
DLLEXPORT void toupr();
DLLEXPORT qore_size_t strlen() const;
DLLEXPORT qore_size_t size() const;
DLLEXPORT qore_size_t capacity() const;
DLLEXPORT const char* getBuffer() const;
DLLEXPORT void allocate(unsigned requested_size);
DLLEXPORT int insertch(char c, qore_size_t pos, unsigned times);
DLLEXPORT int insert(const char* str, qore_size_t pos);
DLLEXPORT void addch(char c, unsigned times);
DLLEXPORT void concatUTF8FromUnicode(unsigned code);
DLLEXPORT int concatUnicode(unsigned code, ExceptionSink* xsink);
DLLEXPORT int concatUnicode(unsigned code);
DLLEXPORT QoreString* reverse() const;
DLLEXPORT void trim_trailing(const char* chars = 0);
DLLEXPORT void trim_leading(const char* chars = 0);
DLLEXPORT void trim(const char* chars = 0);
DLLEXPORT void trim_trailing(char c);
DLLEXPORT void trim_single_trailing(char c);
DLLEXPORT void trim_leading(char c);
DLLEXPORT void trim_single_leading(char c);
DLLEXPORT void trim(char c);
DLLEXPORT unsigned int getUnicodePointFromUTF8(qore_offset_t offset = 0) const;
DLLEXPORT unsigned int getUnicodePoint(qore_offset_t offset, ExceptionSink* xsink) const;
DLLEXPORT unsigned int getUnicodePointFromBytePos(qore_size_t offset, unsigned& len, ExceptionSink* xsink) const;
DLLEXPORT void prepend(const char* str);
DLLEXPORT void prepend(const char* str, qore_size_t size);
DLLEXPORT QoreString& operator=(const QoreString& other);
DLLEXPORT QoreString& operator=(const char* other);
DLLEXPORT QoreString& operator=(const std::string& other);
DLLEXPORT bool operator==(const QoreString& other) const;
DLLEXPORT bool operator==(const std::string& other) const;
DLLEXPORT bool operator==(const char* other) const;
DLLEXPORT char operator[](qore_offset_t pos) const;
DLLEXPORT QoreString& operator+=(const char* str);
DLLEXPORT QoreString& operator+=(const std::string& str);
DLLEXPORT bool empty() const;
DLLEXPORT qore_offset_t index(const QoreString& needle, qore_offset_t pos, ExceptionSink* xsink) const;
DLLEXPORT qore_offset_t bindex(const QoreString& needle, qore_offset_t pos) const;
DLLEXPORT qore_offset_t bindex(const char* needle, qore_offset_t pos) const;
DLLEXPORT qore_offset_t bindex(const std::string& needle, qore_offset_t pos) const;
DLLEXPORT qore_offset_t rindex(const QoreString& needle, qore_offset_t pos, ExceptionSink* xsink) const;
DLLEXPORT qore_offset_t brindex(const QoreString& needle, qore_offset_t pos) const;
DLLEXPORT qore_offset_t brindex(const char* needle, qore_offset_t pos) const;
DLLEXPORT qore_offset_t brindex(const std::string& needle, qore_offset_t pos) const;
DLLEXPORT qore_offset_t find(char c, qore_offset_t pos = 0) const;
DLLEXPORT qore_offset_t rfind(char c, qore_offset_t pos = -1) const;
DLLEXPORT bool isDataPrintableAscii() const;
DLLEXPORT bool isDataAscii() const;
DLLEXPORT int64 toBigInt() const;
DLLEXPORT qore_offset_t getByteOffset(qore_size_t i, ExceptionSink* xsink) const;
// concatenates a qorestring without converting encodings - internal only
DLLLOCAL void concat(const QoreString* str);
// private constructor
DLLLOCAL QoreString(struct qore_string_private* p);
};
DLLEXPORT QoreString* checkEncoding(const QoreString* str, const QoreEncoding* enc, ExceptionSink* xsink);
class QoreStringMaker : public QoreString {
private:
DLLLOCAL QoreStringMaker(const QoreStringMaker& str);
DLLLOCAL QoreStringMaker& operator=(const QoreStringMaker&);
public:
DLLEXPORT QoreStringMaker(const char* fmt, ...);
DLLEXPORT QoreStringMaker(const QoreEncoding* enc, const char* fmt, ...);
};
class TempString {
private:
QoreString* str;
TempString(const TempString& );
TempString& operator=(const TempString& );
void* operator new(size_t);
public:
DLLLOCAL TempString() : str(new QoreString) {
}
DLLLOCAL TempString(const QoreEncoding* enc) : str(new QoreString(enc)) {
}
DLLLOCAL TempString(QoreString* s) {
str = s;
}
DLLLOCAL ~TempString() {
delete str;
}
DLLLOCAL QoreString* operator->(){ return str; };
DLLLOCAL QoreString* operator*() { return str; };
DLLLOCAL operator bool() const { return str != 0; }
DLLLOCAL QoreString* release() { QoreString* rv = str; str = 0; return rv; }
};
class TempEncodingHelper {
private:
QoreString* str;
bool temp;
DLLLOCAL TempEncodingHelper(const TempEncodingHelper& );
DLLLOCAL TempEncodingHelper& operator=(const TempEncodingHelper& );
DLLLOCAL void* operator new(size_t);
DLLLOCAL void discard_intern() {
if (temp && str)
delete str;
}
DLLLOCAL void set_intern(const QoreString* s, const QoreEncoding* qe, ExceptionSink* xsink) {
if (s->getEncoding() != qe) {
str = s->convertEncoding(qe, xsink);
temp = true;
}
else {
str = const_cast< QoreString* >(s);
temp = false;
}
}
public:
DLLLOCAL TempEncodingHelper(const QoreString& s, const QoreEncoding* qe, ExceptionSink* xsink) {
set_intern(&s, qe, xsink);
}
DLLLOCAL TempEncodingHelper(const QoreString* s, const QoreEncoding* qe, ExceptionSink* xsink) {
set_intern(s, qe, xsink);
}
DLLLOCAL TempEncodingHelper() : str(0), temp(false) {
}
DLLLOCAL ~TempEncodingHelper() {
discard_intern();
}
DLLLOCAL int set(const QoreString* s, const QoreEncoding* qe, ExceptionSink* xsink) {
discard_intern();
set_intern(s, qe, xsink);
return str != 0;
}
DLLLOCAL bool is_temp() const {
return temp;
}
DLLLOCAL void makeTemp() {
if (!temp && str) {
str = new QoreString(*str);
temp = true;
}
}
DLLLOCAL const QoreString* operator->(){ return str; };
DLLLOCAL const QoreString* operator*() { return str; };
DLLLOCAL operator bool() const { return str != 0; }
DLLLOCAL char* giveBuffer() {
if (!str)
return 0;
if (temp)
return str->giveBuffer();
return strdup(str->getBuffer());
}
};
#endif
QoreString::operator[]
DLLEXPORT char operator[](qore_offset_t pos) const
returns the byte (not character) at the given location; if the location is invalid, returns 0
QoreString::trim_trailing
DLLEXPORT void trim_trailing(const char *chars=0)
remove trailing whitespace or other characters
QoreString::isDataPrintableAscii
DLLEXPORT bool isDataPrintableAscii() const
returns true if the string is empty or only contains printable non-control ASCII characters (ie all c...
QoreString::equalSoft
DLLEXPORT bool equalSoft(const QoreString &str, ExceptionSink *xsink) const
returns true if the strings are equal, false if not, if the character encodings are different...
QoreString::QoreString
DLLEXPORT QoreString()
creates an empty string and assigns the default encoding QCS_DEFAULT
QoreString::parseHex
DLLEXPORT BinaryNode * parseHex(ExceptionSink *xsink) const
parses the current string data as hexadecimal-encoded data and returns it as a BinaryNode pointer (ca...
QoreString::equalPartialSoft
DLLEXPORT bool equalPartialSoft(const QoreString &str, ExceptionSink *xsink) const
returns true if the beginning of the current string matches the argument string, false if not...
QoreString::setEncoding
DLLEXPORT void setEncoding(const QoreEncoding *new_encoding)
changes the tagged encoding to the given encoding; does not affect the actual string buffer...
QoreString::priv
struct qore_string_private * priv
the private implementation of QoreString
Definition: QoreString.h:45
QoreEncoding
defines string encoding functions in Qore
Definition: QoreEncoding.h:72
QoreString::find
DLLEXPORT qore_offset_t find(char c, qore_offset_t pos=0) const
returns the byte position of a character (byte) within the string or -1 if not found ...
QoreString::toBigInt
DLLEXPORT int64 toBigInt() const
returns the value of the string as an int64
QoreString::concatDecodeUrl
DLLEXPORT void concatDecodeUrl(const char *url)
concatenates a URL-decoded version of the c-string passed
QoreString::replaceAll
DLLEXPORT void replaceAll(const char *old_str, const char *new_str)
replaces all occurences of the first string with the second string
QCS_DEFAULT
DLLEXPORT const QoreEncoding * QCS_DEFAULT
the default encoding for the Qore library
QoreString::getByteOffset
DLLEXPORT qore_offset_t getByteOffset(qore_size_t i, ExceptionSink *xsink) const
returns the byte position of the given character position in the string or -1 if the string does not ...
QoreString::concatEscape
DLLEXPORT void concatEscape(const QoreString *str, char c, char esc_char, ExceptionSink *xsink)
concatenates a string and escapes character c with esc_char (converts encodings if necessary) ...
QoreString::set
DLLEXPORT void set(const char *str, const QoreEncoding *new_qorecharset=QCS_DEFAULT)
copies the c-string passed and sets the value of the string and its encoding
QoreString::trim_single_trailing
DLLEXPORT void trim_single_trailing(char c)
remove a single trailing character if present
QoreString::equalPartialPath
DLLEXPORT bool equalPartialPath(const QoreString &str, ExceptionSink *xsink) const
returns true if the begining of the current string matches the argument string where either both stri...
QoreString::equalPartial
DLLEXPORT bool equalPartial(const QoreString &str) const
returns true if the beginning of the current string matches the argument string, false if not...
QoreString::getUnicodePointFromUTF8
DLLEXPORT unsigned int getUnicodePointFromUTF8(qore_offset_t offset=0) const
return Unicode code point for character offset, string must be UTF-8
QoreString::rfind
DLLEXPORT qore_offset_t rfind(char c, qore_offset_t pos=-1) const
returns the last byte position of a character (byte) within the string or -1 if not found ...
QoreString::reserve
DLLEXPORT void reserve(qore_size_t size)
ensures that at least the given size is available in the string; the string&#39;s contents are not affect...
QoreString::equal
DLLEXPORT bool equal(const QoreString &str) const
returns true if the strings are equal, false if not, if the character encodings are different...
QoreString::concatHex
DLLEXPORT void concatHex(const char *buf, qore_size_t size)
concatenates hexidecimal digits corresponding to the binary data passed up to byte &quot;len&quot; ...
QoreString::parseBase64ToString
DLLEXPORT QoreString * parseBase64ToString(ExceptionSink *xsink) const
parses the current string data as base64-encoded data and returns it as a QoreString pointer owned by...
TempEncodingHelper::is_temp
DLLLOCAL bool is_temp() const
returns true if a temporary string is being managed
Definition: QoreString.h:930
DateTime
Holds absolute and relative date/time values in Qore with precision to the microsecond.
Definition: DateTime.h:85
QoreString::giveBuffer
DLLEXPORT char * giveBuffer()
returns the character buffer and leaves the QoreString empty, the caller owns the memory returned (mu...
QoreString::sprintf
DLLEXPORT int sprintf(const char *fmt,...)
this will concatentate a formatted string to the existing string according to the format string and t...
AbstractQoreNode
The base class for all value and parse types in Qore expression trees.
Definition: AbstractQoreNode.h:47
QoreString::concatISO8601DateTime
DLLEXPORT void concatISO8601DateTime(const DateTime *d)
concatenates a DateTime value to a string in the format YYYYMMDDTHH:mm:SS &lt;- where the &quot;T&quot; is a liter...
QoreString::capacity
DLLEXPORT qore_size_t capacity() const
returns number of bytes allocated for the string&#39;s buffer, capacity is always &gt;= size ...
qore_size_t
size_t qore_size_t
used for sizes (same range as a pointer)
Definition: common.h:62
qore_offset_t
long qore_offset_t
used for offsets that could be negative
Definition: common.h:65
QoreString::parseBase64
DLLEXPORT BinaryNode * parseBase64(ExceptionSink *xsink) const
parses the current string data as base64-encoded data and returns it as a BinaryNode pointer (caller ...
QoreString::tolwr
DLLEXPORT void tolwr()
converts the string to lower-case in place
QoreString::prepend
DLLEXPORT void prepend(const char *str)
prepends the string given to the string, assumes character encoding is the same as the string&#39;s ...
QoreString::splice
DLLEXPORT void splice(qore_offset_t offset, ExceptionSink *xsink)
removes characters from the string starting at position &quot;offset&quot;
QoreString::concatUTF8FromUnicode
DLLEXPORT void concatUTF8FromUnicode(unsigned code)
append a UTF-8 character sequence from a unicode code point, assumes the string is tagged with QCS_UT...
QoreString::getUnicodePoint
DLLEXPORT unsigned int getUnicodePoint(qore_offset_t offset, ExceptionSink *xsink) const
return Unicode code point for the single character at the given character (not byte) offset in the st...
QoreString
Qore&#39;s string type supported by the QoreEncoding class.
Definition: QoreString.h:42
QoreString::replace
DLLEXPORT void replace(qore_size_t offset, qore_size_t len, const char *str)
replaces bytes with the string passed
TempString
class used to hold a possibly temporary QoreString pointer, stack only, cannot be dynamically allocat...
Definition: QoreString.h:787
QoreString::insertch
DLLEXPORT int insertch(char c, qore_size_t pos, unsigned times)
insert a character at a certain position in the string a number of times
QoreString::concat
DLLEXPORT void concat(const QoreString *str, ExceptionSink *xsink)
concatenates a string and converts encodings if necessary
QoreString::compare
DLLEXPORT int compare(const QoreString *str) const
compares two strings without converting encodings (if the encodings do not match then &quot;this&quot; is deeme...
QoreString::rindex
DLLEXPORT qore_offset_t rindex(const QoreString &needle, qore_offset_t pos, ExceptionSink *xsink) const
returns the character position of a substring searching in reverse from a given position or -1 if not...
QoreString::index
DLLEXPORT qore_offset_t index(const QoreString &needle, qore_offset_t pos, ExceptionSink *xsink) const
returns the character position of a substring within the string or -1 if not found ...
QoreString::convertEncoding
DLLEXPORT QoreString * convertEncoding(const QoreEncoding *nccs, ExceptionSink *xsink) const
converts the encoding of the string to the specified encoding, returns 0 if an error occurs...
QoreString::toupr
DLLEXPORT void toupr()
converts the string to upper-case in place
QoreString::length
DLLEXPORT qore_size_t length() const
returns the number of characters (not bytes) in the string
TempString::release
DLLLOCAL QoreString * release()
releases the QoreString pointer being managed and sets the internal pointer to 0
Definition: QoreString.h:829
QoreString::isDataAscii
DLLEXPORT bool isDataAscii() const
returns true if the string is empty or has no characters with the high bit set (ie all characters &lt; 1...
QoreString::concatBase64
DLLEXPORT void concatBase64(const char *buf, qore_size_t size)
concatenates the base64-encoded version of the binary data passed
QoreString::reverse
DLLEXPORT QoreString * reverse() const
return a Qorestring with the characters reversed
TempEncodingHelper
use this class to manage strings where the character encoding must be specified and may be different ...
Definition: QoreString.h:845
QoreString::getEncoding
DLLEXPORT const QoreEncoding * getEncoding() const
returns the encoding for the string
QoreString::getUnicodePointFromBytePos
DLLEXPORT unsigned int getUnicodePointFromBytePos(qore_size_t offset, unsigned &len, ExceptionSink *xsink) const
return Unicode code point for the given byte offset
QoreString::insert
DLLEXPORT int insert(const char *str, qore_size_t pos)
inserts a character string at a certain position in the string
QoreString::concatAndHTMLEncode
DLLEXPORT void concatAndHTMLEncode(const char *str)
concatenates HTML-encoded version of the c-string passed
QoreString::copy
DLLEXPORT QoreString * copy() const
returns an exact copy of the string
ExceptionSink
container for holding Qore-language exception information and also for registering a &quot;thread_exit&quot; ca...
Definition: ExceptionSink.h:35
QoreString::empty
DLLEXPORT bool empty() const
returns true if the string is empty, false if not
TempEncodingHelper::operator*
DLLLOCAL const QoreString * operator*()
returns the string being managed
Definition: QoreString.h:946
TempString::~TempString
DLLLOCAL ~TempString()
deletes the QoreString pointer being managed
Definition: QoreString.h:815
TempEncodingHelper::TempEncodingHelper
DLLLOCAL TempEncodingHelper(const QoreString &s, const QoreEncoding *qe, ExceptionSink *xsink)
converts the given string to the required encoding if necessary
Definition: QoreString.h:889
QoreString::operator==
DLLEXPORT bool operator==(const QoreString &other) const
returns true if the other string is equal to this string (encodings also must be equal) ...
QoreString::bindex
DLLEXPORT qore_offset_t bindex(const QoreString &needle, qore_offset_t pos) const
returns the byte position of a substring within the string or -1 if not found
QoreString::concatEncodeUrl
DLLEXPORT int concatEncodeUrl(ExceptionSink *xsink, const QoreString &url, bool encode_all=false)
concatenates a URL-encoded version of the c-string passed
QoreString::trim_leading
DLLEXPORT void trim_leading(const char *chars=0)
remove leading whitespace or other characters
QoreString::replaceChar
DLLEXPORT void replaceChar(qore_size_t offset, char c)
replaces a byte with the byte passed
QoreString::addch
DLLEXPORT void addch(char c, unsigned times)
append a character to the string a number of times
TempString::TempString
DLLLOCAL TempString(QoreString *s)
populates the object with the QoreString pointer to be managed
Definition: QoreString.h:810
TempEncodingHelper::makeTemp
DLLLOCAL void makeTemp()
ensures that the object is holding a temporary value
Definition: QoreString.h:935
QoreString::terminate
DLLEXPORT void terminate(qore_size_t size)
terminates the string at byte position &quot;size&quot;, the string is reallocated if necessary ...
TempEncodingHelper::TempEncodingHelper
DLLLOCAL TempEncodingHelper()
creates an empty TempEncodingHelperObject that may be initialized with TempEncodingHelper::set() late...
Definition: QoreString.h:904
TempEncodingHelper::~TempEncodingHelper
DLLLOCAL ~TempEncodingHelper()
deletes any temporary string being managed by the object
Definition: QoreString.h:908
QoreString::trim
DLLEXPORT void trim(const char *chars=0)
remove leading and trailing whitespace or other characters
TempString::operator->
DLLLOCAL QoreString * operator->()
returns the QoreString pointer being managed
Definition: QoreString.h:820
QoreString::strlen
DLLEXPORT qore_size_t strlen() const
returns number of bytes in the string (not including the null pointer)
QoreString::concatUnicode
DLLEXPORT int concatUnicode(unsigned code, ExceptionSink *xsink)
append a character sequence from a unicode code point (returns 0 for OK, -1 for exception) ...
QoreString::operator+=
DLLEXPORT QoreString & operator+=(const char *str)
concatenates the characters to the string; assumes the string to be concatenated is already in the ch...
TempEncodingHelper::TempEncodingHelper
DLLLOCAL TempEncodingHelper(const QoreString *s, const QoreEncoding *qe, ExceptionSink *xsink)
converts the given string to the required encoding if necessary
Definition: QoreString.h:899
QoreString::chomp
DLLEXPORT qore_size_t chomp()
removes a single \n\r or \n from the end of the string and returns the number of characters removed ...
QoreString::~QoreString
DLLEXPORT ~QoreString()
frees any memory allocated by the string
QoreString::takeAndTerminate
DLLEXPORT void takeAndTerminate(char *str, qore_size_t size)
takes ownership of the character pointer passed and assigns it to the string (frees memory previously...
TempString::TempString
DLLLOCAL TempString(const QoreEncoding *enc)
populates the object with a new QoreString in a specific encoding that this object will manage ...
Definition: QoreString.h:806
QoreString::brindex
DLLEXPORT qore_offset_t brindex(const QoreString &needle, qore_offset_t pos) const
returns the byte position of a substring within the string searching in reverse from a given position...
QoreString::extract
DLLEXPORT QoreString * extract(qore_offset_t offset, ExceptionSink *xsink)
removes characters from the string starting at position &quot;offset&quot; and returns a string of the characte...
QoreString::allocate
DLLEXPORT void allocate(unsigned requested_size)
Ensure the internal buffer has at least expected size in bytes.
TempEncodingHelper::giveBuffer
DLLLOCAL char * giveBuffer()
returns a char pointer of the string, the caller owns the pointer returned (it must be manually freed...
Definition: QoreString.h:958
QoreString::reset
DLLEXPORT void reset()
reset string to zero length; memory is deallocated; string encoding is reset to QCS_DEFAULT ...
QoreString::clear
DLLEXPORT void clear()
reset string to zero length; memory is not deallocated; string encoding does not change ...
TempString::operator*
DLLLOCAL QoreString * operator*()
returns the QoreString pointer being managed
Definition: QoreString.h:823
QoreString::concatAndHTMLDecode
DLLEXPORT void concatAndHTMLDecode(const QoreString *str)
concatenates HTML-decoded version of the c-string passed
QoreString::trim_single_leading
DLLEXPORT void trim_single_leading(char c)
remove a single leading character if present
TempEncodingHelper::set
DLLLOCAL int set(const QoreString *s, const QoreEncoding *qe, ExceptionSink *xsink)
discards any current state and sets and converts (if necessary) a new string to the desired encoding ...
Definition: QoreString.h:922
QoreString::vsprintf
DLLEXPORT int vsprintf(const char *fmt, va_list args)
this will concatentate a formatted string to the existing string according to the format string and t...
QoreString::substr
DLLEXPORT QoreString * substr(qore_offset_t offset, ExceptionSink *xsink) const
returns a new string consisting of all the characters from the current string starting with character...
TempEncodingHelper::operator->
DLLLOCAL const QoreString * operator->()
returns the string being managed
Definition: QoreString.h:943
QoreString::size
DLLEXPORT qore_size_t size() const
returns number of bytes in the string (not including the null pointer)
QoreString::take
DLLEXPORT void take(char *str)
takes ownership of the character pointer passed and assigns it to the string (frees memory previously...
TempString::TempString
DLLLOCAL TempString()
populates the object with a new QoreString that this object will manage
Definition: QoreString.h:802
QoreString::operator=
DLLEXPORT QoreString & operator=(const QoreString &other)
assigns the value of one string to another
BinaryNode
holds arbitrary binary data
Definition: BinaryNode.h:33
QoreString::compareSoft
DLLEXPORT int compareSoft(const QoreString *str, ExceptionSink *xsink) const
compares the string with another string, performing character set encoding conversion if necessary ...
QoreString::getBuffer
DLLEXPORT const char * getBuffer() const
returns the string&#39;s buffer; this data should not be changed