OLD | NEW |
| (Empty) |
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/dev/net_address_dev.h" | |
6 | |
7 #include "ppapi/c/pp_bool.h" | |
8 #include "ppapi/cpp/instance_handle.h" | |
9 #include "ppapi/cpp/module_impl.h" | |
10 | |
11 namespace pp { | |
12 | |
13 namespace { | |
14 | |
15 template <> const char* interface_name<PPB_NetAddress_Dev_0_1>() { | |
16 return PPB_NETADDRESS_DEV_INTERFACE_0_1; | |
17 } | |
18 | |
19 } // namespace | |
20 | |
21 NetAddress_Dev::NetAddress_Dev() { | |
22 } | |
23 | |
24 NetAddress_Dev::NetAddress_Dev(PassRef, PP_Resource resource) | |
25 : Resource(PASS_REF, resource) { | |
26 } | |
27 | |
28 NetAddress_Dev::NetAddress_Dev(const InstanceHandle& instance, | |
29 const PP_NetAddress_IPv4_Dev& ipv4_addr) { | |
30 if (has_interface<PPB_NetAddress_Dev_0_1>()) { | |
31 PassRefFromConstructor( | |
32 get_interface<PPB_NetAddress_Dev_0_1>()->CreateFromIPv4Address( | |
33 instance.pp_instance(), &ipv4_addr)); | |
34 } | |
35 } | |
36 | |
37 NetAddress_Dev::NetAddress_Dev(const InstanceHandle& instance, | |
38 const PP_NetAddress_IPv6_Dev& ipv6_addr) { | |
39 if (has_interface<PPB_NetAddress_Dev_0_1>()) { | |
40 PassRefFromConstructor( | |
41 get_interface<PPB_NetAddress_Dev_0_1>()->CreateFromIPv6Address( | |
42 instance.pp_instance(), &ipv6_addr)); | |
43 } | |
44 } | |
45 | |
46 NetAddress_Dev::NetAddress_Dev(const NetAddress_Dev& other) : Resource(other) { | |
47 } | |
48 | |
49 NetAddress_Dev::~NetAddress_Dev() { | |
50 } | |
51 | |
52 NetAddress_Dev& NetAddress_Dev::operator=(const NetAddress_Dev& other) { | |
53 Resource::operator=(other); | |
54 return *this; | |
55 } | |
56 | |
57 // static | |
58 bool NetAddress_Dev::IsAvailable() { | |
59 return has_interface<PPB_NetAddress_Dev_0_1>(); | |
60 } | |
61 | |
62 PP_NetAddress_Family_Dev NetAddress_Dev::GetFamily() const { | |
63 if (has_interface<PPB_NetAddress_Dev_0_1>()) | |
64 return get_interface<PPB_NetAddress_Dev_0_1>()->GetFamily(pp_resource()); | |
65 | |
66 return PP_NETADDRESS_FAMILY_UNSPECIFIED; | |
67 } | |
68 | |
69 Var NetAddress_Dev::DescribeAsString(bool include_port) const { | |
70 if (has_interface<PPB_NetAddress_Dev_0_1>()) { | |
71 return Var(PASS_REF, | |
72 get_interface<PPB_NetAddress_Dev_0_1>()->DescribeAsString( | |
73 pp_resource(), PP_FromBool(include_port))); | |
74 } | |
75 | |
76 return Var(); | |
77 } | |
78 | |
79 bool NetAddress_Dev::DescribeAsIPv4Address( | |
80 PP_NetAddress_IPv4_Dev* ipv4_addr) const { | |
81 if (has_interface<PPB_NetAddress_Dev_0_1>()) { | |
82 return PP_ToBool( | |
83 get_interface<PPB_NetAddress_Dev_0_1>()->DescribeAsIPv4Address( | |
84 pp_resource(), ipv4_addr)); | |
85 } | |
86 | |
87 return false; | |
88 } | |
89 | |
90 bool NetAddress_Dev::DescribeAsIPv6Address( | |
91 PP_NetAddress_IPv6_Dev* ipv6_addr) const { | |
92 if (has_interface<PPB_NetAddress_Dev_0_1>()) { | |
93 return PP_ToBool( | |
94 get_interface<PPB_NetAddress_Dev_0_1>()->DescribeAsIPv6Address( | |
95 pp_resource(), ipv6_addr)); | |
96 } | |
97 | |
98 return false; | |
99 } | |
100 | |
101 } // namespace pp | |
OLD | NEW |