• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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()15 CEF_EXPORT cef_string_list_t cef_string_list_alloc() {
16   return new StringList;
17 }
18 
cef_string_list_size(cef_string_list_t list)19 CEF_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)25 CEF_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)38 CEF_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)45 CEF_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)51 CEF_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)57 CEF_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