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