Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / native_client_sdk / src / libraries / ppapi_simple / ps_main.h
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
3  * found in the LICENSE file. */
4
5 #ifndef PPAPI_SIMPLE_PS_MAIN_H_
6 #define PPAPI_SIMPLE_PS_MAIN_H_
7
8 #include "ppapi_simple/ps.h"
9 #include "ppapi_simple/ps_event.h"
10
11 EXTERN_C_BEGIN
12
13 typedef int (*PSMainFunc_t)(int argc, char *argv[]);
14
15 /**
16  * PSMainCreate
17  *
18  * Constructs an instance SimpleInstance and configures it to call into
19  * the provided "main" function.
20  */
21 void* PSMainCreate(PP_Instance inst, PSMainFunc_t entry_point);
22
23 /**
24  * PSUserMainGet
25  *
26  * Prototype for the user provided function which retrieves the user's main
27  * function.
28  * This is normally defined using the PPAPI_SIMPLE_REGISTER_MAIN macro.
29  */
30 PSMainFunc_t PSUserMainGet();
31
32 /**
33  * PPAPI_SIMPLE_REGISTER_MAIN
34  *
35  * Constructs a PSInstance object and configures it to use call the provided
36  * 'main' function on its own thread once initialization is complete.
37  */
38 #define PPAPI_SIMPLE_REGISTER_MAIN(main_func)     \
39   PSMainFunc_t PSUserMainGet() {                  \
40     return main_func;                             \
41   }                                               \
42   void* PSUserCreateInstance(PP_Instance inst) {  \
43     return PSMainCreate(inst, main_func);         \
44   }
45
46 EXTERN_C_END
47
48 #endif  /* PPAPI_SIMPLE_PS_MAIN_H_ */