HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
UT_WorkBuffer Class Reference

#include <UT_WorkBuffer.h>

Classes

class  AutoLock
 

Public Types

typedef char value_type
 

Public Member Functions

 UT_WorkBuffer ()
 
 UT_WorkBuffer (const char *str)
 
 UT_WorkBuffer (const UT_String &str)
 
 UT_WorkBuffer (const UT_StringRef &str)
 
 UT_WorkBuffer (const UT_WorkBuffer &other)
 
 ~UT_WorkBuffer ()
 
const char * buffer () const
 
char * lock (exint offset=0, exint reserve_bytes=0)
 
void release (int recomputeLength=0)
 
void releaseSetLength (exint new_length)
 
exint getAllocatedSize () const
 
void reserve (exint bytes=0)
 
char operator() (exint idx) const
 
char first () const
 
char last () const
 
int isNullTerminated () const
 
UT_WorkBufferoperator= (const UT_WorkBuffer &other)
 
UT_WorkBufferoperator= (const char *str)
 
UT_WorkBufferoperator= (const std::string &str)
 
void strcpy (const char *src)
 
void strcpy (const UT_String &src)
 
void strcpy (const UT_StringRef &src)
 
void strcpy (const UT_WorkBuffer &src)
 
void strncpy (const char *src, exint maxlen)
 
exint strlen () const
 
exint length () const
 
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)
 
void strncat (const char *src, exint len)
 
void strcatFirstWord (const char *src)
 
int strcmp (const char *src) const
 
int strncmp (const char *src, exint n) const
 
char * strdup () const
 
void clear ()
 
bool isEmpty () const
 
bool isstring () const
 
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)
 
template<typename... Args>
size_t appendFormat (const char *fmt, const Args &...args)
 
template<typename... Args>
size_t print (const Args &...args)
 
template<typename... Args>
size_t appendPrint ()
 
template<typename T , typename... Args>
size_t appendPrint (const T &value, const Args &...args)
 
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)
 
void append (const char *str)
 
void append (const UT_String &str)
 
void append (const UT_StringRef &str)
 
void append (const UT_StringArray &strs, const UT_StringRef &sep)
 
void append (const UT_WorkBuffer &wb)
 
UT_WorkBufferoperator+= (const char *str)
 
UT_WorkBufferoperator+= (const std::string &str)
 
UT_WorkBufferoperator+= (const UT_WorkBuffer &wb)
 
void prepend (char character)
 
void prepend (const char *data, exint size)
 
void prepend (const char *str)
 
void prepend (const UT_String &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 ()
 
void backup (exint by_length)
 Rewind by the given length. More...
 
void truncate (exint new_length)
 
void backupTo (char c)
 
void advance (exint by_length)
 
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
 
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)
 
std::string toStdString () const
 
bool stripComments (char comment_char= '#')
 
void removeTrailingSpaceLines ()
 Remove trailing whitespace lines. More...
 
bool removeTrailingSpace ()
 Remove trailing whitespace, 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...
 
void substitute (const char *find, const char *replacement, bool all=true)
 Replace all occurances of 'find' with 'replacement'. 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)
 
void swap (UT_WorkBuffer &other)
 
const char * begin () const
 Iterator compatibility. More...
 
const char * end () const
 
bool operator== (const char *str) const
 
bool operator== (const UT_String &str) const
 
bool operator== (const UT_WorkBuffer &buf) const
 
bool operator!= (const char *str) const
 
bool operator!= (const UT_String &str) const
 
bool operator!= (const UT_WorkBuffer &buf) const
 

Static Public Member Functions

static UT_WorkBuffer widen (const utf8 *str)
 
static UT_WorkBuffer narrow (const utf16 *str)
 

Friends

UT_API std::ostream & operator<< (std::ostream &os, const UT_WorkBuffer &buffer)
 

Detailed Description

Member Typedef Documentation

Definition at line 62 of file UT_WorkBuffer.h.

Constructor & Destructor Documentation

UT_WorkBuffer::UT_WorkBuffer ( )
inline

Definition at line 64 of file UT_WorkBuffer.h.

UT_WorkBuffer::UT_WorkBuffer ( const char *  str)
inlineexplicit

Definition at line 71 of file UT_WorkBuffer.h.

UT_WorkBuffer::UT_WorkBuffer ( const UT_String str)
inlineexplicit

Definition at line 78 of file UT_WorkBuffer.h.

UT_WorkBuffer::UT_WorkBuffer ( const UT_StringRef str)
inlineexplicit

