mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-14 17:24:01 +00:00
ICU-6765 doxygen-ify API docs
X-SVN-Rev: 25618
This commit is contained in:
parent
8b580b2052
commit
fa03e6079a
1 changed files with 91 additions and 40 deletions
|
@ -3,8 +3,6 @@
|
|||
//
|
||||
// Copyright 2001 and onwards Google Inc.
|
||||
// Author: Sanjay Ghemawat
|
||||
//
|
||||
|
||||
|
||||
#ifndef __STRINGPIECE_H__
|
||||
#define __STRINGPIECE_H__
|
||||
|
@ -22,73 +20,112 @@
|
|||
|
||||
U_NAMESPACE_BEGIN
|
||||
|
||||
///
|
||||
/// A string-like object that points to a sized piece of memory.
|
||||
///
|
||||
/// 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 ICU 4.2
|
||||
///
|
||||
/**
|
||||
* 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 ICU 4.2
|
||||
*/
|
||||
class U_COMMON_API StringPiece : public UMemory {
|
||||
private:
|
||||
const char* ptr_;
|
||||
int32_t length_;
|
||||
|
||||
public:
|
||||
/// We provide non-explicit singleton constructors so users can pass
|
||||
/// in a "const char*" or a "string" wherever a "StringPiece" is
|
||||
/// expected.
|
||||
/// @draft ICU 4.2
|
||||
/**
|
||||
* Default constructor, creates an empty StringPiece.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
StringPiece() : ptr_(NULL), length_(0) { }
|
||||
/**
|
||||
* Constructs from a NUL-terminated const char * pointer.
|
||||
* @param str a NUL-terminated const char * pointer
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
StringPiece(const char* str);
|
||||
#if U_HAVE_STD_STRING
|
||||
/**
|
||||
* Constructs from a std::string.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
StringPiece(const U_STD_NSQ string& str)
|
||||
: ptr_(str.data()), length_(static_cast<int32_t>(str.size())) { }
|
||||
#endif
|
||||
/**
|
||||
* Constructs from a const char * pointer and a specified length.
|
||||
* @param offset a const char * pointer (need not be terminated)
|
||||
* @param len the length of the string; must be non-negative
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
StringPiece(const char* offset, int32_t len) : ptr_(offset), length_(len) { }
|
||||
/// Substring of another StringPiece.
|
||||
/// pos must be non-negative and <= x.length().
|
||||
/// @draft ICU 4.2
|
||||
/**
|
||||
* Substring of another StringPiece.
|
||||
* @param x the other StringPiece
|
||||
* @param pos start position in x; must be non-negative and <= x.length().
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
StringPiece(const StringPiece& x, int32_t pos);
|
||||
/// Substring of another StringPiece.
|
||||
/// pos must be non-negative and <= x.length().
|
||||
/// len must be non-negative and will be pinned to at most x.length() - pos.
|
||||
/// @draft ICU 4.2
|
||||
/**
|
||||
* Substring of another StringPiece.
|
||||
* @param x the other StringPiece
|
||||
* @param pos start position in x; must be non-negative and <= x.length().
|
||||
* @param len length of the substring;
|
||||
* must be non-negative and will be pinned to at most x.length() - pos.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
StringPiece(const StringPiece& x, int32_t pos, int32_t len);
|
||||
|
||||
/// 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.
|
||||
/// @draft ICU 4.2
|
||||
/**
|
||||
* 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.
|
||||
* @return the string pointer
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
const char* data() const { return ptr_; }
|
||||
/** @draft ICU 4.2 */
|
||||
/**
|
||||
* Returns the string length. Same as length().
|
||||
* @return the string length
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
int32_t size() const { return length_; }
|
||||
/** @draft ICU 4.2 */
|
||||
/**
|
||||
* Returns the string length. Same as size().
|
||||
* @return the string length
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
int32_t length() const { return length_; }
|
||||
/** @draft ICU 4.2 */
|
||||
/**
|
||||
* Returns whether the string is empty.
|
||||
* @return TRUE if the string is empty
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
UBool empty() const { return length_ == 0; }
|
||||
|
||||
/** @draft ICU 4.2 */
|
||||
/**
|
||||
* Sets to an empty string.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
void clear() { ptr_ = NULL; length_ = 0; }
|
||||
|
||||
/** @draft ICU 4.2 */
|
||||
/**
|
||||
* Removes the first n string units.
|
||||
* @param n prefix length, must be non-negative and <=length()
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
void remove_prefix(int32_t n) {
|
||||
if (n >= 0) {
|
||||
if (n > length_) {
|
||||
|
@ -99,7 +136,11 @@ class U_COMMON_API StringPiece : public UMemory {
|
|||
}
|
||||
}
|
||||
|
||||
/** @draft ICU 4.2 */
|
||||
/**
|
||||
* Removes the last n string units.
|
||||
* @param n suffix length, must be non-negative and <=length()
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
void remove_suffix(int32_t n) {
|
||||
if (n >= 0) {
|
||||
if (n <= length_) {
|
||||
|
@ -110,10 +151,20 @@ class U_COMMON_API StringPiece : public UMemory {
|
|||
}
|
||||
}
|
||||
|
||||
/** @draft ICU 4.2 */
|
||||
/**
|
||||
* Maximum integer, used as a default value for substring methods.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
static const int32_t npos = 0x7fffffff;
|
||||
|
||||
/** @draft ICU 4.2 */
|
||||
/**
|
||||
* Returns a substring of this StringPiece.
|
||||
* @param pos start position; must be non-negative and <= length().
|
||||
* @param len length of the substring;
|
||||
* must be non-negative and will be pinned to at most length() - pos.
|
||||
* @return the substring StringPiece
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
StringPiece substr(int32_t pos, int32_t n = npos) const {
|
||||
return StringPiece(*this, pos, n);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue