1// Copyright 2013 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_host_resolver.idl modified Tue Aug 20 08:13:36 2013. 6 7#include "ppapi/c/pp_completion_callback.h" 8#include "ppapi/c/pp_errors.h" 9#include "ppapi/c/ppb_host_resolver.h" 10#include "ppapi/shared_impl/tracked_callback.h" 11#include "ppapi/thunk/enter.h" 12#include "ppapi/thunk/ppapi_thunk_export.h" 13#include "ppapi/thunk/ppb_host_resolver_api.h" 14 15namespace ppapi { 16namespace thunk { 17 18namespace { 19 20PP_Resource Create(PP_Instance instance) { 21 VLOG(4) << "PPB_HostResolver::Create()"; 22 EnterResourceCreation enter(instance); 23 if (enter.failed()) 24 return 0; 25 return enter.functions()->CreateHostResolver(instance); 26} 27 28PP_Bool IsHostResolver(PP_Resource resource) { 29 VLOG(4) << "PPB_HostResolver::IsHostResolver()"; 30 EnterResource<PPB_HostResolver_API> enter(resource, false); 31 return PP_FromBool(enter.succeeded()); 32} 33 34int32_t Resolve(PP_Resource host_resolver, 35 const char* host, 36 uint16_t port, 37 const struct PP_HostResolver_Hint* hint, 38 struct PP_CompletionCallback callback) { 39 VLOG(4) << "PPB_HostResolver::Resolve()"; 40 EnterResource<PPB_HostResolver_API> enter(host_resolver, callback, true); 41 if (enter.failed()) 42 return enter.retval(); 43 return enter.SetResult(enter.object()->Resolve(host, 44 port, 45 hint, 46 enter.callback())); 47} 48 49struct PP_Var GetCanonicalName(PP_Resource host_resolver) { 50 VLOG(4) << "PPB_HostResolver::GetCanonicalName()"; 51 EnterResource<PPB_HostResolver_API> enter(host_resolver, true); 52 if (enter.failed()) 53 return PP_MakeUndefined(); 54 return enter.object()->GetCanonicalName(); 55} 56 57uint32_t GetNetAddressCount(PP_Resource host_resolver) { 58 VLOG(4) << "PPB_HostResolver::GetNetAddressCount()"; 59 EnterResource<PPB_HostResolver_API> enter(host_resolver, true); 60 if (enter.failed()) 61 return 0; 62 return enter.object()->GetNetAddressCount(); 63} 64 65PP_Resource GetNetAddress(PP_Resource host_resolver, uint32_t index) { 66 VLOG(4) << "PPB_HostResolver::GetNetAddress()"; 67 EnterResource<PPB_HostResolver_API> enter(host_resolver, true); 68 if (enter.failed()) 69 return 0; 70 return enter.object()->GetNetAddress(index); 71} 72 73const PPB_HostResolver_1_0 g_ppb_hostresolver_thunk_1_0 = { 74 &Create, 75 &IsHostResolver, 76 &Resolve, 77 &GetCanonicalName, 78 &GetNetAddressCount, 79 &GetNetAddress 80}; 81 82} // namespace 83 84PPAPI_THUNK_EXPORT const PPB_HostResolver_1_0* 85 GetPPB_HostResolver_1_0_Thunk() { 86 return &g_ppb_hostresolver_thunk_1_0; 87} 88 89} // namespace thunk 90} // namespace ppapi 91