Definition at line 85 of file UT_WorkBuffer.h.

UT_WorkBuffer::UT_WorkBuffer ( const UT_WorkBuffer other)
inline

Definition at line 92 of file UT_WorkBuffer.h.

UT_WorkBuffer::~UT_WorkBuffer ( )
inline

Definition at line 99 of file UT_WorkBuffer.h.

Member Function Documentation

void UT_WorkBuffer::advance ( exint  by_length)
inline

Definition at line 718 of file UT_WorkBuffer.h.

void UT_WorkBuffer::append ( char  character)
inline
Examples:
FS/FS_HomeHelper.C.

Definition at line 547 of file UT_WorkBuffer.h.

void UT_WorkBuffer::append ( exint  n,
char  character 
)
inline

Definition at line 555 of file UT_WorkBuffer.h.

void UT_WorkBuffer::append ( utf32  cp)
inline

Append a single Unicode code point, converted to UTF8.

Definition at line 567 of file UT_WorkBuffer.h.

void UT_WorkBuffer::append ( const char *  data,
exint  size 
)
inline

Definition at line 582 of file UT_WorkBuffer.h.

void UT_WorkBuffer::append ( const char *  str)
inline

Definition at line 593 of file UT_WorkBuffer.h.

void UT_WorkBuffer::append ( const UT_String str)
inline

Definition at line 599 of file UT_WorkBuffer.h.

void UT_WorkBuffer::append ( const UT_StringRef str)
inline

Definition at line 605 of file UT_WorkBuffer.h.

void UT_WorkBuffer::append ( const UT_StringArray strs,
const UT_StringRef sep 
)
inline

Definition at line 611 of file UT_WorkBuffer.h.

void UT_WorkBuffer::append ( const UT_WorkBuffer wb)
inline

Definition at line 621 of file UT_WorkBuffer.h.

template<typename... Args>
size_t UT_WorkBuffer::appendFormat ( const char *  fmt,
const Args &...  args 
)
inline

Append to the work buffer using the same formatting as UTformat. Returns the size of the appended portion, in bytes.

Definition at line 498 of file UT_WorkBuffer.h.

template<typename... Args>
size_t UT_WorkBuffer::appendPrint ( )
inline

Append to the work buffer using the UTformat with an implicit "{} " format for each parameter. Returns the size of the appended portion, in bytes.

Definition at line 533 of file UT_WorkBuffer.h.

template<typename T , typename... Args>
size_t UT_WorkBuffer::appendPrint ( const T value,
const Args &...  args 
)
inline

Definition at line 538 of file UT_WorkBuffer.h.

void UT_WorkBuffer::appendPrintMemory ( int64  mem)
int int UT_WorkBuffer::appendSprintf ( const char *  fmt,
  ... 
)
void UT_WorkBuffer::backup ( exint  by_length)
inline

Rewind by the given length.

Definition at line 685 of file UT_WorkBuffer.h.

void UT_WorkBuffer::backupTo ( char  c)
inline

Definition at line 709 of file UT_WorkBuffer.h.

const char* UT_WorkBuffer::begin ( void  ) const
inline

Iterator compatibility.

Definition at line 912 of file UT_WorkBuffer.h.

void UT_WorkBuffer::clear ( void  )
inline

Definition at line 401 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" 
)
void UT_WorkBuffer::copyIntoString ( UT_String str) const
Examples:
FS/FS_HomeHelper.C.
void UT_WorkBuffer::copyIntoString ( char *  str,
exint  max_length 
) const
exint UT_WorkBuffer::count ( const char *  needle) const

Count the occurrences of the text in the current string.

const char* UT_WorkBuffer::end ( void  ) const
inline

Definition at line 913 of file UT_WorkBuffer.h.

void UT_WorkBuffer::erase ( exint  pos,
exint  len 
)

Erase len characters from location pos in the string.

void UT_WorkBuffer::eraseHead ( exint  n)
inline

Remove the first n characters.

Definition at line 829 of file UT_WorkBuffer.h.

const char* UT_WorkBuffer::findChar ( char  c,
int  occurance_number = 1 
) const
inline

Definition at line 731 of file UT_WorkBuffer.h.

const char* UT_WorkBuffer::findCharFrom ( char  c,
exint  position,
int  occurance_number = 1 
) const
inline

Definition at line 757 of file UT_WorkBuffer.h.

char UT_WorkBuffer::first ( ) const
inline

Definition at line 216 of file UT_WorkBuffer.h.

