Home | History | Annotate | Download | only in trusted
      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 
      6 /**
      7  * This file defines functions that your module must implement to support a
      8  * broker.
      9  */
     10 
     11 #inline c
     12 // {PENDING: undefine PP_EXPORT?}
     13 
     14 #include "ppapi/c/pp_instance.h"
     15 #include "ppapi/c/pp_stdint.h"
     16 
     17 
     18 #if __GNUC__ >= 4
     19 
     20 #define PP_EXPORT __attribute__ ((visibility("default")))
     21 #elif defined(_MSC_VER)
     22 #define PP_EXPORT __declspec(dllexport)
     23 #endif
     24 
     25 
     26 
     27 /* We don't want name mangling for these external functions.  We only need
     28  * 'extern "C"' if we're compiling with a C++ compiler.
     29  */
     30 #ifdef __cplusplus
     31 extern "C" {
     32 #endif
     33 
     34 /**
     35  * @addtogroup Typedefs
     36  * @{
     37  */
     38 
     39 /**
     40  * PP_ConnectInstance_Func defines the signature that you implement to
     41  * receive notifications when a plugin instance connects to the broker.
     42  * The broker should listen on the socket before returning.
     43  *
     44  * @param[in] instance The plugin instance connecting to the broker.
     45  * @param[in] handle Handle to a socket the broker can use to communicate with
     46  * the plugin.
     47  * @return PP_OK on success. Any other value on failure.
     48  */
     49 typedef int32_t (*PP_ConnectInstance_Func)(PP_Instance instance,
     50                                            int32_t handle);
     51 /**
     52  * @}
     53  */
     54 
     55 /**
     56  * @addtogroup Functions
     57  * @{
     58  */
     59 
     60 /**
     61  * PPP_InitializeBroker() is the entry point for a broker and is
     62  * called by the browser when your module loads. Your code must implement this
     63  * function.
     64  *
     65  * Failure indicates to the browser that this broker can not be used. In this
     66  * case, the broker will be unloaded.
     67  *
     68  * @param[out] connect_instance_func A pointer to a connect instance function.
     69  * @return PP_OK on success. Any other value on failure.
     70 */
     71 PP_EXPORT int32_t PPP_InitializeBroker(
     72     PP_ConnectInstance_Func* connect_instance_func);
     73 /**
     74  * @}
     75  */
     76 
     77 /**
     78  * @addtogroup Functions
     79  * @{
     80  */
     81 
     82 /** PPP_ShutdownBroker() is called before the broker is unloaded.
     83  */
     84 PP_EXPORT void PPP_ShutdownBroker();
     85 /**
     86  * @}
     87  */
     88 
     89 #ifdef __cplusplus
     90 }  /* extern "C" */
     91 #endif
     92 
     93 #endinl
     94 
     95