StringPiece Class Reference

A string-like object that points to a sized piece of memory. More...

#include <stringpiece.h>

Inheritance diagram for StringPiece:
UMemory

Public Member Functions

 StringPiece ()
 Default constructor, creates an empty StringPiece.
 StringPiece (const char *str)
 Constructs from a NUL-terminated const char * pointer.
 StringPiece (const U_STD_NSQ string &str)
 Constructs from a std::string.
 StringPiece (const char *offset, int32_t len)
 Constructs from a const char * pointer and a specified length.
 StringPiece (const StringPiece &x, int32_t pos)
 Substring of another StringPiece.
 StringPiece (const StringPiece &x, int32_t pos, int32_t len)
 Substring of another StringPiece.
const char * data () const
 Returns the string pointer.
int32_t size () const
 Returns the string length.
int32_t length () const
 Returns the string length.
UBool empty () const
 Returns whether the string is empty.
void clear ()
 Sets to an empty string.
void remove_prefix (int32_t n)
 Removes the first n string units.
void remove_suffix (int32_t n)
 Removes the last n string units.
StringPiece substr (int32_t pos, int32_t len=npos) const
 Returns a substring of this StringPiece.

Static Public Attributes

static const int32_t npos = 0x7fffffff
 Maximum integer, used as a default value for substring methods.

Detailed Description

A string-like object that points to a sized piece of memory.

We provide non-explicit singleton constructors so users can pass in a "const char*" or a "string" wherever a "StringPiece" is expected.

Functions or methods may use const StringPiece& parameters to accept either a "const char*" or a "string" value that will be implicitly converted to a StringPiece.

Systematic usage of StringPiece is encouraged as it will reduce unnecessary conversions from "const char*" to "string" and back again.

Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 52 of file stringpiece.h.


Constructor & Destructor Documentation

StringPiece::StringPiece (  )  [inline]

Default constructor, creates an empty StringPiece.

Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 62 of file stringpiece.h.

StringPiece::StringPiece ( const char *  str  ) 

Constructs from a NUL-terminated const char * pointer.

Parameters:
str a NUL-terminated const char * pointer
Draft:
This API may be changed in the future versions and was introduced in ICU 4.2
StringPiece::StringPiece ( const U_STD_NSQ string &  str  )  [inline]

Constructs from a std::string.

Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 74 of file stringpiece.h.

StringPiece::StringPiece ( const char *  offset,
int32_t  len 
) [inline]

Constructs from a const char * pointer and a specified length.

Parameters:
offset a const char * pointer (need not be terminated)
len the length of the string; must be non-negative
Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 83 of file stringpiece.h.

StringPiece::StringPiece ( const StringPiece x,
int32_t  pos 
)

Substring of another StringPiece.

Parameters:
x the other StringPiece
pos start position in x; must be non-negative and <= x.length().
Draft:
This API may be changed in the future versions and was introduced in ICU 4.2
StringPiece::StringPiece ( const StringPiece x,
int32_t  pos,
int32_t  len 
)

Substring of another StringPiece.

Parameters:
x the other StringPiece
pos start position in x; must be non-negative and <= x.length().
len length of the substring; must be non-negative and will be pinned to at most x.length() - pos.
Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Member Function Documentation

void StringPiece::clear (  )  [inline]

Sets to an empty string.

Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 135 of file stringpiece.h.

References NULL.

const char* StringPiece::data (  )  const [inline]

Returns the string pointer.

May be NULL if it is empty.

data() may return a pointer to a buffer with embedded NULs, and the returned buffer may or may not be null terminated. Therefore it is typically a mistake to pass data() to a routine that expects a NUL terminated string.

Returns:
the string pointer
Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 111 of file stringpiece.h.

UBool StringPiece::empty (  )  const [inline]

Returns whether the string is empty.

Returns:
TRUE if the string is empty
Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 129 of file stringpiece.h.

int32_t StringPiece::length ( void   )  const [inline]

Returns the string length.

Same as size().

Returns:
the string length
Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 123 of file stringpiece.h.

void StringPiece::remove_prefix ( int32_t  n  )  [inline]

Removes the first n string units.

Parameters:
n prefix length, must be non-negative and <=length()
Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 142 of file stringpiece.h.

void StringPiece::remove_suffix ( int32_t  n  )  [inline]

Removes the last n string units.

Parameters:
n suffix length, must be non-negative and <=length()
Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 157 of file stringpiece.h.

int32_t StringPiece::size (  )  const [inline]

Returns the string length.

Same as length().

Returns:
the string length
Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 117 of file stringpiece.h.

StringPiece StringPiece::substr ( int32_t  pos,
int32_t  len = npos 
) const [inline]

Returns a substring of this StringPiece.

Parameters:
pos start position; must be non-negative and <= length().
len length of the substring; must be non-negative and will be pinned to at most length() - pos.
Returns:
the substring StringPiece
Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 181 of file stringpiece.h.


Field Documentation

const int32_t StringPiece::npos = 0x7fffffff [static]

Maximum integer, used as a default value for substring methods.

Draft:
This API may be changed in the future versions and was introduced in ICU 4.2

Definition at line 171 of file stringpiece.h.


The documentation for this class was generated from the following file:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 9 Oct 2010 for ICU 4.2.1 by  doxygen 1.6.1