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_network_list.idl modified Thu Oct 31 12:30:06 2013. 6 7 #include "ppapi/c/pp_errors.h" 8 #include "ppapi/c/ppb_network_list.h" 9 #include "ppapi/shared_impl/tracked_callback.h" 10 #include "ppapi/thunk/enter.h" 11 #include "ppapi/thunk/ppapi_thunk_export.h" 12 #include "ppapi/thunk/ppb_network_list_api.h" 13 14 namespace ppapi { 15 namespace thunk { 16 17 namespace { 18 19 PP_Bool IsNetworkList(PP_Resource resource) { 20 VLOG(4) << "PPB_NetworkList::IsNetworkList()"; 21 EnterResource<PPB_NetworkList_API> enter(resource, false); 22 return PP_FromBool(enter.succeeded()); 23 } 24 25 uint32_t GetCount(PP_Resource resource) { 26 VLOG(4) << "PPB_NetworkList::GetCount()"; 27 EnterResource<PPB_NetworkList_API> enter(resource, true); 28 if (enter.failed()) 29 return 0; 30 return enter.object()->GetCount(); 31 } 32 33 struct PP_Var GetName(PP_Resource resource, uint32_t index) { 34 VLOG(4) << "PPB_NetworkList::GetName()"; 35 EnterResource<PPB_NetworkList_API> enter(resource, true); 36 if (enter.failed()) 37 return PP_MakeUndefined(); 38 return enter.object()->GetName(index); 39 } 40 41 PP_NetworkList_Type GetType(PP_Resource resource, uint32_t index) { 42 VLOG(4) << "PPB_NetworkList::GetType()"; 43 EnterResource<PPB_NetworkList_API> enter(resource, true); 44 if (enter.failed()) 45 return PP_NETWORKLIST_TYPE_UNKNOWN; 46 return enter.object()->GetType(index); 47 } 48 49 PP_NetworkList_State GetState(PP_Resource resource, uint32_t index) { 50 VLOG(4) << "PPB_NetworkList::GetState()"; 51 EnterResource<PPB_NetworkList_API> enter(resource, true); 52 if (enter.failed()) 53 return PP_NETWORKLIST_STATE_DOWN; 54 return enter.object()->GetState(index); 55 } 56 57 int32_t GetIpAddresses(PP_Resource resource, 58 uint32_t index, 59 struct PP_ArrayOutput output) { 60 VLOG(4) << "PPB_NetworkList::GetIpAddresses()"; 61 EnterResource<PPB_NetworkList_API> enter(resource, true); 62 if (enter.failed()) 63 return enter.retval(); 64 return enter.object()->GetIpAddresses(index, output); 65 } 66 67 struct PP_Var GetDisplayName(PP_Resource resource, uint32_t index) { 68 VLOG(4) << "PPB_NetworkList::GetDisplayName()"; 69 EnterResource<PPB_NetworkList_API> enter(resource, true); 70 if (enter.failed()) 71 return PP_MakeUndefined(); 72 return enter.object()->GetDisplayName(index); 73 } 74 75 uint32_t GetMTU(PP_Resource resource, uint32_t index) { 76 VLOG(4) << "PPB_NetworkList::GetMTU()"; 77 EnterResource<PPB_NetworkList_API> enter(resource, true); 78 if (enter.failed()) 79 return 0; 80 return enter.object()->GetMTU(index); 81 } 82 83 const PPB_NetworkList_1_0 g_ppb_networklist_thunk_1_0 = { 84 &IsNetworkList, 85 &GetCount, 86 &GetName, 87 &GetType, 88 &GetState, 89 &GetIpAddresses, 90 &GetDisplayName, 91 &GetMTU 92 }; 93 94 } // namespace 95 96 PPAPI_THUNK_EXPORT const PPB_NetworkList_1_0* GetPPB_NetworkList_1_0_Thunk() { 97 return &g_ppb_networklist_thunk_1_0; 98 } 99 100 } // namespace thunk 101 } // namespace ppapi 102