template<typename... Args>
size_t UT_WorkBuffer::format ( const char *  fmt,
const Args &...  args 
)
inline

Replace the contents of the work buffer using the same formatting as UTformat. Returns the size of the appended portion, in bytes.

Definition at line 489 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 
)
exint UT_WorkBuffer::getAllocatedSize ( ) const
inline

Definition at line 156 of file UT_WorkBuffer.h.

bool UT_WorkBuffer::getline ( std::istream &  is)
bool UT_WorkBuffer::getline ( FILE *  fp)
bool UT_WorkBuffer::getNextToken ( const char *&  string,
const UT_String  separators = " \t\n" 
)
void UT_WorkBuffer::insert ( exint  pos,
const char *  str,
exint  slen 
)

Insert slen characters from str, at location pos. If pos exceeds the current length, the position is truncated and to an append.

bool UT_WorkBuffer::isEmpty ( ) const
inline

Definition at line 408 of file UT_WorkBuffer.h.

int UT_WorkBuffer::isNullTerminated ( ) const
bool UT_WorkBuffer::isstring ( ) const
inline

Definition at line 412 of file UT_WorkBuffer.h.

char UT_WorkBuffer::last ( ) const
inline

Definition at line 222 of file UT_WorkBuffer.h.

const char* UT_WorkBuffer::lastChar ( char  c,
int  occurance_number = 1 
) const
inline

Definition at line 736 of file UT_WorkBuffer.h.

exint UT_WorkBuffer::length ( void  ) const
inline

Definition at line 340 of file UT_WorkBuffer.h.

char* UT_WorkBuffer::lock ( exint  offset = 0,
exint  reserve_bytes = 0 
)
void UT_WorkBuffer::lower ( )

Convert string to lower case.

Examples:
packedshareddata/GU_PackedSharedData.C.
void UT_WorkBuffer::makeIndentString ( exint  indent,
exint  tabstop = 8 
)

Create a string of tabs & spaces which represents the given indent.

static UT_WorkBuffer UT_WorkBuffer::narrow ( const utf16 str)
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 122 of file UT_WorkBuffer.h.

bool UT_WorkBuffer::operator!= ( const char *  str) const
inline

Comparison operator. Null strings are considered as empty strings.

Definition at line 271 of file UT_WorkBuffer.h.

bool UT_WorkBuffer::operator!= ( const UT_String str) const
inline

Comparison operator. Null strings are considered as empty strings.

Definition at line 275 of file UT_WorkBuffer.h.

bool UT_WorkBuffer::operator!= ( const UT_WorkBuffer buf) const
inline

Comparison operator. Null strings are considered as empty strings.

Definition at line 279 of file UT_WorkBuffer.h.

char UT_WorkBuffer::operator() ( exint  idx) const
inline

Definition at line 207 of file UT_WorkBuffer.h.

UT_WorkBuffer& UT_WorkBuffer::operator+= ( const char *  str)
inline

Definition at line 626 of file UT_WorkBuffer.h.

UT_WorkBuffer& UT_WorkBuffer::operator+= ( const std::string str)
inline

Definition at line 632 of file UT_WorkBuffer.h.

UT_WorkBuffer& UT_WorkBuffer::operator+= ( const UT_WorkBuffer wb)
inline

Definition at line 638 of file UT_WorkBuffer.h.

UT_WorkBuffer& UT_WorkBuffer::operator= ( const UT_WorkBuffer other)
inline

Definition at line 231 of file UT_WorkBuffer.h.

UT_WorkBuffer& UT_WorkBuffer::operator= ( const char *  str)
inline

Definition at line 236 of file UT_WorkBuffer.h.

UT_WorkBuffer& UT_WorkBuffer::operator= ( const std::string str)
inline

Definition at line 242 of file UT_WorkBuffer.h.

bool UT_WorkBuffer::operator== ( const char *  str) const
inline

Comparison operator. Null strings are considered as empty strings.

Definition at line 251 of file UT_WorkBuffer.h.

bool UT_WorkBuffer::operator== ( const UT_String str) const
inline

Comparison operator. Null strings are considered as empty strings.

Definition at line 257 of file UT_WorkBuffer.h.

bool UT_WorkBuffer::operator== ( const UT_WorkBuffer buf) const
inline

Comparison operator. Null strings are considered as empty strings.

Definition at line 263 of file UT_WorkBuffer.h.

void UT_WorkBuffer::prepend ( char  character)
inline

