summaryrefslogtreecommitdiffstats
path: root/ppapi/c/dev/ppp_class_deprecated.h
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/c/dev/ppp_class_deprecated.h')
-rw-r--r--ppapi/c/dev/ppp_class_deprecated.h134
1 files changed, 134 insertions, 0 deletions
diff --git a/ppapi/c/dev/ppp_class_deprecated.h b/ppapi/c/dev/ppp_class_deprecated.h
new file mode 100644
index 0000000..d8a1349
--- /dev/null
+++ b/ppapi/c/dev/ppp_class_deprecated.h
@@ -0,0 +1,134 @@
+// Copyright (c) 2010 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 PPAPI_C_PPP_CLASS_DEPRECATED_H_
+#define PPAPI_C_PPP_CLASS_DEPRECATED_H_
+
+#include "ppapi/c/pp_stdint.h"
+#include "ppapi/c/pp_var.h"
+
+/**
+ * @file
+ * Defines the PPP_Class_Deprecated struct.
+ *
+ * @addtogroup PPP
+ * @{
+ */
+
+struct PP_Var;
+
+/**
+ * Interface for the plugin to implement JavaScript-accessible objects.
+ *
+ * This interface has no interface name. Instead, the plugin passes a pointer
+ * to this interface to PPB_Var_Deprecated.CreateObject that corresponds to the
+ * object being implemented.
+ *
+ * See the PPB_Var_Deprecated interface for more information on these functions.
+ * This interface just allows you to implement the "back end" of those
+ * functions, so most of the contract is specified in that interface.
+ *
+ * See
+ * http://code.google.com/p/ppapi/wiki/InterfacingWithJavaScript
+ * for general information on using and implementing vars.
+ */
+struct PPP_Class_Deprecated {
+ /**
+ * |name| is guaranteed to be an integer or string type var. Exception is
+ * guaranteed non-NULL. An integer is used for |name| when implementing
+ * array access into the object. This test should only return true for
+ * properties that are not methods. Use HasMethod() to handle methods.
+ */
+ bool (*HasProperty)(void* object,
+ struct PP_Var name,
+ struct PP_Var* exception);
+
+ /**
+ * |name| is guaranteed to be a string-type. Exception is guaranteed non-NULL.
+ * If the method does not exist, return false and don't set the exception.
+ * Errors in this function will probably not occur in general usage, but
+ * if you need to throw an exception, still return false.
+ */
+ bool (*HasMethod)(void* object,
+ struct PP_Var name,
+ struct PP_Var* exception);
+
+ /**
+ * |name| is guaranteed to be a string-type or an integer-type var. Exception
+ * is guaranteed non-NULL. An integer is used for |name| when implementing
+ * array access into the object. If the property does not exist, set the
+ * exception and return a var of type Void. A property does not exist if
+ * a call HasProperty() for the same |name| would return false.
+ */
+ struct PP_Var (*GetProperty)(void* object,
+ struct PP_Var name,
+ struct PP_Var* exception);
+
+ /**
+ * Exception is guaranteed non-NULL.
+ *
+ * This should include all enumerable properties, including methods. Be sure
+ * to set |*property_count| to 0 and |properties| to NULL in all failure
+ * cases, these should never be unset when calling this function. The
+ * pointers passed in are guaranteed not to be NULL, so you don't have to
+ * NULL check them.
+ *
+ * If you have any properties, allocate the property array with
+ * PPB_Core.MemAlloc(sizeof(PP_Var) * property_count) and add a reference
+ * to each property on behalf of the caller. The caller is responsible for
+ * Release()ing each var and calling PPB_Core.MemFree on the property pointer.
+ */
+ void (*GetAllPropertyNames)(void* object,
+ uint32_t* property_count,
+ struct PP_Var** properties,
+ struct PP_Var* exception);
+
+ /**
+ * |name| is guaranteed to be an integer or string type var. Exception is
+ * guaranteed non-NULL.
+ */
+ void (*SetProperty)(void* object,
+ struct PP_Var name,
+ struct PP_Var value,
+ struct PP_Var* exception);
+
+ /**
+ * |name| is guaranteed to be an integer or string type var. Exception is
+ * guaranteed non-NULL.
+ */
+ void (*RemoveProperty)(void* object,
+ struct PP_Var name,
+ struct PP_Var* exception);
+
+ // TODO(brettw) need native array access here.
+
+ /**
+ * |name| is guaranteed to be a string type var. Exception is guaranteed
+ * non-NULL
+ */
+ struct PP_Var (*Call)(void* object,
+ struct PP_Var method_name,
+ uint32_t argc,
+ struct PP_Var* argv,
+ struct PP_Var* exception);
+
+ /** Exception is guaranteed non-NULL. */
+ struct PP_Var (*Construct)(void* object,
+ uint32_t argc,
+ struct PP_Var* argv,
+ struct PP_Var* exception);
+
+ /**
+ * Called when the reference count of the object reaches 0. Normally, plugins
+ * would free their internal data pointed to by the |object| pointer.
+ */
+ void (*Deallocate)(void* object);
+};
+
+/**
+ * @}
+ * End addtogroup PPP
+ */
+#endif // PPAPI_C_PPP_CLASS_DEPRECATED_H_
+