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#ifndef PPAPI_PROXY_HOST_RESOLVER_RESOURCE_H_
6#define PPAPI_PROXY_HOST_RESOLVER_RESOURCE_H_
7
8#include "base/basictypes.h"
9#include "base/compiler_specific.h"
10#include "ppapi/proxy/host_resolver_resource_base.h"
11#include "ppapi/proxy/ppapi_proxy_export.h"
12#include "ppapi/thunk/ppb_host_resolver_api.h"
13
14namespace ppapi {
15namespace proxy {
16
17class PPAPI_PROXY_EXPORT HostResolverResource
18    : public HostResolverResourceBase,
19      public thunk::PPB_HostResolver_API {
20 public:
21  HostResolverResource(Connection connection, PP_Instance instance);
22  virtual ~HostResolverResource();
23
24  // PluginResource overrides.
25  virtual thunk::PPB_HostResolver_API* AsPPB_HostResolver_API() OVERRIDE;
26
27  // thunk::PPB_HostResolver_API implementation.
28  virtual int32_t Resolve(const char* host,
29                          uint16_t port,
30                          const PP_HostResolver_Hint* hint,
31                          scoped_refptr<TrackedCallback> callback) OVERRIDE;
32  virtual PP_Var GetCanonicalName() OVERRIDE;
33  virtual uint32_t GetNetAddressCount() OVERRIDE;
34  virtual PP_Resource GetNetAddress(uint32_t index) OVERRIDE;
35
36 private:
37  DISALLOW_COPY_AND_ASSIGN(HostResolverResource);
38};
39
40}  // namespace proxy
41}  // namespace ppapi
42
43#endif  // PPAPI_PROXY_HOST_RESOLVER_RESOURCE_H_
44