Home | History | Annotate | Download | only in thunk
      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 // From ppb_messaging.idl modified Wed Sep 10 15:41:14 2014.
      6 
      7 #include "ppapi/c/dev/ppb_messaging_deprecated.h"
      8 #include "ppapi/c/pp_errors.h"
      9 #include "ppapi/c/ppb_messaging.h"
     10 #include "ppapi/shared_impl/tracked_callback.h"
     11 #include "ppapi/thunk/enter.h"
     12 #include "ppapi/thunk/ppapi_thunk_export.h"
     13 
     14 namespace ppapi {
     15 namespace thunk {
     16 
     17 namespace {
     18 
     19 void PostMessage(PP_Instance instance, struct PP_Var message) {
     20   VLOG(4) << "PPB_Messaging::PostMessage()";
     21   EnterInstance enter(instance);
     22   if (enter.failed())
     23     return;
     24   enter.functions()->PostMessage(instance, message);
     25 }
     26 
     27 int32_t RegisterMessageHandler_1_1_Deprecated(
     28     PP_Instance instance,
     29     void* user_data,
     30     const struct PPP_MessageHandler_0_1_Deprecated* handler,
     31     PP_Resource message_loop) {
     32   VLOG(4) << "PPB_Messaging::RegisterMessageHandler_1_1()";
     33   EnterInstance enter(instance);
     34   if (enter.failed())
     35     return enter.retval();
     36   return enter.functions()->RegisterMessageHandler_1_1_Deprecated(instance,
     37                                                                   user_data,
     38                                                                   handler,
     39                                                                   message_loop);
     40 }
     41 
     42 int32_t RegisterMessageHandler_1_2(PP_Instance instance,
     43                                    void* user_data,
     44                                    const struct PPP_MessageHandler_0_2* handler,
     45                                    PP_Resource message_loop) {
     46   VLOG(4) << "PPB_Messaging::RegisterMessageHandler()";
     47   EnterInstance enter(instance);
     48   if (enter.failed())
     49     return enter.retval();
     50   return enter.functions()->RegisterMessageHandler(instance,
     51                                                    user_data,
     52                                                    handler,
     53                                                    message_loop);
     54 }
     55 
     56 void UnregisterMessageHandler(PP_Instance instance) {
     57   VLOG(4) << "PPB_Messaging::UnregisterMessageHandler()";
     58   EnterInstance enter(instance);
     59   if (enter.failed())
     60     return;
     61   enter.functions()->UnregisterMessageHandler(instance);
     62 }
     63 
     64 const PPB_Messaging_1_0 g_ppb_messaging_thunk_1_0 = {
     65   &PostMessage
     66 };
     67 
     68 const PPB_Messaging_1_1_Deprecated g_ppb_messaging_thunk_1_1_deprecated = {
     69   &PostMessage,
     70   &RegisterMessageHandler_1_1_Deprecated,
     71   &UnregisterMessageHandler
     72 };
     73 
     74 const PPB_Messaging_1_2 g_ppb_messaging_thunk_1_2 = {
     75   &PostMessage,
     76   &RegisterMessageHandler_1_2,
     77   &UnregisterMessageHandler
     78 };
     79 
     80 }  // namespace
     81 
     82 PPAPI_THUNK_EXPORT const PPB_Messaging_1_0* GetPPB_Messaging_1_0_Thunk() {
     83   return &g_ppb_messaging_thunk_1_0;
     84 }
     85 
     86 PPAPI_THUNK_EXPORT
     87 const PPB_Messaging_1_1_Deprecated* GetPPB_Messaging_1_1_Deprecated_Thunk() {
     88   return &g_ppb_messaging_thunk_1_1_deprecated;
     89 }
     90 
     91 PPAPI_THUNK_EXPORT const PPB_Messaging_1_2* GetPPB_Messaging_1_2_Thunk() {
     92   return &g_ppb_messaging_thunk_1_2;
     93 }
     94 
     95 }  // namespace thunk
     96 }  // namespace ppapi
     97