1 // Copyright (c) 2009 The Chromium Embedded Framework Authors. All rights 2 // reserved. Use of this source code is governed by a BSD-style license that 3 // can be found in the LICENSE file. 4 5 #include <vector> 6 7 #include "include/internal/cef_string_list.h" 8 9 #include "base/logging.h" 10 11 namespace { 12 using StringList = std::vector<CefString>; 13 } // namespace 14 cef_string_list_alloc()15CEF_EXPORT cef_string_list_t cef_string_list_alloc() { 16 return new StringList; 17 } 18 cef_string_list_size(cef_string_list_t list)19CEF_EXPORT size_t cef_string_list_size(cef_string_list_t list) { 20 DCHECK(list); 21 StringList* impl = reinterpret_cast<StringList*>(list); 22 return impl->size(); 23 } 24 cef_string_list_value(cef_string_list_t list,size_t index,cef_string_t * value)25CEF_EXPORT int cef_string_list_value(cef_string_list_t list, 26 size_t index, 27 cef_string_t* value) { 28 DCHECK(list); 29 DCHECK(value); 30 StringList* impl = reinterpret_cast<StringList*>(list); 31 DCHECK_LT(index, impl->size()); 32 if (index >= impl->size()) 33 return false; 34 const CefString& str = (*impl)[index]; 35 return cef_string_copy(str.c_str(), str.length(), value); 36 } 37 cef_string_list_append(cef_string_list_t list,const cef_string_t * value)38CEF_EXPORT void cef_string_list_append(cef_string_list_t list, 39 const cef_string_t* value) { 40 DCHECK(list); 41 StringList* impl = reinterpret_cast<StringList*>(list); 42 impl->push_back(CefString(value)); 43 } 44 cef_string_list_clear(cef_string_list_t list)45CEF_EXPORT void cef_string_list_clear(cef_string_list_t list) { 46 DCHECK(list); 47 StringList* impl = reinterpret_cast<StringList*>(list); 48 impl->clear(); 49 } 50 cef_string_list_free(cef_string_list_t list)51CEF_EXPORT void cef_string_list_free(cef_string_list_t list) { 52 DCHECK(list); 53 StringList* impl = reinterpret_cast<StringList*>(list); 54 delete impl; 55 } 56 cef_string_list_copy(cef_string_list_t list)57CEF_EXPORT cef_string_list_t cef_string_list_copy(cef_string_list_t list) { 58 DCHECK(list); 59 StringList* impl = reinterpret_cast<StringList*>(list); 60 return new StringList(*impl); 61 } 62