summaryrefslogtreecommitdiffstats
path: root/gpu/np_utils/np_utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'gpu/np_utils/np_utils.h')
-rw-r--r--gpu/np_utils/np_utils.h271
1 files changed, 0 insertions, 271 deletions
diff --git a/gpu/np_utils/np_utils.h b/gpu/np_utils/np_utils.h
deleted file mode 100644
index 5c7e3b7..0000000
--- a/gpu/np_utils/np_utils.h
+++ /dev/null
@@ -1,271 +0,0 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef GPU_NP_UTILS_NP_UTILS_H_
-#define GPU_NP_UTILS_NP_UTILS_H_
-
-#include <string>
-
-#include "gpu/np_utils/np_browser.h"
-#include "gpu/np_utils/np_class.h"
-#include "gpu/np_utils/np_object_pointer.h"
-#include "gpu/np_utils/np_headers.h"
-
-namespace np_utils {
-
-// Convert NPVariant to C++ type. Returns whether the conversion was successful.
-bool NPVariantToValue(bool* value, const NPVariant& variant);
-bool NPVariantToValue(int32* value, const NPVariant& variant);
-bool NPVariantToValue(float* value, const NPVariant& variant);
-bool NPVariantToValue(double* value, const NPVariant& variant);
-bool NPVariantToValue(std::string* value, const NPVariant& variant);
-
-template <typename T>
-bool NPVariantToValue(NPObjectPointer<T>* value,
- const NPVariant& variant) {
- if (NPVARIANT_IS_NULL(variant)) {
- *value = NPObjectPointer<T>();
- return true;
- } else if (NPVARIANT_IS_OBJECT(variant)) {
- NPObject* object = NPVARIANT_TO_OBJECT(variant);
- if (object->_class == NPGetClass<T>()) {
- *value = NPObjectPointer<T>(static_cast<T*>(
- NPVARIANT_TO_OBJECT(variant)));
- return true;
- }
- }
-
- return false;
-}
-
-// Specialization for NPObject does not check for mismatched NPClass.
-template <>
-inline bool NPVariantToValue(NPObjectPointer<NPObject>* value,
- const NPVariant& variant) {
- if (NPVARIANT_IS_NULL(variant)) {
- *value = NPObjectPointer<NPObject>();
- return true;
- } else if (NPVARIANT_IS_OBJECT(variant)) {
- *value = NPObjectPointer<NPObject>(NPVARIANT_TO_OBJECT(variant));
- return true;
- }
-
- return false;
-}
-
-// Convert C++ type to NPVariant.
-void ValueToNPVariant(bool value, NPVariant* variant);
-void ValueToNPVariant(int32 value, NPVariant* variant);
-void ValueToNPVariant(float value, NPVariant* variant);
-void ValueToNPVariant(double value, NPVariant* variant);
-void ValueToNPVariant(const std::string& value, NPVariant* variant);
-
-template <typename T>
-void ValueToNPVariant(const NPObjectPointer<T>& value,
- NPVariant* variant) {
- if (value.Get()) {
- NPBrowser::get()->RetainObject(value.Get());
- OBJECT_TO_NPVARIANT(value.Get(), *variant);
- } else {
- NULL_TO_NPVARIANT(*variant);
- }
-}
-
-// NPVariant that automatically manages lifetime of string and object variants.
-class SmartNPVariant : public NPVariant {
- public:
- SmartNPVariant();
- SmartNPVariant(const SmartNPVariant& rhs);
- explicit SmartNPVariant(const NPVariant& rhs);
-
- template <typename T>
- explicit SmartNPVariant(const T& v) {
- ValueToNPVariant(v, this);
- }
-
- ~SmartNPVariant();
-
- SmartNPVariant& operator=(const SmartNPVariant& rhs);
- SmartNPVariant& operator=(const NPVariant& rhs);
-
- template <typename T>
- bool GetValue(T* v) const {
- return NPVariantToValue(v, *this);
- }
-
- bool IsVoid() const;
-
- template <typename T>
- void SetValue(const T& v) {
- Release();
- ValueToNPVariant(v, this);
- }
-
- void CopyTo(NPVariant* target) const;
-
- // Sets the variant to void.
- void Release();
-
- // Called when an NPObject is invalidated to clear any references to other
- // NPObjects. Does not release the object as it might no longer be valid.
- void Invalidate();
-};
-
-// These allow a method to be invoked with automatic conversion of C++
-// types to variants for arguments and return values.
-
-bool NPHasMethod(NPP npp,
- const NPObjectPointer<NPObject>& object,
- const NPUTF8* name);
-
-inline bool NPInvokeVoid(NPP npp,
- const NPObjectPointer<NPObject>& object,
- const NPUTF8* name) {
- SmartNPVariant result;
- return NPBrowser::get()->Invoke(
- npp,
- object.Get(),
- NPBrowser::get()->GetStringIdentifier(name),
- NULL, 0,
- &result);
-}
-
-template<typename R>
-bool NPInvoke(NPP npp,
- const NPObjectPointer<NPObject>& object,
- const NPUTF8* name,
- R* r) {
- SmartNPVariant result;
- if (NPBrowser::get()->Invoke(
- npp,
- object.Get(),
- NPBrowser::get()->GetStringIdentifier(name),
- NULL, 0,
- &result)) {
- return result.GetValue(r);
- }
- return false;
-}
-
-template<typename P0>
-bool NPInvokeVoid(NPP npp,
- const NPObjectPointer<NPObject>& object,
- const NPUTF8* name,
- P0 p0) {
- SmartNPVariant args[1];
- args[0].SetValue(p0);
- SmartNPVariant result;
- return NPBrowser::get()->Invoke(
- npp,
- object.Get(),
- NPBrowser::get()->GetStringIdentifier(name),
- &args[0], 1,
- &result);
-}
-
-template<typename R, typename P0>
-bool NPInvoke(NPP npp,
- const NPObjectPointer<NPObject>& object,
- const NPUTF8* name,
- P0 p0,
- R* r) {
- SmartNPVariant args[1];
- args[0].SetValue(p0);
- SmartNPVariant result;
- if (NPBrowser::get()->Invoke(
- npp,
- object.Get(),
- NPBrowser::get()->GetStringIdentifier(name),
- &args[0], 1,
- &result)) {
- return result.GetValue(r);
- }
- return false;
-}
-
-template<typename P0, typename P1>
-bool NPInvokeVoid(NPP npp,
- const NPObjectPointer<NPObject>& object,
- const NPUTF8* name,
- P0 p0, P1 p1) {
- SmartNPVariant args[2];
- args[0].SetValue(p0);
- args[1].SetValue(p1);
- SmartNPVariant result;
- return NPBrowser::get()->Invoke(
- npp,
- object.Get(),
- NPBrowser::get()->GetStringIdentifier(name),
- &args[0], 2,
- &result);
-}
-
-template<typename R, typename P0, typename P1>
-bool NPInvoke(NPP npp,
- const NPObjectPointer<NPObject>& object,
- const NPUTF8* name,
- P0 p0, P1 p1,
- R* r) {
- SmartNPVariant args[2];
- args[0].SetValue(p0);
- args[1].SetValue(p1);
- SmartNPVariant result;
- if (NPBrowser::get()->Invoke(
- npp,
- object.Get(),
- NPBrowser::get()->GetStringIdentifier(name),
- &args[0], 2,
- &result)) {
- return result.GetValue(r);
- }
- return false;
-}
-
-bool NPHasProperty(NPP npp,
- const NPObjectPointer<NPObject>& object,
- const NPUTF8* name);
-
-template <typename T>
-bool NPGetProperty(NPP npp,
- const NPObjectPointer<NPObject>& object,
- const NPUTF8* name,
- T* value) {
- SmartNPVariant result;
- if (NPBrowser::get()->GetProperty(npp,
- object.Get(),
- NPBrowser::get()->GetStringIdentifier(name),
- &result)) {
- return result.GetValue(value);
- }
- return false;
-}
-
-template <typename T>
-bool NPSetProperty(NPP npp,
- const NPObjectPointer<NPObject>& object,
- const NPUTF8* name,
- const T& value) {
- SmartNPVariant variant(value);
- return NPBrowser::get()->SetProperty(
- npp,
- object.Get(),
- NPBrowser::get()->GetStringIdentifier(name),
- &variant);
-}
-
-bool NPRemoveProperty(NPP npp,
- const NPObjectPointer<NPObject>& object,
- const NPUTF8* name);
-
-template <typename NPObjectType>
-NPObjectPointer<NPObjectType> NPCreateObject(NPP npp) {
- const NPClass* np_class = NPGetClass<NPObjectType>();
- NPObjectType* object = static_cast<NPObjectType*>(
- NPBrowser::get()->CreateObject(npp, np_class));
- return NPObjectPointer<NPObjectType>::FromReturned(object);
-}
-
-} // namespace np_utils
-
-#endif // GPU_NP_UTILS_NP_UTILS_H_