/* * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "include/stagefright_string.h" #include namespace android { // static string::size_type string::npos = (string::size_type)-1; string::string() { } string::string(const char *s, size_t length) : mString(s, length) { } string::string(const string &from, size_type start, size_type length) { CHECK(start <= from.size()); if (length == npos) { length = from.size() - start; } else { CHECK(start + length <= from.size()); } mString.setTo(from.c_str() + start, length); } string::string(const char *s) : mString(s) { } const char *string::c_str() const { return mString.string(); } string::size_type string::size() const { return mString.length(); } void string::clear() { mString = String8(); } string::size_type string::find(char c) const { char s[2]; s[0] = c; s[1] = '\0'; ssize_t index = mString.find(s); return index < 0 ? npos : (size_type)index; } bool string::operator<(const string &other) const { return mString < other.mString; } bool string::operator==(const string &other) const { return mString == other.mString; } string &string::operator+=(char c) { mString.append(&c, 1); return *this; } void string::erase(size_t from, size_t length) { String8 s(mString.string(), from); s.append(mString.string() + from + length); mString = s; } } // namespace android