Definition at line 644 of file UT_WorkBuffer.h.

void UT_WorkBuffer::prepend ( const char *  data,
exint  size 
)
inline

Definition at line 653 of file UT_WorkBuffer.h.

void UT_WorkBuffer::prepend ( const char *  str)
inline

Definition at line 663 of file UT_WorkBuffer.h.

void UT_WorkBuffer::prepend ( const UT_String str)
inline

Definition at line 669 of file UT_WorkBuffer.h.

template<typename... Args>
size_t UT_WorkBuffer::print ( const Args &...  args)
inline

Replace the contents of the work buffer using UTformat formatting with an implicit "{} " for each argument, giving a Python-style print result.

Definition at line 523 of file UT_WorkBuffer.h.

void UT_WorkBuffer::printMemory ( int64  mem)
inline

Definition at line 552 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 ( int  recomputeLength = 0)
void UT_WorkBuffer::releaseSetLength ( exint  new_length)
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.

void UT_WorkBuffer::reserve ( exint  bytes = 0)
void UT_WorkBuffer::rewind ( )
inline

Definition at line 682 of file UT_WorkBuffer.h.

void UT_WorkBuffer::setAsUTF16 ( const utf8 str)

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.

void UT_WorkBuffer::setFromUTF16 ( const utf16 str)

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.

void UT_WorkBuffer::stealIntoString ( UT_String str)
void UT_WorkBuffer::strcat ( const char *  src)
inline

Definition at line 345 of file UT_WorkBuffer.h.

void UT_WorkBuffer::strcatFirstWord ( const char *  src)
int UT_WorkBuffer::strcmp ( const char *  src) const
inline

Definition at line 382 of file UT_WorkBuffer.h.

void UT_WorkBuffer::strcpy ( const char *  src)
inline
void UT_WorkBuffer::strcpy ( const UT_String src)
inline

Definition at line 305 of file UT_WorkBuffer.h.

void UT_WorkBuffer::strcpy ( const UT_StringRef src)
inline

Definition at line 310 of file UT_WorkBuffer.h.

void UT_WorkBuffer::strcpy ( const UT_WorkBuffer src)
inline

Definition at line 315 of file UT_WorkBuffer.h.

char* UT_WorkBuffer::strdup ( ) const
inline

Definition at line 394 of file UT_WorkBuffer.h.

bool UT_WorkBuffer::stripComments ( char  comment_char = '#')
exint UT_WorkBuffer::strlen ( ) const
inline

Definition at line 334 of file UT_WorkBuffer.h.

void UT_WorkBuffer::strncat ( const char *  src,
exint  len 
)
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 370 of file UT_WorkBuffer.h.

int UT_WorkBuffer::strncmp ( const char *  src,
exint  n 
) const
inline

Definition at line 388 of file UT_WorkBuffer.h.

void UT_WorkBuffer::strncpy ( const char *  src,
exint  maxlen 
)
inline

Definition at line 322 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

void UT_WorkBuffer::substitute ( const char *  find,
const char *  replacement,
bool  all = true 
)

Replace all occurances of 'find' with 'replacement'.

void UT_WorkBuffer::swap ( UT_WorkBuffer other)
inline

Definition at line 874 of file UT_WorkBuffer.h.

std::string UT_WorkBuffer::toStdString ( ) const
inline

Definition at line 801 of file UT_WorkBuffer.h.

void UT_WorkBuffer::truncate ( exint  new_length)
inline

Truncate the buffer to the specified length. Truncating to 0 is identical to clear().

Definition at line 697 of file UT_WorkBuffer.h.

void UT_WorkBuffer::upper ( )

Convert string to upper case.

int int int UT_WorkBuffer::vsprintf ( const char *  fmt,
va_list  ap 
)
static UT_WorkBuffer UT_WorkBuffer::widen ( const utf8 str)
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 112 of file UT_WorkBuffer.h.

void UT_WorkBuffer::write ( exint  offset,
char  c 
)
inline

Definition at line 420 of file UT_WorkBuffer.h.

void UT_WorkBuffer::write ( exint  offset,
const char *  src 
)
inline

Definition at line 438 of file UT_WorkBuffer.h.

void UT_WorkBuffer::write ( exint  offset,
const UT_StringHolder src 
)
inline

Definition at line 448 of file UT_WorkBuffer.h.

Friends And Related Function Documentation

UT_API std::ostream& operator<< ( std::ostream &  os,
const UT_WorkBuffer buffer 
)
friend

The documentation for this class was generated from the following file: