OLD | NEW |
| (Empty) |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef PPAPI_CPP_DEV_VAR_DICTIONARY_DEV_H_ | |
6 #define PPAPI_CPP_DEV_VAR_DICTIONARY_DEV_H_ | |
7 | |
8 #include "ppapi/c/pp_bool.h" | |
9 #include "ppapi/cpp/dev/var_array_dev.h" | |
10 #include "ppapi/cpp/var.h" | |
11 | |
12 /// @file | |
13 /// This file defines the API for interacting with dictionary vars. | |
14 | |
15 namespace pp { | |
16 | |
17 class VarDictionary_Dev : public Var { | |
18 public: | |
19 /// Constructs a new dictionary var. | |
20 VarDictionary_Dev(); | |
21 | |
22 /// Constructs a <code>VarDictionary_Dev</code> given a var for which | |
23 /// is_dictionary() is true. This will refer to the same dictionary var, but | |
24 /// allow you to access methods specific to dictionary. | |
25 /// | |
26 /// @param[in] var A dictionary var. | |
27 explicit VarDictionary_Dev(const Var& var); | |
28 | |
29 /// Constructs a <code>VarDictionary_Dev</code> given a <code>PP_Var</code> | |
30 /// of type PP_VARTYPE_DICTIONARY. | |
31 /// | |
32 /// @param[in] var A <code>PP_Var</code> of type PP_VARTYPE_DICTIONARY. | |
33 explicit VarDictionary_Dev(const PP_Var& var); | |
34 | |
35 /// Copy constructor. | |
36 VarDictionary_Dev(const VarDictionary_Dev& other); | |
37 | |
38 virtual ~VarDictionary_Dev(); | |
39 | |
40 /// Assignment operator. | |
41 VarDictionary_Dev& operator=(const VarDictionary_Dev& other); | |
42 | |
43 /// The <code>Var</code> assignment operator is overridden here so that we can | |
44 /// check for assigning a non-dictionary var to a | |
45 /// <code>VarDictionary_Dev</code>. | |
46 /// | |
47 /// @param[in] other The dictionary var to be assigned. | |
48 /// | |
49 /// @return The resulting <code>VarDictionary_Dev</code> (as a | |
50 /// <code>Var</code>&). | |
51 virtual Var& operator=(const Var& other); | |
52 | |
53 /// Gets the value associated with the specified key. | |
54 /// | |
55 /// @param[in] key A string var. | |
56 /// | |
57 /// @return The value that is associated with <code>key</code>. If | |
58 /// <code>key</code> is not a string var, or it doesn't exist in the | |
59 /// dictionary, an undefined var is returned. | |
60 Var Get(const Var& key) const; | |
61 | |
62 /// Sets the value associated with the specified key. | |
63 /// | |
64 /// @param[in] key A string var. If this key hasn't existed in the dictionary, | |
65 /// it is added and associated with <code>value</code>; otherwise, the | |
66 /// previous value is replaced with <code>value</code>. | |
67 /// @param[in] value The value to set. | |
68 /// | |
69 /// @return A <code>PP_Bool</code> indicating whether the operation succeeds. | |
70 PP_Bool Set(const Var& key, const Var& value); | |
71 | |
72 /// Deletes the specified key and its associated value, if the key exists. | |
73 /// | |
74 /// @param[in] key A string var. | |
75 void Delete(const Var& key); | |
76 | |
77 /// Checks whether a key exists. | |
78 /// | |
79 /// @param[in] key A string var. | |
80 /// | |
81 /// @return A <code>PP_Bool</code> indicating whether the key exists. | |
82 PP_Bool HasKey(const Var& key) const; | |
83 | |
84 /// Gets all the keys in the dictionary. | |
85 /// | |
86 /// @return An array var which contains all the keys of the dictionary. | |
87 /// The elements are string vars. Returns an empty array var if failed. | |
88 VarArray_Dev GetKeys() const; | |
89 }; | |
90 | |
91 } // namespace pp | |
92 | |
93 #endif // PPAPI_CPP_DEV_VAR_DICTIONARY_DEV_H_ | |
OLD | NEW |