// Copyright (c) 2009 The Chromium Embedded Framework Authors. All rights // reserved. Use of this source code is governed by a BSD-style license that // can be found in the LICENSE file. #include #include "include/internal/cef_string_list.h" #include "base/logging.h" namespace { using StringList = std::vector; } // namespace CEF_EXPORT cef_string_list_t cef_string_list_alloc() { return new StringList; } CEF_EXPORT size_t cef_string_list_size(cef_string_list_t list) { DCHECK(list); StringList* impl = reinterpret_cast(list); return impl->size(); } CEF_EXPORT int cef_string_list_value(cef_string_list_t list, size_t index, cef_string_t* value) { DCHECK(list); DCHECK(value); StringList* impl = reinterpret_cast(list); DCHECK_LT(index, impl->size()); if (index >= impl->size()) { return false; } const CefString& str = (*impl)[index]; return cef_string_copy(str.c_str(), str.length(), value); } CEF_EXPORT void cef_string_list_append(cef_string_list_t list, const cef_string_t* value) { DCHECK(list); StringList* impl = reinterpret_cast(list); impl->push_back(CefString(value)); } CEF_EXPORT void cef_string_list_clear(cef_string_list_t list) { DCHECK(list); StringList* impl = reinterpret_cast(list); impl->clear(); } CEF_EXPORT void cef_string_list_free(cef_string_list_t list) { DCHECK(list); StringList* impl = reinterpret_cast(list); delete impl; } CEF_EXPORT cef_string_list_t cef_string_list_copy(cef_string_list_t list) { DCHECK(list); StringList* impl = reinterpret_cast(list); return new StringList(*impl); }