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#include "ppapi/proxy/host_resolver_private_resource.h"
6
7#include "ppapi/proxy/net_address_resource.h"
8#include "ppapi/shared_impl/tracked_callback.h"
9
10namespace ppapi {
11namespace proxy {
12
13HostResolverPrivateResource::HostResolverPrivateResource(Connection connection,
14                                                         PP_Instance instance)
15    : HostResolverResourceBase(connection, instance, true) {
16}
17
18HostResolverPrivateResource::~HostResolverPrivateResource() {
19}
20
21thunk::PPB_HostResolver_Private_API*
22HostResolverPrivateResource::AsPPB_HostResolver_Private_API() {
23  return this;
24}
25
26int32_t HostResolverPrivateResource::Resolve(
27    const char* host,
28    uint16_t port,
29    const PP_HostResolver_Private_Hint* hint,
30    scoped_refptr<TrackedCallback> callback) {
31  return ResolveImpl(host, port, hint, callback);
32}
33
34PP_Var HostResolverPrivateResource::GetCanonicalName() {
35  return GetCanonicalNameImpl();
36}
37
38uint32_t HostResolverPrivateResource::GetSize() {
39  return GetSizeImpl();
40}
41
42bool HostResolverPrivateResource::GetNetAddress(
43    uint32_t index,
44    PP_NetAddress_Private* address) {
45  if (!address)
46    return false;
47
48  scoped_refptr<NetAddressResource> addr_resource = GetNetAddressImpl(index);
49  if (!addr_resource.get())
50    return false;
51
52  *address = addr_resource->GetNetAddressPrivate();
53  return true;
54}
55
56}  // namespace proxy
57}  // namespace ppapi
58