version 1.3, 2001/01/28 04:11:03
|
version 1.89.2.4, 2005/09/29 02:22:39
|
|
|
//BEGIN_LICENSE |
//%2005//////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000 The Open Group, BMC Software, Tivoli Systems, IBM |
// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development |
|
// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. |
|
// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.; |
|
// IBM Corp.; EMC Corporation, The Open Group. |
|
// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; |
|
// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. |
|
// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
|
// EMC Corporation; VERITAS Software Corporation; The Open Group. |
|
// |
|
// Permission is hereby granted, free of charge, to any person obtaining a copy |
|
// of this software and associated documentation files (the "Software"), to |
|
// deal in the Software without restriction, including without limitation the |
|
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
|
// sell copies of the Software, and to permit persons to whom the Software is |
|
// furnished to do so, subject to the following conditions: |
|
// |
|
// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN |
|
// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED |
|
// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT |
|
// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR |
|
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
|
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
|
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
// | // |
// Permission is hereby granted, free of charge, to any person obtaining a |
//============================================================================== |
// copy of this software and associated documentation files (the "Software"), |
|
// to deal in the Software without restriction, including without limitation |
|
// the rights to use, copy, modify, merge, publish, distribute, sublicense, |
|
// and/or sell copies of the Software, and to permit persons to whom the |
|
// Software is furnished to do so, subject to the following conditions: |
|
// | // |
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
//%///////////////////////////////////////////////////////////////////////////// |
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
|
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
|
// DEALINGS IN THE SOFTWARE. |
|
// |
|
//END_LICENSE |
|
//BEGIN_HISTORY |
|
// |
|
// Author: |
|
// |
|
// $Log$ |
|
// Revision 1.3 2001/01/28 04:11:03 mike |
|
// fixed qualifier resolution |
|
// |
|
// Revision 1.2 2001/01/24 16:16:38 karl |
|
// Incorporate Doc++ Comments as documentation into .h files |
|
// |
|
// Revision 1.1.1.1 2001/01/14 19:53:15 mike |
|
// Pegasus import |
|
// |
|
// |
|
//END_HISTORY |
|
|
|
//////////////////////////////////////////////////////////////////////////////// |
|
// |
|
// String.h |
|
// |
|
// Simple String type. |
|
// |
|
//////////////////////////////////////////////////////////////////////////////// |
|
|
|
/* |
|
String Header File - Defines the CIM String Class. |
|
*/ |
|
| |
#ifndef Pegasus_String_h | #ifndef Pegasus_String_h |
#define Pegasus_String_h | #define Pegasus_String_h |
| |
|
#ifdef PEGASUS_OS_HPUX |
|
# ifdef HPUX_IA64_NATIVE_COMPILER |
|
# include <iostream> |
|
# else |
|
# include <iostream.h> |
|
# endif |
|
#else |
#include <iostream> | #include <iostream> |
#include <cstring> |
#endif |
#include <Pegasus/Common/Config.h> | #include <Pegasus/Common/Config.h> |
#include <Pegasus/Common/Char16.h> | #include <Pegasus/Common/Char16.h> |
#include <Pegasus/Common/Array.h> |
#include <Pegasus/Common/Linkage.h> |
| |
PEGASUS_NAMESPACE_BEGIN |
// Locale constants |
|
// These constants need to be defined as follows: |
|
// lower case language; underscore; Uppercase Country |
|
const char ENGLISH_US[] = "en_US"; |
| |
PEGASUS_COMMON_LINKAGE void ThrowNullPointer(); |
PEGASUS_NAMESPACE_BEGIN |
| |
PEGASUS_COMMON_LINKAGE Uint32 StrLen(const Char16* str); |
class String; |
|
struct StringRep; |
| |
inline Uint32 StrLen(const char* str) |
/** The CString class provides access to an 8-bit String representation. |
|
*/ |
|
class PEGASUS_COMMON_LINKAGE CString |
{ | { |
if (!str) |
public: |
ThrowNullPointer(); |
|
|
/** Constructs a CString object with null values (default constructor). |
|
*/ |
|
CString(); |
|
|
|
/** REVIEWERS: Describe method here. |
|
@param cstr Specifies the name of the CString instance to copy. |
|
*/ |
|
CString(const CString& cstr); |
|
|
|
/** CString destructor. |
|
*/ |
|
~CString(); |
|
|
|
/** Assigns the values of one CString instance to another. |
|
@param cstr Specifies the name of the CString instance whose values |
|
are assigned to CString. |
|
*/ |
|
CString& operator=(const CString& cstr); |
|
|
|
/** Gets a pointer to the CString's data. |
|
@return Returns a const char pointer to the CString's data. |
|
*/ |
|
operator const char*() const; |
|
|
|
private: |
|
|
|
CString(char* cstr); |
|
|
|
friend class String; |
|
|
|
char* _rep; |
|
}; |
| |
return strlen(str); |
|
} |
|
/** | /** |
The Pegasus String C++ Class implements the CIM string type |
The Pegasus String C++ Class implements the CIM string type. |
|
REVIEWERS: We need more definition here. |
*/ | */ |
class PEGASUS_COMMON_LINKAGE String | class PEGASUS_COMMON_LINKAGE String |
{ | { |
public: | public: |
| |
/** |
/** This member is used to represent an empty string. Using this |
String with no parameters |
member avoids construction of an empty string (for example, String()). |
*/ | */ |
String(); |
static const String EMPTY; |
/** |
|
String something class definitions |
/** Default constructor without parameters. This constructor creates a |
|
null string. For example, |
|
<pre> |
|
String test; |
|
</pre> |
|
@exception bad_alloc Thrown if there is insufficient memory. |
*/ | */ |
String(const String& x); |
String(); |
/// Create a CIM string |
|
String(const String& x, Uint32 n); |
/** Copy constructor. |
/// Create a CIM String |
@param str Specifies the name of the String instance. |
String(const Char16* x); |
@exception bad_alloc Thrown if there is insufficient memory. |
/// Create a CIM String |
*/ |
String(const Char16* x, Uint32 n); |
String(const String& str); |
/** Create a CIM String |
|
|
/** Initialize with first <TT>n</TT> characters from <TT>str</TT>. |
|
@param str Specifies the name of the String instance. |
|
@param n Specifies the Uint32 size to use for the length of the string object. |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String(const String& str, Uint32 n); |
|
|
|
/** Initialize with str. |
|
@param str Specifies the name of the String instance. |
|
@exception NullPointer Thrown if str is NULL. |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String(const Char16* str); |
|
|
|
/** Initialize with first n characters of str. |
|
@param str Specifies the name of the String instance. |
|
@param n Specifies the Uint32 size. |
|
@exception NullPointer Thrown if str is NULL. |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String(const Char16* str, Uint32 n); |
|
|
|
/** Initialize from a plain C-String: |
|
@param str Specifies the name of the String instance. |
|
API supports UTF8 |
|
@exception NullPointer Thrown if str is NULL. |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String(const char* str); |
|
|
|
/** Initialize from the first <TT>n</TT> characters of a plain C-String: |
|
@param str Specifies the name of the String instance. |
|
@param u Specifies the Uint32 size. |
|
API supports UTF8 |
|
@exception NullPointer Thrown if str is NULL. |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String(const char* str, Uint32 n); |
|
|
|
/** String destructor. |
|
*/ |
|
~String(); |
|
|
|
/** Assign this string with str. For example, |
|
<pre> |
|
String t1 = "abc"; |
|
String t2 = t1; |
|
</pre> |
|
String t2 is assigned the value of t1. |
|
@param str Specifies the name of the String to assign to another |
|
String instance. |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String& operator=(const String& str); |
|
|
|
/** Assign this string with String str. |
|
@param str String to assign. |
|
@return Returns the String. |
|
API supports UTF8 |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String& assign(const String& str); |
|
|
|
/** Assign this string with str. |
|
@exception NullPointer Thrown if str is NULL. |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String& assign(const Char16* str); |
|
|
|
/** Assign this string with first n characters of str. |
|
@param n REVIEWERS: Insert text here. |
|
@param str REVIEWERS: Insert text here. |
|
@exception NullPointer Thrown if str is NULL. |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String& assign(const Char16* str, Uint32 n); |
|
|
|
/** Assign this string with the plain C-String str. |
|
@param str REVIEWERS: Insert text here. |
|
API supports UTF8 |
|
@exception NullPointer Thrown if str is NULL. |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String& assign(const char* str); |
|
|
|
/** Assign this string with first n characters of the plain C-String str. |
|
@param str REVIEWERS: Insert text here. |
|
@param n REVIEWERS: Insert text here. |
|
API supports UTF8 |
|
@exception NullPointer Thrown if str is NULL. |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String& assign(const char* str, Uint32 n); |
|
|
|
/** Clear this string. After calling clear(), size() will return 0. |
|
<pre> |
|
String test = "abc"; |
|
test.clear(); |
|
</pre> |
|
*/ |
|
void clear(); |
|
|
|
/** Reserves memory for capacity characters. Notice |
|
that this does not change the size of the string (size() returns |
|
what it did before). If the capacity of the string is already |
|
greater or equal to the capacity argument, this method has no |
|
effect. The capacity of a String object has no bearing on its |
|
external behavior. The capacity of a String is set only for |
|
performance reasons. |
|
@param capacity Defines the capacity in characters to reserve. |
|
*/ |
|
void reserveCapacity(Uint32 capacity); |
|
|
|
/** Returns the length of the String object. |
|
@return Length of the String in characters. For example, |
|
<pre> |
|
String s = "abcd"; |
|
assert(s.size() == 4); |
|
</pre> |
|
returns a value of 4 for the length. |
|
*/ |
|
Uint32 size() const; |
|
|
|
/** Returns a pointer to the first character in the |
|
null-terminated Char16 buffer of the String object. |
|
@return Pointer to the first character of the String object. For example, |
|
<pre> |
|
String test = "abc"; |
|
const Char16* q = test.getChar16Data(); |
|
</pre> |
|
points to the first character in the String instance named test. |
|
*/ |
|
const Char16* getChar16Data() const; |
|
|
|
/** Create an 8-bit representation of this String object. For example, |
|
|
|
@return CString object that provides access to the UTF8 String |
|
representation. |
|
|
|
<pre> |
|
String test = "abc"; |
|
printf("test = %s\n", (const char*)test.getCString()); |
|
|
|
NOTE: Do not do the following: |
|
const char * p = (const char *)test.getCString(); |
|
The pointer p will be invalid. This is because |
|
the CString object is destructed, which deletes |
|
the heap space for p. |
|
</pre> |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
CString getCString() const; |
|
|
|
/** Returns the specified character of the String object. |
|
@param index Index of the character to access. |
|
@return Specified character of the String object. |
|
@exception IndexOutOfBoundsException If <TT>index</TT> |
|
is outside the bounds of the String. |
|
<pre> |
|
String test = "abc; |
|
Char16 c = test[1]; |
|
</pre> |
|
*/ |
|
Char16& operator[](Uint32 index); |
|
|
|
/** Returns the specified character of the String object (const version). |
|
@param index Index of the character to access. |
|
@return Specified character of the String object. |
|
@exception IndexOutOfBoundsException If <TT>index</TT> |
|
is outside the bounds of the String. |
|
*/ |
|
const Char16 operator[](Uint32 index) const; |
|
|
|
/** Append the given character to this String. |
|
@param c Character to append. |
|
@return This String. |
|
<pre> |
|
String test = "abc"; |
|
test.append(Char16('d')); |
|
assert(test == "abcd"); |
|
</pre> |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String& append(const Char16& c); |
|
|
|
/** Append n characters from str to this String. |
|
@param str REVIEWERS: Insert text here. |
|
@param n REVIEWERS: Insert text here. |
|
@exception NullPointer Thrown if str is NULL. |
|
@exception bad_alloc Thrown if there is insufficient memory. |
*/ | */ |
String(const char* x); |
String& append(const Char16* str, Uint32 n); |
| |
String(const char* x, Uint32 n); |
/** Append the given String to this String. |
|
@param str String to append. |
|
@return This String. |
|
<pre> |
|
String test = "abc"; |
|
test.append("def"); |
|
assert(test == "abcdef"); |
|
</pre> |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String& append(const String& str); |
|
|
|
/** Remove size characters from the string starting at the given |
|
index. If size is PEG_NOT_FOUND, then all characters after |
|
<TT>index</TT> are removed. |
|
@param index Position in string to start remove. |
|
@param size Number of characters to remove. Default is PEG_NOT_FOUND |
|
which causes all characters after <TT>index</TT> to be removed. |
|
<pre> |
|
String s; |
|
s = "abc"; |
|
s.remove(0, 1); |
|
assert(String::equal(s, "bc")); |
|
assert(s.size() == 2); |
|
s.remove(0); |
|
assert(String::equal(s, "")); |
|
assert(s.size() == 0); |
|
</pre> |
|
@exception IndexOutOfBoundsException If size is greater than |
|
length of String plus starting index for remove. |
|
*/ |
|
void remove(Uint32 index, Uint32 size = PEG_NOT_FOUND); |
|
|
|
/** Return a new String which is initialzed with <TT>length</TT> |
|
characters from this string starting at <TT>index</TT>. |
|
@param index Specifies the index in string to start getting the |
|
substring. |
|
@param length Specifies the number of characters to get. If length |
|
is PEG_NOT_FOUND, then all characters after index are added to the new |
|
string. |
|
@return String Specifies the Sting with the defined substring. |
|
@exception bad_alloc Thrown if there is insufficient memory. |
|
*/ |
|
String subString(Uint32 index, Uint32 length = PEG_NOT_FOUND) const; |
|
|
|
/** Find the index of the first occurrence of the character c. |
|
If the character is not found, PEG_NOT_FOUND is returned. |
|
@param c Char to be found in the String. |
|
@return Position of the character in the string or PEG_NOT_FOUND if not |
|
found. |
|
*/ |
|
Uint32 find(Char16 c) const; |
| |
~String() { } |
/** Find the index of the first occurence of the character c. |
/** method ATTN: |
If the character is not found, PEG_NOT_FOUND is returned. |
|
Searching begins from the specified index. |
|
@param c Char to be found in the String. |
|
@return Position of the character in the string or PEG_NOT_FOUND if the |
|
character is not found. |
*/ | */ |
String& operator=(const String& x) { _rep = x._rep; return *this; } |
Uint32 find(Uint32 index, Char16 c) const; |
| |
String& operator=(const Char16* x) { assign(x); return *this; } |
/** Find the index of the first occurence of the string object. |
/** method assign - ATTN: |
This function finds one string inside another. |
|
If the matching substring is not found, PEG_NOT_FOUND is returned. |
|
@param s String object to be found in the String. |
|
@return Position of the substring in the String or PEG_NOT_FOUND if the |
|
substring is not found. |
*/ | */ |
String& assign(const String& x) { _rep = x._rep; return *this; } |
Uint32 find(const String& s) const; |
/** method assign - ATTN: |
|
|
/** Same as find() but start looking in reverse (last character first). |
|
@param c Char16 character to find in String. |
|
@return Position of the character in the string or PEG_NOT_FOUND if the |
|
character is not found. |
*/ | */ |
String& assign(const Char16* x); |
Uint32 reverseFind(Char16 c) const; |
/** method assign - ATTN: |
|
|
/** Converts all characters in this string to lowercase characters, |
*/ | */ |
String& assign(const Char16* x, Uint32 n); |
void toLower(); |
/** method assign - ATTN: |
|
|
#ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES |
|
/** <I><B>Experimental Interface</B></I><BR> |
|
Converts all characters in this string to uppercase characters. |
*/ | */ |
String& assign(const char* x); |
void toUpper(); |
/** method assign - ATTN: |
#endif |
|
|
|
/** Compare the first n characters of the two strings. |
|
@param s1 First null-terminated string for the comparison. |
|
@param s2 Second null-terminated string for the comparison. |
|
@param n Number of characters to compare. |
|
@return Return -1 If s1 is lexographically less than s2; if they are |
|
equivalent return 0; otherwise return 1. |
*/ | */ |
String& assign(const char* x, Uint32 n); |
static int compare(const String& s1, const String& s2, Uint32 n); |
/** Method clear -- ATTN: |
|
|
/** Compare two null-terminated strings. |
|
@param s1 First null-terminated string for the comparison. |
|
@param s2 Second null-terminated string for the comparison. |
|
@return Return -1 if s1 is less than s2; if equal return 0; |
|
otherwise return 1. |
|
|
|
NOTE: Use the comparison operators <,<= > >= to compare |
|
String objects. |
*/ | */ |
void clear() { _rep.clear(); _rep.append('\0'); } |
static int compare(const String& s1, const String& s2); |
/** Method reserve - ATTN: |
|
|
/** Compare two null-terminated strings but ignore case. |
|
@param s1 First null-terminated string for the comparison. |
|
@param s2 Second null-terminated string for the comparison. |
|
@return Return -1 if s1 is less than s2; if equal return 0; |
|
otherwise return 1. |
|
|
|
NOTE: Use the comparison operators <,<= > >= to compare |
|
String objects. |
*/ | */ |
void reserve(Uint32 capacity) { _rep.reserve(capacity + 1); } |
static int compareNoCase(const String& s1, const String& s2); |
/** Method getLength - ATTN: |
|
|
/** Compare two String objects for equality. |
|
@param s1 First <TT>String</TT> for comparison. |
|
@param s2 Second <TT>String</TT> for comparison. |
|
|
|
@return true If the two strings are equal; otherwise, false. For example, |
|
<pre> |
|
String s1 = "Hello World"; |
|
String s2 = s1; |
|
String s3(s2); |
|
assert(String::equal(s1, s3)); |
|
</pre> |
*/ | */ |
Uint32 getLength() const { return _rep.getSize() - 1; } |
static Boolean equal(const String& str1, const String& str2); |
/** Method getData - ATT |
|
|
/** Compares two strings and returns true if they |
|
are equal indepedent of case of the characters. |
|
@param str1 First String parameter. |
|
@param str2 Second String parameter. |
|
@return true If strings are equal independent of case, flase |
|
otherwise. |
*/ | */ |
const Char16* getData() const { return _rep.getData(); } |
static Boolean equalNoCase(const String& str1, const String& str2); |
| |
/** Method allocateCString - Allocates an 8 bit representation of this |
//// |
string. The user is responsible for freeing the result. If any characters |
//// {New interfaces start here: |
are truncated, a TruncatedCharacter exception is thrown. This exception may |
//// |
be suppressed by passing true as the noThrow argument. */ |
|
| |
char* allocateCString(Uint32 extraBytes = 0, Boolean noThrow = false) const; |
enum ASCII7Tag { ASCII7 }; |
| |
/** Method appendToCString - Append the given string to a C-string. If the |
String(const String& s1, const String& s2); |
length is not Uint32(-1), then the lesser of the the length argument and the |
|
length of this string is truncated. Otherwise, the entire string is |
|
trunctated. The TruncatedCharacter exception is thrown if any characters are |
|
truncated. |
|
*/ |
|
void appendToCString( |
|
char* str, |
|
Uint32 length = Uint32(-1), |
|
Boolean noThrow = false) const; |
|
| |
Char16& operator[](Uint32 i); |
String(const String& s1, const char* s2); |
| |
const Char16 operator[](Uint32 i) const; |
String(const char* s1, const String& s2); |
/// method Append |
|
String& append(const Char16& c) |
|
{ |
|
_rep.insert(_rep.getSize() - 1, c); |
|
return *this; |
|
} |
|
/// method append |
|
String& append(const Char16* str, Uint32 n); |
|
/// method append |
|
String& append(const String& str) |
|
{ |
|
return append(str.getData(), str.getLength()); |
|
} |
|
/// ATTN |
|
String& operator+=(const String& x) |
|
{ |
|
return append(x); |
|
} |
|
/// ATTN |
|
String& operator+=(Char16 c) |
|
{ |
|
return append(c); |
|
} |
|
/// ATTN |
|
String& operator+=(char c) |
|
{ |
|
return append(Char16(c)); |
|
} |
|
| |
/// remove a string |
String(const char* str, ASCII7Tag tag); |
void remove(Uint32 pos, Uint32 size = Uint32(-1)); |
|
| |
/// method subString ATTN: |
String(const char* str, size_t n, ASCII7Tag tag); |
String subString(Uint32 pos, Uint32 length = Uint32(-1)) const; |
|
| |
/// Method find - ATTN: |
String& operator=(const char* str); |
Uint32 find(Char16 c) const; |
|
| |
/// Method compare - Compare two CIM strings - ATTN: |
String& assignASCII7(const char* str); |
static int compare(const Char16* s1, const Char16* s2, Uint32 n); |
|
| |
/// Method compare -- Compare two CIM strings |
String& assignASCII7(const char* str, Uint32 n); |
static int compare(const Char16* s1, const Char16* s2); |
|
| |
/// ATTN |
Uint32 find(const char* s) const; |
static const String EMPTY; |
|
|
Uint32 find(char c) const; |
|
|
|
static Boolean equal(const String& s1, const char* s2); |
|
|
|
static int compare(const String& s1, const char* s2); |
|
|
|
String& append(char c); |
|
|
|
String& append(const char* str); |
|
|
|
String& append(const char* str, Uint32 size); |
|
|
|
static Boolean equalNoCase(const String& s1, const char* s2); |
| |
private: | private: |
| |
static Uint32 _min(Uint32 x, Uint32 y) { return x < y ? x : y; } |
void _append_char_aux(); |
| |
Array<Char16> _rep; |
static Boolean equalNoCase_aux(const String& str1, const String& str2); |
|
|
|
//// |
|
//// }New interfaces end here: |
|
//// |
|
|
|
private: |
|
|
|
Uint32 _find_aux(const Char16* s, Uint32 n) const; |
|
|
|
StringRep* _rep; |
}; | }; |
| |
PEGASUS_COMMON_LINKAGE Boolean operator==(const String& x, const String& y); |
/** String operator == tests for equality between two strings of any of the |
|
types String or char*. |
|
@return true If the strings are equal; otherwise, false. |
|
@param str1 REVIEWERS: Insert description here. |
|
@param str2 REVIEWERS: Insert description here. |
|
*/ |
|
PEGASUS_COMMON_LINKAGE Boolean operator==( |
|
const String& str1, |
|
const String& str2); |
| |
PEGASUS_COMMON_LINKAGE Boolean operator==(const String& x, const char* y); |
/** String operator ==. Test for equality between two strings. |
|
@param str1 REVIEWERS: Insert description here. |
|
@param str2 REVIEWERS: Insert description here. |
|
*/ |
|
PEGASUS_COMMON_LINKAGE Boolean operator==(const String& str1, const char* str2); |
| |
PEGASUS_COMMON_LINKAGE Boolean operator==(const char* x, const String& y); |
/** String operator ==. Test for equality between two strings. |
|
@param str1 REVIEWERS: Insert description here. |
|
@param str2 REVIEWERS: Insert description here. |
|
*/ |
|
PEGASUS_COMMON_LINKAGE Boolean operator==(const char* str1, const String& str2); |
| |
inline Boolean operator!=(const String& x, const String& y) |
/** String operator ==. Test for equality between two strings. |
{ |
@param str1 REVIEWERS: Insert description here. |
return !operator==(x, y); |
@param str2 REVIEWERS: Insert description here. |
} |
*/ |
|
PEGASUS_COMMON_LINKAGE Boolean operator!=( |
|
const String& str1, |
|
const String& str2); |
| |
PEGASUS_COMMON_LINKAGE std::ostream& operator<<(std::ostream& os, const String& |
/** REVIEWERS: Insert description here. |
x); |
@param str REVIEWERS: Insert description here. |
|
@param os REVIEWERS: Insert description here. |
|
*/ |
|
PEGASUS_COMMON_LINKAGE PEGASUS_STD(ostream)& operator<<( |
|
PEGASUS_STD(ostream)& os, |
|
const String& str); |
| |
inline String operator+(const String& x, const String& y) |
/** This overload operator (+) concatenates String objects. For example, |
{ |
<pre> |
return String(x).append(y); |
String t1 = "abc"; |
} |
String t2; |
|
t2 = t1 + "def" |
|
assert(t2 == "abcdef"); |
|
</pre> |
|
*/ |
|
PEGASUS_COMMON_LINKAGE String operator+(const String& str1, const String& str2); |
| |
inline Boolean operator<(const String& x, const String& y) |
/** The overload operator (<) compares String obects. |
{ |
<pre> |
return String::compare(x.getData(), y.getData()) < 0; |
String t1 = "def"; |
} |
String t2 = "a"; |
|
assert (t2 < t1); |
|
</pre> |
|
@param str1 REVIEWERS: Insert description here. |
|
@param str2 REVIEWERS: Insert description here. |
|
*/ |
|
PEGASUS_COMMON_LINKAGE Boolean operator<( |
|
const String& str1, |
|
const String& str2); |
| |
inline Boolean operator<=(const String& x, const String& y) |
/** The overload operator (<=) compares String objects. |
{ |
@param str1 REVIEWERS: Insert description here. |
return String::compare(x.getData(), y.getData()) <= 0; |
@param str2 REVIEWERS: Insert description here. |
} |
*/ |
|
PEGASUS_COMMON_LINKAGE Boolean operator<=( |
|
const String& str1, |
|
const String& str2); |
| |
inline Boolean operator>(const String& x, const String& y) |
/** The overload operator (>) compares String objects. |
{ |
@param str1 REVIEWERS: Insert description here. |
return String::compare(x.getData(), y.getData()) > 0; |
@param str2 REVIEWERS: Insert description here. |
} |
*/ |
|
PEGASUS_COMMON_LINKAGE Boolean operator>( |
|
const String& str1, |
|
const String& str2); |
| |
inline Boolean operator>=(const String& x, const String& y) |
/** The overload operator (>=) compares String objects. |
{ |
@param str1 REVIEWERS: Insert description here. |
return String::compare(x.getData(), y.getData()) >= 0; |
@param str2 REVIEWERS: Insert description here. |
} |
*/ |
|
PEGASUS_COMMON_LINKAGE Boolean operator>=( |
|
const String& str1, |
|
const String& str2); |
|
|
|
//// |
|
//// {New functions start here. |
|
//// |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator==(const String& s1, const String& s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator==(const String& s1, const char* s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator==(const char* s1, const String& s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator!=(const String& s1, const String& s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator!=(const String& s1, const char* s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator!=(const char* s1, const String& s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator<(const String& s1, const String& s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator<(const String& s1, const char* s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator<(const char* s1, const String& s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator>(const String& s1, const String& s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator>(const String& s1, const char* s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator>(const char* s1, const String& s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator<=(const String& s1, const String& s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator<=(const String& s1, const char* s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator<=(const char* s1, const String& s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator>=(const String& s1, const String& s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator>=(const String& s1, const char* s2); |
|
|
|
PEGASUS_COMMON_LINKAGE Boolean operator>=(const char* s1, const String& s2); |
|
|
|
PEGASUS_COMMON_LINKAGE String operator+(const String& s1, const String& s2); |
|
|
|
PEGASUS_COMMON_LINKAGE String operator+(const String& s1, const char* s2); |
|
|
|
PEGASUS_COMMON_LINKAGE String operator+(const char* s1, const String& s2); |
|
|
|
//// |
|
//// }New functions end here. |
|
//// |
| |
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |
| |
#endif /* Pegasus_String_h */ |
#ifdef PEGASUS_INTERNALONLY |
|
# define PEGASUS_STRING_INLINE inline |
|
# include "StringInline.h" |
|
# undef PEGASUS_STRING_INLINE |
|
#endif |
| |
|
#endif /* Pegasus_String_h */ |