1cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project/* 2cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project * Copyright (C) 2005 The Android Open Source Project 3cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project * 4cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project * you may not use this file except in compliance with the License. 6cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project * You may obtain a copy of the License at 7cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project * 8cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project * 10cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project * See the License for the specific language governing permissions and 14cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project * limitations under the License. 15cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project */ 16cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 17cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project#ifndef ANDROID_STRING16_H 18cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project#define ANDROID_STRING16_H 19cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 20cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project#include <utils/Errors.h> 21cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project#include <utils/SharedBuffer.h> 22ba0165bef09729a33ab8e0ca329342be05e0d859Kenny Root#include <utils/Unicode.h> 239a0a76df1e961ef4621e81814d8bf891a09bef66Jeff Brown#include <utils/TypeHelpers.h> 24cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 25cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project// --------------------------------------------------------------------------- 26cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 27cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectextern "C" { 28cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 29cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 30cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 31cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project// --------------------------------------------------------------------------- 32cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 33cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectnamespace android { 34cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 359a2d83e698b16ec86ad2751b6e7cf103ad645cceKenny Root// --------------------------------------------------------------------------- 369a2d83e698b16ec86ad2751b6e7cf103ad645cceKenny Root 37cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectclass String8; 38cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectclass TextOutput; 39cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 40cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project//! This is a string holding UTF-16 characters. 41cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectclass String16 42cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 43cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectpublic: 444485d0d966d062d1b45b635e2447a2d2f96c3f38Mathias Agopian /* use String16(StaticLinkage) if you're statically linking against 454485d0d966d062d1b45b635e2447a2d2f96c3f38Mathias Agopian * libutils and declaring an empty static String16, e.g.: 464485d0d966d062d1b45b635e2447a2d2f96c3f38Mathias Agopian * 474485d0d966d062d1b45b635e2447a2d2f96c3f38Mathias Agopian * static String16 sAStaticEmptyString(String16::kEmptyString); 484485d0d966d062d1b45b635e2447a2d2f96c3f38Mathias Agopian * static String16 sAnotherStaticEmptyString(sAStaticEmptyString); 494485d0d966d062d1b45b635e2447a2d2f96c3f38Mathias Agopian */ 504485d0d966d062d1b45b635e2447a2d2f96c3f38Mathias Agopian enum StaticLinkage { kEmptyString }; 514485d0d966d062d1b45b635e2447a2d2f96c3f38Mathias Agopian 52cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project String16(); 534485d0d966d062d1b45b635e2447a2d2f96c3f38Mathias Agopian explicit String16(StaticLinkage); 54cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project String16(const String16& o); 55cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project String16(const String16& o, 56cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project size_t len, 57cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project size_t begin=0); 58cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project explicit String16(const char16_t* o); 59cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project explicit String16(const char16_t* o, size_t len); 60cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project explicit String16(const String8& o); 61cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project explicit String16(const char* o); 62cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project explicit String16(const char* o, size_t len); 63cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 64cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project ~String16(); 65cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 66cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline const char16_t* string() const; 67cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline size_t size() const; 68cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 69cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline const SharedBuffer* sharedBuffer() const; 70cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 71cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project void setTo(const String16& other); 72cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project status_t setTo(const char16_t* other); 73cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project status_t setTo(const char16_t* other, size_t len); 74cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project status_t setTo(const String16& other, 75cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project size_t len, 76cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project size_t begin=0); 77cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 78cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project status_t append(const String16& other); 79cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project status_t append(const char16_t* other, size_t len); 80cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 81cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline String16& operator=(const String16& other); 82cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 83cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline String16& operator+=(const String16& other); 84cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline String16 operator+(const String16& other) const; 85cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 86cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project status_t insert(size_t pos, const char16_t* chrs); 87cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project status_t insert(size_t pos, 88cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project const char16_t* chrs, size_t len); 89cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 90cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project ssize_t findFirst(char16_t c) const; 91cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project ssize_t findLast(char16_t c) const; 92cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 93cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project bool startsWith(const String16& prefix) const; 94cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project bool startsWith(const char16_t* prefix) const; 95cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 96cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project status_t makeLower(); 97cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 98cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project status_t replaceAll(char16_t replaceThis, 99cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project char16_t withThis); 100cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 101cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project status_t remove(size_t len, size_t begin=0); 102cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 103cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline int compare(const String16& other) const; 104cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 105cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline bool operator<(const String16& other) const; 106cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline bool operator<=(const String16& other) const; 107cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline bool operator==(const String16& other) const; 108cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline bool operator!=(const String16& other) const; 109cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline bool operator>=(const String16& other) const; 110cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline bool operator>(const String16& other) const; 111cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 112cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline bool operator<(const char16_t* other) const; 113cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline bool operator<=(const char16_t* other) const; 114cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline bool operator==(const char16_t* other) const; 115cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline bool operator!=(const char16_t* other) const; 116cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline bool operator>=(const char16_t* other) const; 117cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline bool operator>(const char16_t* other) const; 118cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 119cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project inline operator const char16_t*() const; 120cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 121cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectprivate: 122cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project const char16_t* mString; 123cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project}; 124cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 1259a0a76df1e961ef4621e81814d8bf891a09bef66Jeff Brown// String16 can be trivially moved using memcpy() because moving does not 1269a0a76df1e961ef4621e81814d8bf891a09bef66Jeff Brown// require any change to the underlying SharedBuffer contents or reference count. 1279a0a76df1e961ef4621e81814d8bf891a09bef66Jeff BrownANDROID_TRIVIAL_MOVE_TRAIT(String16) 1289a0a76df1e961ef4621e81814d8bf891a09bef66Jeff Brown 129cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project// --------------------------------------------------------------------------- 130cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project// No user servicable parts below. 131cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 132cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline int compare_type(const String16& lhs, const String16& rhs) 133cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 134cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return lhs.compare(rhs); 135cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 136cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 137cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline int strictly_order_type(const String16& lhs, const String16& rhs) 138cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 139cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return compare_type(lhs, rhs) < 0; 140cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 141cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 142cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline const char16_t* String16::string() const 143cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 144cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return mString; 145cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 146cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 147cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline size_t String16::size() const 148cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 149cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return SharedBuffer::sizeFromData(mString)/sizeof(char16_t)-1; 150cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 151cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 152cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline const SharedBuffer* String16::sharedBuffer() const 153cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 154cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return SharedBuffer::bufferFromData(mString); 155cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 156cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 157cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline String16& String16::operator=(const String16& other) 158cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 159cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project setTo(other); 160cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return *this; 161cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 162cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 163cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline String16& String16::operator+=(const String16& other) 164cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 165cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project append(other); 166cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return *this; 167cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 168cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 169cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline String16 String16::operator+(const String16& other) const 170cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 1719ee3fc4dc3219bc68f2efdffa38d6dfc158d8961Josiah Gaskin String16 tmp(*this); 172cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project tmp += other; 173cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return tmp; 174cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 175cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 176cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline int String16::compare(const String16& other) const 177cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 178cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return strzcmp16(mString, size(), other.mString, other.size()); 179cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 180cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 181cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline bool String16::operator<(const String16& other) const 182cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 183cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return strzcmp16(mString, size(), other.mString, other.size()) < 0; 184cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 185cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 186cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline bool String16::operator<=(const String16& other) const 187cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 188cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return strzcmp16(mString, size(), other.mString, other.size()) <= 0; 189cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 190cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 191cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline bool String16::operator==(const String16& other) const 192cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 1939d589aa0d63e1eb088b10f065ee7fb0765d2e285Brad Fitzpatrick return strzcmp16(mString, size(), other.mString, other.size()) == 0; 194cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 195cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 196cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline bool String16::operator!=(const String16& other) const 197cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 198cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return strzcmp16(mString, size(), other.mString, other.size()) != 0; 199cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 200cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 201cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline bool String16::operator>=(const String16& other) const 202cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 203cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return strzcmp16(mString, size(), other.mString, other.size()) >= 0; 204cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 205cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 206cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline bool String16::operator>(const String16& other) const 207cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 208cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return strzcmp16(mString, size(), other.mString, other.size()) > 0; 209cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 210cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 211cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline bool String16::operator<(const char16_t* other) const 212cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 213cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return strcmp16(mString, other) < 0; 214cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 215cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 216cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline bool String16::operator<=(const char16_t* other) const 217cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 218cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return strcmp16(mString, other) <= 0; 219cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 220cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 221cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline bool String16::operator==(const char16_t* other) const 222cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 223cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return strcmp16(mString, other) == 0; 224cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 225cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 226cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline bool String16::operator!=(const char16_t* other) const 227cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 228cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return strcmp16(mString, other) != 0; 229cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 230cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 231cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline bool String16::operator>=(const char16_t* other) const 232cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 233cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return strcmp16(mString, other) >= 0; 234cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 235cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 236cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline bool String16::operator>(const char16_t* other) const 237cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 238cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return strcmp16(mString, other) > 0; 239cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 240cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 241cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinline String16::operator const char16_t*() const 242cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project{ 243cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project return mString; 244cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project} 245cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 246cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project}; // namespace android 247cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 248cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project// --------------------------------------------------------------------------- 249cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 250cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project#endif // ANDROID_STRING16_H 251