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#include "ppapi/cpp/network_proxy.h"
6
7#include "ppapi/c/ppb_network_proxy.h"
8#include "ppapi/cpp/module_impl.h"
9
10namespace pp {
11
12namespace {
13
14template <> const char* interface_name<PPB_NetworkProxy_1_0>() {
15  return PPB_NETWORKPROXY_INTERFACE_1_0;
16}
17
18}  // namespace
19
20// static
21bool NetworkProxy::IsAvailable() {
22  return has_interface<PPB_NetworkProxy_1_0>();
23}
24
25// static
26int32_t NetworkProxy::GetProxyForURL(
27    const InstanceHandle& instance,
28    const Var& url,
29    const CompletionCallbackWithOutput<Var>& callback) {
30  if (!has_interface<PPB_NetworkProxy_1_0>())
31    return callback.MayForce(PP_ERROR_NOINTERFACE);
32
33  return get_interface<PPB_NetworkProxy_1_0>()->GetProxyForURL(
34      instance.pp_instance(), url.pp_var(),
35      callback.output(), callback.pp_completion_callback());
36}
37
38}  // namespace pp
39