String16.h revision edbf3b6af777b721cd2a1ef461947e51e88241e1
1edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* 2edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * Copyright (C) 2005 The Android Open Source Project 3edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * 4edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * you may not use this file except in compliance with the License. 6edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * You may obtain a copy of the License at 7edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * 8edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * 10edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * See the License for the specific language governing permissions and 14edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * limitations under the License. 15edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */ 16edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 17edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#ifndef ANDROID_STRING16_H 18edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define ANDROID_STRING16_H 19edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 20edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#include <utils/Errors.h> 21edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#include <utils/SharedBuffer.h> 22edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 23edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#include <stdint.h> 24edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#include <sys/types.h> 25edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 26edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// --------------------------------------------------------------------------- 27edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 28edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectextern "C" { 29edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 30edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef uint16_t char16_t; 31edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 32edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// Standard string functions on char16 strings. 33edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectint strcmp16(const char16_t *, const char16_t *); 34edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectint strncmp16(const char16_t *s1, const char16_t *s2, size_t n); 35edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectsize_t strlen16(const char16_t *); 36edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectsize_t strnlen16(const char16_t *, size_t); 37edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectchar16_t *strcpy16(char16_t *, const char16_t *); 38edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectchar16_t *strncpy16(char16_t *, const char16_t *, size_t); 39edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 40edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// Version of comparison that supports embedded nulls. 41edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// This is different than strncmp() because we don't stop 42edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// at a nul character and consider the strings to be different 43edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// if the lengths are different (thus we need to supply the 44edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// lengths of both strings). This can also be used when 45edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// your string is not nul-terminated as it will have the 46edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// equivalent result as strcmp16 (unlike strncmp16). 47edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectint strzcmp16(const char16_t *s1, size_t n1, const char16_t *s2, size_t n2); 48edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 49edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// Version of strzcmp16 for comparing strings in different endianness. 50edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectint strzcmp16_h_n(const char16_t *s1H, size_t n1, const char16_t *s2N, size_t n2); 51edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 52edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 53edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 54edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// --------------------------------------------------------------------------- 55edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 56edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectnamespace android { 57edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 58edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectclass String8; 59edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectclass TextOutput; 60edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 61edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project//! This is a string holding UTF-16 characters. 62edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectclass String16 63edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 64edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectpublic: 65edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project String16(); 66edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project String16(const String16& o); 67edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project String16(const String16& o, 68edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project size_t len, 69edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project size_t begin=0); 70edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project explicit String16(const char16_t* o); 71edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project explicit String16(const char16_t* o, size_t len); 72edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project explicit String16(const String8& o); 73edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project explicit String16(const char* o); 74edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project explicit String16(const char* o, size_t len); 75edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 76edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project ~String16(); 77edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 78edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline const char16_t* string() const; 79edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline size_t size() const; 80edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 81edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline const SharedBuffer* sharedBuffer() const; 82edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 83edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project void setTo(const String16& other); 84edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project status_t setTo(const char16_t* other); 85edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project status_t setTo(const char16_t* other, size_t len); 86edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project status_t setTo(const String16& other, 87edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project size_t len, 88edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project size_t begin=0); 89edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 90edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project status_t append(const String16& other); 91edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project status_t append(const char16_t* other, size_t len); 92edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 93edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline String16& operator=(const String16& other); 94edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 95edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline String16& operator+=(const String16& other); 96edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline String16 operator+(const String16& other) const; 97edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 98edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project status_t insert(size_t pos, const char16_t* chrs); 99edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project status_t insert(size_t pos, 100edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project const char16_t* chrs, size_t len); 101edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 102edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project ssize_t findFirst(char16_t c) const; 103edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project ssize_t findLast(char16_t c) const; 104edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 105edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project bool startsWith(const String16& prefix) const; 106edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project bool startsWith(const char16_t* prefix) const; 107edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 108edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project status_t makeLower(); 109edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 110edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project status_t replaceAll(char16_t replaceThis, 111edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project char16_t withThis); 112edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 113edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project status_t remove(size_t len, size_t begin=0); 114edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 115edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline int compare(const String16& other) const; 116edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 117edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline bool operator<(const String16& other) const; 118edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline bool operator<=(const String16& other) const; 119edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline bool operator==(const String16& other) const; 120edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline bool operator!=(const String16& other) const; 121edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline bool operator>=(const String16& other) const; 122edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline bool operator>(const String16& other) const; 123edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 124edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline bool operator<(const char16_t* other) const; 125edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline bool operator<=(const char16_t* other) const; 126edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline bool operator==(const char16_t* other) const; 127edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline bool operator!=(const char16_t* other) const; 128edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline bool operator>=(const char16_t* other) const; 129edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline bool operator>(const char16_t* other) const; 130edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 131edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project inline operator const char16_t*() const; 132edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 133edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectprivate: 134edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project const char16_t* mString; 135edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project}; 136edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 137edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectTextOutput& operator<<(TextOutput& to, const String16& val); 138edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 139edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// --------------------------------------------------------------------------- 140edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// No user servicable parts below. 141edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 142edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline int compare_type(const String16& lhs, const String16& rhs) 143edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 144edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return lhs.compare(rhs); 145edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 146edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 147edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline int strictly_order_type(const String16& lhs, const String16& rhs) 148edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 149edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return compare_type(lhs, rhs) < 0; 150edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 151edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 152edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline const char16_t* String16::string() const 153edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 154edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return mString; 155edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 156edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 157edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline size_t String16::size() const 158edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 159edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return SharedBuffer::sizeFromData(mString)/sizeof(char16_t)-1; 160edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 161edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 162edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline const SharedBuffer* String16::sharedBuffer() const 163edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 164edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return SharedBuffer::bufferFromData(mString); 165edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 166edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 167edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline String16& String16::operator=(const String16& other) 168edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 169edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project setTo(other); 170edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return *this; 171edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 172edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 173edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline String16& String16::operator+=(const String16& other) 174edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 175edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project append(other); 176edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return *this; 177edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 178edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 179edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline String16 String16::operator+(const String16& other) const 180edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 181edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project String16 tmp; 182edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project tmp += other; 183edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return tmp; 184edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 185edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 186edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline int String16::compare(const String16& other) const 187edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 188edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return strzcmp16(mString, size(), other.mString, other.size()); 189edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 190edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 191edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline bool String16::operator<(const String16& other) const 192edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 193edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return strzcmp16(mString, size(), other.mString, other.size()) < 0; 194edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 195edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 196edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline bool String16::operator<=(const String16& other) const 197edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 198edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return strzcmp16(mString, size(), other.mString, other.size()) <= 0; 199edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 200edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 201edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline bool String16::operator==(const String16& other) const 202edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 203edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return strzcmp16(mString, size(), other.mString, other.size()) == 0; 204edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 205edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 206edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline bool String16::operator!=(const String16& other) const 207edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 208edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return strzcmp16(mString, size(), other.mString, other.size()) != 0; 209edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 210edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 211edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline bool String16::operator>=(const String16& other) const 212edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 213edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return strzcmp16(mString, size(), other.mString, other.size()) >= 0; 214edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 215edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 216edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline bool String16::operator>(const String16& other) const 217edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 218edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return strzcmp16(mString, size(), other.mString, other.size()) > 0; 219edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 220edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 221edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline bool String16::operator<(const char16_t* other) const 222edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 223edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return strcmp16(mString, other) < 0; 224edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 225edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 226edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline bool String16::operator<=(const char16_t* other) const 227edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 228edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return strcmp16(mString, other) <= 0; 229edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 230edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 231edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline bool String16::operator==(const char16_t* other) const 232edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 233edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return strcmp16(mString, other) == 0; 234edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 235edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 236edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline bool String16::operator!=(const char16_t* other) const 237edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 238edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return strcmp16(mString, other) != 0; 239edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 240edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 241edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline bool String16::operator>=(const char16_t* other) const 242edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 243edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return strcmp16(mString, other) >= 0; 244edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 245edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 246edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline bool String16::operator>(const char16_t* other) const 247edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 248edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return strcmp16(mString, other) > 0; 249edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 250edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 251edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectinline String16::operator const char16_t*() const 252edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project{ 253edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project return mString; 254edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 255edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 256edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project}; // namespace android 257edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 258edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// --------------------------------------------------------------------------- 259edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 260edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#endif // ANDROID_STRING16_H 261