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