Componentize //chrome/browser/ui/omnibox
[chromium-blink-merge.git] / ppapi / api / ppb_network_list.idl
blob70c301f8754c73cbaa52e66d4e6bdeeb119c7b91
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 */
6 /**
7 * This file defines the <code>PPB_NetworkList</code> interface.
8 */
10 [generate_thunk]
12 label Chrome {
13 M31 = 1.0
16 /**
17 * Type of a network interface.
19 [assert_size(4)]
20 enum PP_NetworkList_Type {
21 /**
22 * Type of the network interface is not known.
24 PP_NETWORKLIST_TYPE_UNKNOWN = 0,
26 /**
27 * Wired Ethernet network.
29 PP_NETWORKLIST_TYPE_ETHERNET = 1,
31 /**
32 * Wireless Wi-Fi network.
34 PP_NETWORKLIST_TYPE_WIFI = 2,
36 /**
37 * Cellular network (e.g. LTE).
39 PP_NETWORKLIST_TYPE_CELLULAR = 3
42 /**
43 * State of a network interface.
45 [assert_size(4)]
46 enum PP_NetworkList_State {
47 /**
48 * Network interface is down.
50 PP_NETWORKLIST_STATE_DOWN = 0,
52 /**
53 * Network interface is up.
55 PP_NETWORKLIST_STATE_UP = 1
58 /**
59 * The <code>PPB_NetworkList</code> is used to represent a list of
60 * network interfaces and their configuration. The content of the list
61 * is immutable. The current networks configuration can be received
62 * using the <code>PPB_NetworkMonitor</code> interface.
64 interface PPB_NetworkList {
65 /**
66 * Determines if the specified <code>resource</code> is a
67 * <code>NetworkList</code> object.
69 * @param[in] resource A <code>PP_Resource</code> resource.
71 * @return Returns <code>PP_TRUE</code> if <code>resource</code> is
72 * a <code>PPB_NetworkList</code>, <code>PP_FALSE</code>
73 * otherwise.
75 PP_Bool IsNetworkList([in] PP_Resource resource);
77 /**
78 * Gets number of interfaces in the list.
80 * @param[in] resource A <code>PP_Resource</code> corresponding to a
81 * network list.
83 * @return Returns number of available network interfaces or 0 if
84 * the list has never been updated.
86 uint32_t GetCount([in] PP_Resource resource);
88 /**
89 * Gets name of a network interface.
91 * @param[in] resource A <code>PP_Resource</code> corresponding to a
92 * network list.
93 * @param[in] index Index of the network interface.
95 * @return Returns name for the network interface with the specified
96 * <code>index</code>.
98 PP_Var GetName([in] PP_Resource resource,
99 [in] uint32_t index);
102 * Gets type of a network interface.
104 * @param[in] resource A <code>PP_Resource</code> corresponding to a
105 * network list.
106 * @param[in] index Index of the network interface.
108 * @return Returns type of the network interface with the specified
109 * <code>index</code>.
111 [on_failure=PP_NETWORKLIST_TYPE_UNKNOWN]
112 PP_NetworkList_Type GetType([in] PP_Resource resource,
113 [in] uint32_t index);
116 * Gets state of a network interface.
118 * @param[in] resource A <code>PP_Resource</code> corresponding to a
119 * network list.
120 * @param[in] index Index of the network interface.
122 * @return Returns current state of the network interface with the
123 * specified <code>index</code>.
125 [on_failure=PP_NETWORKLIST_STATE_DOWN]
126 PP_NetworkList_State GetState([in] PP_Resource resource,
127 [in] uint32_t index);
130 * Gets list of IP addresses for a network interface.
132 * @param[in] resource A <code>PP_Resource</code> corresponding to a
133 * network list.
134 * @param[in] index Index of the network interface.
135 * @param[in] output An output array which will receive
136 * <code>PPB_NetAddress</code> resources on success. Please note that the
137 * ref count of those resources has already been increased by 1 for the
138 * caller.
140 * @return An error code from <code>pp_errors.h</code>.
142 int32_t GetIpAddresses([in] PP_Resource resource,
143 [in] uint32_t index,
144 [in] PP_ArrayOutput output);
147 * Gets display name of a network interface.
149 * @param[in] resource A <code>PP_Resource</code> corresponding to a
150 * network list.
151 * @param[in] index Index of the network interface.
153 * @return Returns display name for the network interface with the
154 * specified <code>index</code>.
156 PP_Var GetDisplayName([in] PP_Resource resource,
157 [in] uint32_t index);
160 * Gets MTU (Maximum Transmission Unit) of a network interface.
162 * @param[in] resource A <code>PP_Resource</code> corresponding to a
163 * network list.
164 * @param[in] index Index of the network interface.
166 * @return Returns MTU for the network interface with the specified
167 * <code>index</code> or 0 if MTU is unknown.
169 uint32_t GetMTU([in] PP_Resource resource,
170 [in] uint32_t index);