HDK
|
#include <UT_WorkBuffer.h>
Classes | |
class | AutoLock |
Public Types | |
typedef char | value_type |
Public Member Functions | |
SYS_FORCE_INLINE | UT_WorkBuffer () |
SYS_FORCE_INLINE | UT_WorkBuffer (const char *str) |
SYS_FORCE_INLINE | UT_WorkBuffer (const char *data, exint size) |
SYS_FORCE_INLINE | UT_WorkBuffer (const UT_String &str) |
SYS_FORCE_INLINE | UT_WorkBuffer (const UT_StringRef &str) |
SYS_FORCE_INLINE | UT_WorkBuffer (const UT_StringLit &str) |
SYS_FORCE_INLINE | UT_WorkBuffer (const UT_StringView &view) |
SYS_FORCE_INLINE | UT_WorkBuffer (const UT_WorkBuffer &other) |
SYS_FORCE_INLINE | ~UT_WorkBuffer () |
SYS_FORCE_INLINE const char * | buffer () const |
char * | lock (exint offset=0, exint reserve_bytes=0) |
void | release (bool recompute_length=false) |
void | releaseSetLength (exint new_length) |
SYS_FORCE_INLINE exint | getAllocatedSize () const |
int64 | getMemoryUsage (bool inclusive) const |
void | reserve (exint bytes=0) |
SYS_FORCE_INLINE char | operator() (exint idx) const |
SYS_FORCE_INLINE char | first () const |
SYS_FORCE_INLINE char | last () const |
int | isNullTerminated () const |
SYS_FORCE_INLINE UT_WorkBuffer & | operator= (const UT_WorkBuffer &other) |
SYS_FORCE_INLINE UT_WorkBuffer & | operator= (const char *str) |
SYS_FORCE_INLINE UT_WorkBuffer & | operator= (const std::string &str) |
SYS_FORCE_INLINE void | strcpy (const char *src) |
SYS_FORCE_INLINE void | strcpy (const UT_String &src) |
SYS_FORCE_INLINE void | strcpy (const UT_StringRef &src) |
SYS_FORCE_INLINE void | strcpy (const UT_WorkBuffer &src) |
SYS_FORCE_INLINE void | strcpy (const UT_StringView &src) |
SYS_FORCE_INLINE void | strncpy (const char *src, exint maxlen) |
SYS_FORCE_INLINE exint | strlen () const |
SYS_FORCE_INLINE exint | length () const |
SYS_FORCE_INLINE void | strcat (const char *src) |
void | protectedStrcat (const char *str, bool force_quote=false) |
void | fullyProtectedStrcat (const char *str, bool force_quote=false) |
void | fullyProtectedBinaryStrcat (const char *str, exint size, bool force_quote=false) |
SYS_FORCE_INLINE void | strncat (const char *src, exint len) |
void | strcatFirstWord (const char *src) |
SYS_FORCE_INLINE int | strcmp (const char *src) const |
SYS_FORCE_INLINE int | strncmp (const char *src, exint n) const |
SYS_FORCE_INLINE char * | strdup () const |
SYS_FORCE_INLINE void | clear () |
SYS_FORCE_INLINE bool | isEmpty () const |
SYS_FORCE_INLINE bool | isstring () const |
SYS_FORCE_INLINE void | write (exint offset, char c) |
void | write (exint offset, const char *src) |
void | write (exint offset, const UT_StringHolder &src) |
bool | readFile (const char *filename) |
bool | getline (std::istream &is) |
bool | getline (FILE *fp) |
bool | cmdGetLine (std::istream &is, UT_WorkArgs &args, int &line_num, const char *comment_chars="#", const char *separators=" \t\n\r") |
bool | cmdGetLine (UT_IStream &is, UT_WorkArgs &args, int &line_num, const char *comment_chars="#", const char *separators=" \t\n\r") |
bool | cmdGetLine (FILE *fp, UT_WorkArgs &args, int &line_num, const char *comment_chars="#", const char *separators=" \t\n\r") |
int | sprintf (const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2 |
int int | appendSprintf (const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2 |
int int int | vsprintf (const char *fmt, va_list ap) |
template<typename... Args> | |
size_t | format (const char *fmt, const Args &...args) |
size_t | appendFormatByArray (const char *fmt, const UT_Array< UT::Format::ArgValue > &args, bool report_errors=true) |
Like appendFormat() except it that uses an array of arguments. More... | |
SYS_FORCE_INLINE void | append (char character) |
void | printMemory (int64 mem) |
void | appendPrintMemory (int64 mem) |
void | append (exint n, char character) |
void | append (utf32 cp) |
Append a single Unicode code point, converted to UTF8. More... | |
void | append (const char *data, exint size) |
SYS_FORCE_INLINE void | append (const char *str) |
SYS_FORCE_INLINE void | append (const UT_String &str) |
SYS_FORCE_INLINE void | append (const UT_StringRef &str) |
SYS_FORCE_INLINE void | append (const UT_StringLit &str) |
void | append (const UT_StringArray &strs, const UT_StringRef &sep) |
SYS_FORCE_INLINE void | append (const UT_WorkBuffer &wb) |
SYS_FORCE_INLINE void | append (const UT_StringView &view) |
void | append (const UT_Digits &) |
SYS_FORCE_INLINE UT_WorkBuffer & | operator+= (const char *str) |
SYS_FORCE_INLINE UT_WorkBuffer & | operator+= (const std::string &str) |
SYS_FORCE_INLINE UT_WorkBuffer & | operator+= (const UT_WorkBuffer &wb) |
SYS_FORCE_INLINE UT_WorkBuffer & | operator+= (const UT_String &str) |
SYS_FORCE_INLINE UT_WorkBuffer & | operator+= (const UT_StringRef &str) |
SYS_FORCE_INLINE UT_WorkBuffer & | operator+= (const UT_Digits &digits) |
void | prepend (char character) |
void | prepend (const char *data, exint size) |
SYS_FORCE_INLINE void | prepend (const char *str) |
SYS_FORCE_INLINE void | prepend (const UT_String &str) |
SYS_FORCE_INLINE void | prepend (const UT_StringRef &str) |
void | insert (exint pos, const char *str, exint slen) |
void | erase (exint pos, exint len) |
Erase len characters from location pos in the string. More... | |
void | rewind () |
SYS_FORCE_INLINE void | backup (exint by_length) |
Rewind by the given length. More... | |
SYS_FORCE_INLINE void | truncate (exint new_length) |
void | backupTo (char c) |
void | advance (exint by_length) |
SYS_FORCE_INLINE const char * | findChar (char c, int occurance_number=1) const |
const char * | lastChar (char c, int occurance_number=1) const |
const char * | findCharFrom (char c, exint position, int occurance_number=1) const |
void | adoptFromMalloc (char *data, exint length) |
void | adoptFromCharArray (UT_Array< char > &data) |
exint | count (const char *needle) const |
Count the occurrences of the text in the current string. More... | |
bool | getNextToken (const char *(&string), const UT_String separators=" \t\n") |
void | copyIntoString (UT_String &str) const |
void | copyIntoString (char *str, exint max_length) const |
void | stealIntoString (UT_String &str) |
void | stealIntoStringHolder (UT_StringHolder &str) |
std::string | toStdString () const |
bool | stripComments (char comment_char= '#') |
int | strip (const char *chars) |
void | removeTrailingSpaceLines () |
Remove trailing whitespace lines. More... | |
bool | removeTrailingSpace () |
Remove trailing whitespace, return true if whitespace was removed. More... | |
bool | removeLeadingSpace () |
Remove leading white space, return true if whitespace was removed. More... | |
bool | removeTrailingDigits () |
Remove trailing digits, return true if some were removed. More... | |
void | lower () |
Convert string to lower case. More... | |
void | upper () |
Convert string to upper case. More... | |
void | makeIndentString (exint indent, exint tabstop=8) |
Create a string of tabs & spaces which represents the given indent. More... | |
void | eraseHead (exint n) |
Remove the first n characters. More... | |
int | substitute (const char *find, const char *replacement, int count=-1) |
int | substitute (const char *find, const char *replacement, bool all) |
Convenience version of substitute() for all or single occurrence. More... | |
bool | subPatterns (const char *to_pattern, const char *from_name, const char *from_pattern) |
void | setFromUTF16 (const utf16 *str) |
UTF-16 / UTF-8 conversions. More... | |
void | setAsUTF16 (const utf8 *str) |
SYS_FORCE_INLINE const utf16 * | castToUTF16 () const |
Once set as UTF16-LE, get it back as such a pointer. More... | |
utf16 * | lockUTF16 (exint offset=0, exint len=0) |
Lock buffer for len utf-16 characters. More... | |
void | swap (UT_WorkBuffer &other) |
SYS_FORCE_INLINE const char * | begin () const |
Iterator compatibility. More... | |
SYS_FORCE_INLINE const char * | end () const |
SYS_FORCE_INLINE const char * | data () const |
SYS_FORCE_INLINE const char * | c_str () const |
SYS_FORCE_INLINE bool | operator== (const char *str) const |
SYS_FORCE_INLINE bool | operator== (const UT_String &str) const |
SYS_FORCE_INLINE bool | operator== (const UT_StringRef &str) const |
SYS_FORCE_INLINE bool | operator== (const UT_WorkBuffer &buf) const |
SYS_FORCE_INLINE bool | operator!= (const char *str) const |
SYS_FORCE_INLINE bool | operator!= (const UT_String &str) const |
SYS_FORCE_INLINE bool | operator!= (const UT_StringRef &str) const |
SYS_FORCE_INLINE bool | operator!= (const UT_WorkBuffer &buf) const |
void | itoa (int64 i) |
void | utoa (uint64 i) |
template<typename... Args> | |
size_t | appendFormat (const char *fmt, const Args &...args) |
size_t | appendFormat (const char *fmt, std::initializer_list< UT::Format::ArgValue > args) |
Static Public Member Functions | |
static SYS_FORCE_INLINE UT_WorkBuffer | widen (const utf8 *str) |
static SYS_FORCE_INLINE UT_WorkBuffer | narrow (const utf16 *str) |
Friends | |
UT_API std::ostream & | operator<< (std::ostream &os, const UT_WorkBuffer &buffer) |
Definition at line 74 of file UT_WorkBuffer.h.
typedef char UT_WorkBuffer::value_type |
Definition at line 77 of file UT_WorkBuffer.h.
|
inline |
Definition at line 80 of file UT_WorkBuffer.h.
|
inlineexplicit |
Definition at line 86 of file UT_WorkBuffer.h.
|
inlineexplicit |
Definition at line 93 of file UT_WorkBuffer.h.
|
inlineexplicit |
Definition at line 100 of file UT_WorkBuffer.h.
|
inlineexplicit |
Definition at line 107 of file UT_WorkBuffer.h.
|
inlineexplicit |
Definition at line 114 of file UT_WorkBuffer.h.
|
inlineexplicit |
Definition at line 121 of file UT_WorkBuffer.h.
|
inline |
Definition at line 128 of file UT_WorkBuffer.h.
|
inline |
Definition at line 135 of file UT_WorkBuffer.h.
Adopt a string from an outside source. The passed string is now owned by the workbuffer.
Definition at line 846 of file UT_WorkBuffer.h.
|
inline |
Definition at line 622 of file UT_WorkBuffer.h.
Definition at line 635 of file UT_WorkBuffer.h.
Append a single Unicode code point, converted to UTF8.
Definition at line 646 of file UT_WorkBuffer.h.
Definition at line 661 of file UT_WorkBuffer.h.
|
inline |
Definition at line 673 of file UT_WorkBuffer.h.
|
inline |
Definition at line 680 of file UT_WorkBuffer.h.
|
inline |
Definition at line 687 of file UT_WorkBuffer.h.
|
inline |
Definition at line 694 of file UT_WorkBuffer.h.
void UT_WorkBuffer::append | ( | const UT_StringArray & | strs, |
const UT_StringRef & | sep | ||
) |
|
inline |
Definition at line 702 of file UT_WorkBuffer.h.
|
inline |
Definition at line 708 of file UT_WorkBuffer.h.
|
inline |
Append to the work buffer using the same formatting as UTformat. Returns the size of the appended portion, in bytes. If fmt is nullptr will space-separate the arguments like python print.
Definition at line 608 of file UT_WorkBuffer.h.
size_t UT_WorkBuffer::appendFormat | ( | const char * | fmt, |
std::initializer_list< UT::Format::ArgValue > | args | ||
) |
Append to the work buffer using the same formatting as UTformat. Returns the size of the appended portion, in bytes. If fmt is nullptr will space-separate the arguments like python print.
size_t UT_WorkBuffer::appendFormatByArray | ( | const char * | fmt, |
const UT_Array< UT::Format::ArgValue > & | args, | ||
bool | report_errors = true |
||
) |
Like appendFormat() except it that uses an array of arguments.
|
inline |
Rewind by the given length.
Definition at line 809 of file UT_WorkBuffer.h.
|
inline |
Definition at line 837 of file UT_WorkBuffer.h.
|
inline |
Iterator compatibility.
Definition at line 1080 of file UT_WorkBuffer.h.
|
inline |
Definition at line 169 of file UT_WorkBuffer.h.
|
inline |
Alias for the common string access across all string types (including standard library)
Definition at line 176 of file UT_WorkBuffer.h.
|
inline |
Once set as UTF16-LE, get it back as such a pointer.
Definition at line 1034 of file UT_WorkBuffer.h.
|
inline |
Definition at line 500 of file UT_WorkBuffer.h.
bool UT_WorkBuffer::cmdGetLine | ( | std::istream & | is, |
UT_WorkArgs & | args, | ||
int & | line_num, | ||
const char * | comment_chars = "#" , |
||
const char * | separators = " \t\n\r" |
||
) |
bool UT_WorkBuffer::cmdGetLine | ( | UT_IStream & | is, |
UT_WorkArgs & | args, | ||
int & | line_num, | ||
const char * | comment_chars = "#" , |
||
const char * | separators = " \t\n\r" |
||
) |
bool UT_WorkBuffer::cmdGetLine | ( | FILE * | fp, |
UT_WorkArgs & | args, | ||
int & | line_num, | ||
const char * | comment_chars = "#" , |
||
const char * | separators = " \t\n\r" |
||
) |
exint UT_WorkBuffer::count | ( | const char * | needle | ) | const |
Count the occurrences of the text in the current string.
|
inline |
Alias for the common string access across all string types (including standard library)
Definition at line 174 of file UT_WorkBuffer.h.
|
inline |
Definition at line 1082 of file UT_WorkBuffer.h.
Erase len
characters from location pos
in the string.
Remove the first n characters.
Definition at line 980 of file UT_WorkBuffer.h.
|
inline |
Definition at line 860 of file UT_WorkBuffer.h.
|
inline |
Definition at line 886 of file UT_WorkBuffer.h.
|
inline |
Definition at line 274 of file UT_WorkBuffer.h.
|
inline |
Replace the contents of the work buffer using the same formatting as UTformat. Returns the resulting length in bytes. If fmt is nullptr will space-separate the arguments like python print.
Definition at line 598 of file UT_WorkBuffer.h.
void UT_WorkBuffer::fullyProtectedBinaryStrcat | ( | const char * | str, |
exint | size, | ||
bool | force_quote = false |
||
) |
void UT_WorkBuffer::fullyProtectedStrcat | ( | const char * | str, |
bool | force_quote = false |
||
) |
|
inline |
Definition at line 205 of file UT_WorkBuffer.h.
bool UT_WorkBuffer::getline | ( | std::istream & | is | ) |
bool UT_WorkBuffer::getline | ( | FILE * | fp | ) |
int64 UT_WorkBuffer::getMemoryUsage | ( | bool | inclusive | ) | const |
bool UT_WorkBuffer::getNextToken | ( | const char *& | string, |
const UT_String | separators = " \t\n" |
||
) |
Insert slen
characters from str
, at location pos
. If pos
exceeds the current length, the position is truncated and to an append.
|
inline |
Definition at line 508 of file UT_WorkBuffer.h.
int UT_WorkBuffer::isNullTerminated | ( | ) | const |
|
inline |
Definition at line 513 of file UT_WorkBuffer.h.
|
inline |
Definition at line 281 of file UT_WorkBuffer.h.
|
inline |
Definition at line 865 of file UT_WorkBuffer.h.
|
inline |
Definition at line 433 of file UT_WorkBuffer.h.
Lock buffer for len
utf-16 characters.
Definition at line 1037 of file UT_WorkBuffer.h.
void UT_WorkBuffer::lower | ( | ) |
Convert string to lower case.
Create a string of tabs & spaces which represents the given indent.
|
inlinestatic |
Create a work buffer to contain the UTF-8 representation of the incoming UTF-16 string. The UTF-16 string is assumed to be little-endian, unless prefixed with BOM that indicates endianness. The incoming string should be zero-word terminated.
Definition at line 160 of file UT_WorkBuffer.h.
|
inline |
Comparison operator. Null strings are considered as empty strings.
Definition at line 344 of file UT_WorkBuffer.h.
|
inline |
Comparison operator. Null strings are considered as empty strings.
Definition at line 349 of file UT_WorkBuffer.h.
|
inline |
Comparison operator. Null strings are considered as empty strings.
Definition at line 354 of file UT_WorkBuffer.h.
|
inline |
Comparison operator. Null strings are considered as empty strings.
Definition at line 359 of file UT_WorkBuffer.h.
|
inline |
Definition at line 264 of file UT_WorkBuffer.h.
|
inline |
Definition at line 718 of file UT_WorkBuffer.h.
|
inline |
Definition at line 725 of file UT_WorkBuffer.h.
|
inline |
Definition at line 732 of file UT_WorkBuffer.h.
|
inline |
Definition at line 739 of file UT_WorkBuffer.h.
|
inline |
Definition at line 746 of file UT_WorkBuffer.h.
|
inline |
Definition at line 753 of file UT_WorkBuffer.h.
|
inline |
Definition at line 291 of file UT_WorkBuffer.h.
|
inline |
Definition at line 297 of file UT_WorkBuffer.h.
|
inline |
Definition at line 304 of file UT_WorkBuffer.h.
|
inline |
Comparison operator. Null strings are considered as empty strings.
Definition at line 314 of file UT_WorkBuffer.h.
|
inline |
Comparison operator. Null strings are considered as empty strings.
Definition at line 321 of file UT_WorkBuffer.h.
|
inline |
Comparison operator. Null strings are considered as empty strings.
Definition at line 328 of file UT_WorkBuffer.h.
|
inline |
Comparison operator. Null strings are considered as empty strings.
Definition at line 335 of file UT_WorkBuffer.h.
|
inline |
Definition at line 759 of file UT_WorkBuffer.h.
Definition at line 768 of file UT_WorkBuffer.h.
|
inline |
Definition at line 779 of file UT_WorkBuffer.h.
|
inline |
Definition at line 786 of file UT_WorkBuffer.h.
|
inline |
Definition at line 792 of file UT_WorkBuffer.h.
Definition at line 632 of file UT_WorkBuffer.h.
void UT_WorkBuffer::protectedStrcat | ( | const char * | str, |
bool | force_quote = false |
||
) |
bool UT_WorkBuffer::readFile | ( | const char * | filename | ) |
Load an entire file into the buffer. Returns false if there was an error reading the file
void UT_WorkBuffer::release | ( | bool | recompute_length = false | ) |
bool UT_WorkBuffer::removeLeadingSpace | ( | ) |
Remove leading white space, return true if whitespace was removed.
bool UT_WorkBuffer::removeTrailingDigits | ( | ) |
Remove trailing digits, return true if some were removed.
bool UT_WorkBuffer::removeTrailingSpace | ( | ) |
Remove trailing whitespace, return true if whitespace was removed.
void UT_WorkBuffer::removeTrailingSpaceLines | ( | ) |
Remove trailing whitespace lines.
|
inline |
Definition at line 805 of file UT_WorkBuffer.h.
Set the work buffer to contain a UTF-16LE (little endian) representation of the incoming UTF-8 string. The work buffer will be zero-word terminated.
UTF-16 / UTF-8 conversions.
Set the work buffer to contain the UTF-8 representation of the incoming UTF-16 string. The UTF-16 string is assumed to be little-endian, unless prefixed with BOM that indicates endianness. The incoming string should be zero-word terminated.
int UT_WorkBuffer::sprintf | ( | const char * | fmt, |
... | |||
) |
Format using the system sprintf. See also printf() which uses UT_printf which is type-safe and can print floating point using std::to_chars.
void UT_WorkBuffer::stealIntoStringHolder | ( | UT_StringHolder & | str | ) |
|
inline |
Definition at line 439 of file UT_WorkBuffer.h.
void UT_WorkBuffer::strcatFirstWord | ( | const char * | src | ) |
|
inline |
Definition at line 478 of file UT_WorkBuffer.h.
|
inline |
Definition at line 381 of file UT_WorkBuffer.h.
|
inline |
Definition at line 387 of file UT_WorkBuffer.h.
|
inline |
Definition at line 393 of file UT_WorkBuffer.h.
|
inline |
Definition at line 399 of file UT_WorkBuffer.h.
|
inline |
Definition at line 405 of file UT_WorkBuffer.h.
|
inline |
Definition at line 492 of file UT_WorkBuffer.h.
int UT_WorkBuffer::strip | ( | const char * | chars | ) |
Strips out all characters found in 'chars'. The string length will be reduced by the number of characters removed. The number of characters removed is returned.
bool UT_WorkBuffer::stripComments | ( | char | comment_char = '#' | ) |
|
inline |
Definition at line 426 of file UT_WorkBuffer.h.
|
inline |
Append a string of a given maximum length to the current string. Unlike the POSIX's strncat(3), we ignore any NUL bytes in the current string and blindly append at the end of the work buffer.
Definition at line 465 of file UT_WorkBuffer.h.
|
inline |
Definition at line 485 of file UT_WorkBuffer.h.
|
inline |
Definition at line 413 of file UT_WorkBuffer.h.
bool UT_WorkBuffer::subPatterns | ( | const char * | to_pattern, |
const char * | from_name, | ||
const char * | from_pattern | ||
) |
Given from_name which is assumed to fit from_pattern, any assigned wildcards are subsitituted in to_pattern, writing the result to this. The wildcards may also be indexed. For example:
to_pattern = b* from_name = apple from_pattern = a*le —> this = bpp
to_pattern = *(1)_to_*(0) from_name = a_to_b from_pattern = *_to_* —> this = b_to_a
Replaces up to 'count' occurrences of 'find' with 'replacement', and returns the number of substitutions that occurred. If 'count' <= 0, all occurrences will be replaced.
|
inline |
Convenience version of substitute() for all or single occurrence.
Definition at line 1000 of file UT_WorkBuffer.h.
|
inline |
Definition at line 1042 of file UT_WorkBuffer.h.
|
inline |
Definition at line 944 of file UT_WorkBuffer.h.
|
inline |
Truncate the buffer to the specified length. Truncating to 0 is identical to clear().
Definition at line 822 of file UT_WorkBuffer.h.
void UT_WorkBuffer::upper | ( | ) |
Convert string to upper case.
|
inlinestatic |
Create a work buffer to contain a UTF-16LE (little endian) representation of the incoming UTF-8 string. The work buffer will be zero-word terminated.
Definition at line 149 of file UT_WorkBuffer.h.
|
inline |
Definition at line 522 of file UT_WorkBuffer.h.
Definition at line 540 of file UT_WorkBuffer.h.
|
inline |
Definition at line 550 of file UT_WorkBuffer.h.
|
friend |