15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/proxy/host_resolver_private_resource.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/proxy/net_address_resource.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/shared_impl/tracked_callback.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ppapi { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace proxy { 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)HostResolverPrivateResource::HostResolverPrivateResource(Connection connection, 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Instance instance) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : HostResolverResourceBase(connection, instance, true) { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)HostResolverPrivateResource::~HostResolverPrivateResource() { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)thunk::PPB_HostResolver_Private_API* 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)HostResolverPrivateResource::AsPPB_HostResolver_Private_API() { 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return this; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int32_t HostResolverPrivateResource::Resolve( 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* host, 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint16_t port, 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PP_HostResolver_Private_Hint* hint, 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_refptr<TrackedCallback> callback) { 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return ResolveImpl(host, port, hint, callback); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_Var HostResolverPrivateResource::GetCanonicalName() { 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return GetCanonicalNameImpl(); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)uint32_t HostResolverPrivateResource::GetSize() { 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return GetSizeImpl(); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool HostResolverPrivateResource::GetNetAddress( 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t index, 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_NetAddress_Private* address) { 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!address) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return false; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_refptr<NetAddressResource> addr_resource = GetNetAddressImpl(index); 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!addr_resource.get()) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return false; 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *address = addr_resource->GetNetAddressPrivate(); 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace proxy 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ppapi 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)