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

Side by Side Diff: ppapi/c/ppb_class.h

Issue 4310002: Make PPAPI headers compile with C compilers (gcc on Linux & Mac and MSVS on W... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 1 month 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
« no previous file with comments | « ppapi/c/pp_var.h ('k') | ppapi/c/ppb_core.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_C_PPB_CLASS_H_ 5 #ifndef PPAPI_C_PPB_CLASS_H_
6 #define PPAPI_C_PPB_CLASS_H_ 6 #define PPAPI_C_PPB_CLASS_H_
7 7
8 #include "ppapi/c/pp_module.h" 8 #include "ppapi/c/pp_module.h"
9 #include "ppapi/c/pp_resource.h" 9 #include "ppapi/c/pp_resource.h"
10 #include "ppapi/c/pp_stdint.h" 10 #include "ppapi/c/pp_stdint.h"
11 #include "ppapi/c/pp_var.h"
11 #include "ppapi/c/ppb_var.h" 12 #include "ppapi/c/ppb_var.h"
12 13
13 #define PPB_CLASS_INTERFACE "PPB_Class;0.1" 14 #define PPB_CLASS_INTERFACE "PPB_Class;0.2"
14 15
15 /** 16 /**
16 * @file 17 * @file
17 * Defines the PPB_Class struct. 18 * Defines the PPB_Class struct.
18 * 19 *
19 * @addtogroup PPB 20 * @addtogroup PPB
20 * @{ 21 * @{
21 */ 22 */
22 23
23 /** 24 /**
24 * Function callback. 25 * Function callback.
25 * 26 *
26 * native_ptr will always be the native_ptr used to create this_object. If 27 * native_ptr will always be the native_ptr used to create this_object. If
27 * this object was not created in this module, native_ptr will be NULL. There 28 * this object was not created in this module, native_ptr will be NULL. There
28 * is no other type protection - if your module contains two objects with 29 * is no other type protection - if your module contains two objects with
29 * different native_ptr information, make sure you can handle the case of 30 * different native_ptr information, make sure you can handle the case of
30 * JS calling one object's function with another object set as this. 31 * JS calling one object's function with another object set as this.
31 */ 32 */
32 typedef PP_Var (*PP_ClassFunction)(void* native_ptr, PP_Var this_object, 33 typedef struct PP_Var (*PP_ClassFunction)(void* native_ptr,
33 PP_Var* args, uint32_t argc, 34 struct PP_Var this_object, /*NOLINT*/
34 PP_Var* exception); 35 struct PP_Var* args,
36 uint32_t argc,
37 struct PP_Var* exception);
35 38
36 typedef void (*PP_ClassDestructor)(void* native_ptr); 39 typedef void (*PP_ClassDestructor)(void* native_ptr);
37 40
38 /** 41 /**
39 * One property of a class. 42 * One property of a class.
40 * 43 *
41 * It can be either a value property, in which case it need to have getter 44 * It can be either a value property, in which case it need to have getter
42 * and/or setter fields set, and method NULL, or a function, in which case it 45 * and/or setter fields set, and method NULL, or a function, in which case it
43 * needs to have method set, and getter/setter set to NULL. It is an error to 46 * needs to have method set, and getter/setter set to NULL. It is an error to
44 * have method and either getter or setter set, as it is an error to not provide 47 * have method and either getter or setter set, as it is an error to not provide
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 * created using Instantiate(). Each instance carries one void* of native 97 * created using Instantiate(). Each instance carries one void* of native
95 * state, which is passed to Instantiate(). When the instance is finalized, 98 * state, which is passed to Instantiate(). When the instance is finalized,
96 * the destructor function is called to destruct the native state. 99 * the destructor function is called to destruct the native state.
97 * 100 *
98 * If invoke handler is specified, then the instances can be used as 101 * If invoke handler is specified, then the instances can be used as
99 * functions. 102 * functions.
100 */ 103 */
101 PP_Resource (*Create)(PP_Module module, 104 PP_Resource (*Create)(PP_Module module,
102 PP_ClassDestructor destruct, 105 PP_ClassDestructor destruct,
103 PP_ClassFunction invoke, 106 PP_ClassFunction invoke,
104 PP_ClassProperty* properties); 107 struct PP_ClassProperty* properties);
105 108
106 /** 109 /**
107 * Creates an instance of the given class, and attaches given native pointer 110 * Creates an instance of the given class, and attaches given native pointer
108 * to it. 111 * to it.
109 * 112 *
110 * If the class_object is invalid, throws an exception. 113 * If the class_object is invalid, throws an exception.
111 */ 114 */
112 PP_Var (*Instantiate)(PP_Resource class_object, 115 struct PP_Var (*Instantiate)(PP_Resource class_object,
113 void* native_ptr, PP_Var* exception); 116 void* native_ptr,
117 struct PP_Var* exception);
114 }; 118 };
115 119
116 /** 120 /**
117 * @} 121 * @}
118 * End addtogroup PPP 122 * End addtogroup PPP
119 */ 123 */
120 #endif // PPAPI_C_PPP_CLASS_H_ 124 #endif // PPAPI_C_PPP_CLASS_H_
121
OLDNEW
« no previous file with comments | « ppapi/c/pp_var.h ('k') | ppapi/c/ppb_core.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698