OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef PPAPI_CPP_VAR_H_ | 5 #ifndef PPAPI_CPP_VAR_H_ |
6 #define PPAPI_CPP_VAR_H_ | 6 #define PPAPI_CPP_VAR_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "ppapi/c/pp_var.h" | 11 #include "ppapi/c/pp_var.h" |
12 #include "ppapi/cpp/pass_ref.h" | 12 #include "ppapi/cpp/pass_ref.h" |
| 13 #include "ppapi/cpp/resource.h" |
13 | 14 |
14 /// @file | 15 /// @file |
15 /// This file defines the API for handling the passing of data types between | 16 /// This file defines the API for handling the passing of data types between |
16 /// your module and the page. | 17 /// your module and the page. |
17 namespace pp { | 18 namespace pp { |
18 | 19 |
19 /// A generic type used for passing data types between the module and the page. | 20 /// A generic type used for passing data types between the module and the page. |
20 class Var { | 21 class Var { |
21 public: | 22 public: |
22 /// Special value passed to constructor to make <code>NULL</code>. | 23 /// Special value passed to constructor to make <code>NULL</code>. |
(...skipping 20 matching lines...) Expand all Loading... |
43 /// | 44 /// |
44 /// @param[in] d A double value. | 45 /// @param[in] d A double value. |
45 Var(double d); | 46 Var(double d); |
46 | 47 |
47 /// A constructor used to create a UTF-8 character <code>Var</code>. | 48 /// A constructor used to create a UTF-8 character <code>Var</code>. |
48 Var(const char* utf8_str); // Must be encoded in UTF-8. | 49 Var(const char* utf8_str); // Must be encoded in UTF-8. |
49 | 50 |
50 /// A constructor used to create a UTF-8 character <code>Var</code>. | 51 /// A constructor used to create a UTF-8 character <code>Var</code>. |
51 Var(const std::string& utf8_str); // Must be encoded in UTF-8. | 52 Var(const std::string& utf8_str); // Must be encoded in UTF-8. |
52 | 53 |
| 54 /// A constructor used to create a resource <code>Var</code>. |
| 55 explicit Var(const pp::Resource& resource); |
| 56 |
53 /// A constructor used when you have received a <code>Var</code> as a return | 57 /// A constructor used when you have received a <code>Var</code> as a return |
54 /// value that has had its reference count incremented for you. | 58 /// value that has had its reference count incremented for you. |
55 /// | 59 /// |
56 /// You will not normally need to use this constructor because | 60 /// You will not normally need to use this constructor because |
57 /// the reference count will not normally be incremented for you. | 61 /// the reference count will not normally be incremented for you. |
58 Var(PassRef, const PP_Var& var) { | 62 Var(PassRef, const PP_Var& var) { |
59 var_ = var; | 63 var_ = var; |
60 is_managed_ = true; | 64 is_managed_ = true; |
61 } | 65 } |
62 | 66 |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 /// | 206 /// |
203 /// @return An double version of this <code>Var</code>. | 207 /// @return An double version of this <code>Var</code>. |
204 double AsDouble() const; | 208 double AsDouble() const; |
205 | 209 |
206 /// AsString() converts this <code>Var</code> to a string. If this object is | 210 /// AsString() converts this <code>Var</code> to a string. If this object is |
207 /// not a string, it will assert in debug mode, and return an empty string. | 211 /// not a string, it will assert in debug mode, and return an empty string. |
208 /// | 212 /// |
209 /// @return A string version of this <code>Var</code>. | 213 /// @return A string version of this <code>Var</code>. |
210 std::string AsString() const; | 214 std::string AsString() const; |
211 | 215 |
| 216 /// Gets the resource contained in the var. If this object is not a resource, |
| 217 /// it will assert in debug mode, and return a null resource. |
| 218 /// |
| 219 /// @return The <code>pp::Resource</code> that is contained in the var. |
| 220 pp::Resource AsResource() const; |
| 221 |
212 /// This function returns the internal <code>PP_Var</code> | 222 /// This function returns the internal <code>PP_Var</code> |
213 /// managed by this <code>Var</code> object. | 223 /// managed by this <code>Var</code> object. |
214 /// | 224 /// |
215 /// @return A const reference to a <code>PP_Var</code>. | 225 /// @return A const reference to a <code>PP_Var</code>. |
216 const PP_Var& pp_var() const { | 226 const PP_Var& pp_var() const { |
217 return var_; | 227 return var_; |
218 } | 228 } |
219 | 229 |
220 /// Detach() detaches from the internal <code>PP_Var</code> of this | 230 /// Detach() detaches from the internal <code>PP_Var</code> of this |
221 /// object, keeping the reference count the same. This is used when returning | 231 /// object, keeping the reference count the same. This is used when returning |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 private: | 314 private: |
305 // Prevent an arbitrary pointer argument from being implicitly converted to | 315 // Prevent an arbitrary pointer argument from being implicitly converted to |
306 // a bool at Var construction. If somebody makes such a mistake, (s)he will | 316 // a bool at Var construction. If somebody makes such a mistake, (s)he will |
307 // get a compilation error. | 317 // get a compilation error. |
308 Var(void* non_scriptable_object_pointer); | 318 Var(void* non_scriptable_object_pointer); |
309 }; | 319 }; |
310 | 320 |
311 } // namespace pp | 321 } // namespace pp |
312 | 322 |
313 #endif // PPAPI_CPP_VAR_H_ | 323 #endif // PPAPI_CPP_VAR_H_ |
OLD | NEW |