Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(520)

Side by Side Diff: o3d/gpu_plugin/np_utils/np_utils.h

Issue 196032: Replaced BaseNPObject with DefaultNPObject because...... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 O3D_GPU_PLUGIN_NP_UTILS_NP_UTILS_H_ 5 #ifndef O3D_GPU_PLUGIN_NP_UTILS_NP_UTILS_H_
6 #define O3D_GPU_PLUGIN_NP_UTILS_NP_UTILS_H_ 6 #define O3D_GPU_PLUGIN_NP_UTILS_NP_UTILS_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "o3d/gpu_plugin/np_utils/np_browser.h" 10 #include "o3d/gpu_plugin/np_utils/np_browser.h"
11 #include "o3d/gpu_plugin/np_utils/np_class.h"
11 #include "o3d/gpu_plugin/np_utils/np_object_pointer.h" 12 #include "o3d/gpu_plugin/np_utils/np_object_pointer.h"
12 #include "third_party/npapi/bindings/npapi.h" 13 #include "third_party/npapi/bindings/npapi.h"
13 #include "third_party/npapi/bindings/npruntime.h" 14 #include "third_party/npapi/bindings/npruntime.h"
14 15
15 namespace o3d { 16 namespace o3d {
16 namespace gpu_plugin { 17 namespace gpu_plugin {
17 18
18 // Convert NPVariant to C++ type. Returns whether the conversion was successful. 19 // Convert NPVariant to C++ type. Returns whether the conversion was successful.
19 bool NPVariantToValue(bool* value, const NPVariant& variant); 20 bool NPVariantToValue(bool* value, const NPVariant& variant);
20 bool NPVariantToValue(int32* value, const NPVariant& variant); 21 bool NPVariantToValue(int32* value, const NPVariant& variant);
21 bool NPVariantToValue(float* value, const NPVariant& variant); 22 bool NPVariantToValue(float* value, const NPVariant& variant);
22 bool NPVariantToValue(double* value, const NPVariant& variant); 23 bool NPVariantToValue(double* value, const NPVariant& variant);
23 bool NPVariantToValue(std::string* value, const NPVariant& variant); 24 bool NPVariantToValue(std::string* value, const NPVariant& variant);
24 25
25 template <typename T> 26 template <typename T>
26 bool NPVariantToValue(NPObjectPointer<T>* value, 27 bool NPVariantToValue(NPObjectPointer<T>* value,
27 const NPVariant& variant) { 28 const NPVariant& variant) {
28 if (NPVARIANT_IS_NULL(variant)) { 29 if (NPVARIANT_IS_NULL(variant)) {
29 *value = NPObjectPointer<T>(); 30 *value = NPObjectPointer<T>();
30 return true; 31 return true;
31 } else if (NPVARIANT_IS_OBJECT(variant)) { 32 } else if (NPVARIANT_IS_OBJECT(variant)) {
32 NPObject* object = NPVARIANT_TO_OBJECT(variant); 33 NPObject* object = NPVARIANT_TO_OBJECT(variant);
33 if (object->_class == BaseNPObject::GetNPClass<T>()) { 34 if (object->_class == NPGetClass<T>()) {
34 *value = NPObjectPointer<T>(static_cast<T*>( 35 *value = NPObjectPointer<T>(static_cast<T*>(
35 NPVARIANT_TO_OBJECT(variant))); 36 NPVARIANT_TO_OBJECT(variant)));
36 return true; 37 return true;
37 } 38 }
38 } 39 }
39 40
40 return false; 41 return false;
41 } 42 }
42 43
43 // Specialization for NPObject does not check for mismatched NPClass. 44 // Specialization for NPObject does not check for mismatched NPClass.
(...skipping 27 matching lines...) Expand all
71 } else { 72 } else {
72 NULL_TO_NPVARIANT(*variant); 73 NULL_TO_NPVARIANT(*variant);
73 } 74 }
74 } 75 }
75 76
76 // NPVariant that automatically manages lifetime of string and object variants. 77 // NPVariant that automatically manages lifetime of string and object variants.
77 class SmartNPVariant : public NPVariant { 78 class SmartNPVariant : public NPVariant {
78 public: 79 public:
79 SmartNPVariant(); 80 SmartNPVariant();
80 SmartNPVariant(const SmartNPVariant& rhs); 81 SmartNPVariant(const SmartNPVariant& rhs);
81 SmartNPVariant(const NPVariant& rhs); 82 explicit SmartNPVariant(const NPVariant& rhs);
82 83
83 template <typename T> 84 template <typename T>
84 explicit SmartNPVariant(const T& v) { 85 explicit SmartNPVariant(const T& v) {
85 ValueToNPVariant(v, this); 86 ValueToNPVariant(v, this);
86 } 87 }
87 88
88 ~SmartNPVariant(); 89 ~SmartNPVariant();
89 90
90 SmartNPVariant& operator=(const SmartNPVariant& rhs); 91 SmartNPVariant& operator=(const SmartNPVariant& rhs);
91 SmartNPVariant& operator=(const NPVariant& rhs); 92 SmartNPVariant& operator=(const NPVariant& rhs);
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 NPBrowser::get()->GetStringIdentifier(name), 255 NPBrowser::get()->GetStringIdentifier(name),
255 &variant); 256 &variant);
256 } 257 }
257 258
258 bool NPRemoveProperty(NPP npp, 259 bool NPRemoveProperty(NPP npp,
259 const NPObjectPointer<NPObject>& object, 260 const NPObjectPointer<NPObject>& object,
260 const NPUTF8* name); 261 const NPUTF8* name);
261 262
262 template <typename NPObjectType> 263 template <typename NPObjectType>
263 NPObjectPointer<NPObjectType> NPCreateObject(NPP npp) { 264 NPObjectPointer<NPObjectType> NPCreateObject(NPP npp) {
264 const NPClass* np_class = BaseNPObject::GetNPClass<NPObjectType>(); 265 const NPClass* np_class = NPGetClass<NPObjectType>();
265 NPObjectType* object = static_cast<NPObjectType*>( 266 NPObjectType* object = static_cast<NPObjectType*>(
266 NPBrowser::get()->CreateObject(npp, np_class)); 267 NPBrowser::get()->CreateObject(npp, np_class));
267 return NPObjectPointer<NPObjectType>::FromReturned(object); 268 return NPObjectPointer<NPObjectType>::FromReturned(object);
268 } 269 }
269 270
270 } // namespace gpu_plugin 271 } // namespace gpu_plugin
271 } // namespace o3d 272 } // namespace o3d
272 273
273 #endif // O3D_GPU_PLUGIN_NP_UTILS_NP_UTILS_H_ 274 #endif // O3D_GPU_PLUGIN_NP_UTILS_NP_UTILS_H_
OLDNEW
« no previous file with comments | « o3d/gpu_plugin/np_utils/np_object_pointer_unittest.cc ('k') | o3d/gpu_plugin/np_utils/np_utils_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698