| /* Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| /** |
| * This file defines the <code>PPB_NetworkList_Private</code> interface. |
| */ |
| |
| label Chrome { |
| M19 = 0.2 |
| }; |
| |
| /** |
| * Type of a network interface. |
| */ |
| [assert_size(4)] |
| enum PP_NetworkListType_Private { |
| /** |
| * Type of the network interface is not known. |
| */ |
| PP_NETWORKLIST_UNKNOWN = 0, |
| |
| /** |
| * Wired Ethernet network. |
| */ |
| PP_NETWORKLIST_ETHERNET = 1, |
| |
| /** |
| * Wireless Wi-Fi network. |
| */ |
| PP_NETWORKLIST_WIFI = 2, |
| |
| /** |
| * Cellular network (e.g. LTE). |
| */ |
| PP_NETWORKLIST_CELLULAR = 3 |
| }; |
| |
| /** |
| * State of a network interface. |
| */ |
| [assert_size(4)] |
| enum PP_NetworkListState_Private { |
| /** |
| * Network interface is down. |
| */ |
| PP_NETWORKLIST_DOWN = 0, |
| |
| /** |
| * Network interface is up. |
| */ |
| PP_NETWORKLIST_UP = 1 |
| }; |
| |
| /** |
| * The <code>PPB_NetworkList_Private</code> is used to represent a |
| * list of network interfaces and their configuration. The content of |
| * the list is immutable. The current networks configuration can be |
| * received using the <code>PPB_NetworkMonitor_Private</code> |
| * interface. |
| */ |
| interface PPB_NetworkList_Private { |
| /** |
| * Determines if the specified <code>resource</code> is a |
| * <code>NetworkList</code> object. |
| * |
| * @param[in] resource A <code>PP_Resource</code> resource. |
| * |
| * @return Returns <code>PP_TRUE</code> if <code>resource</code> is |
| * a <code>PPB_NetworkList_Private</code>, <code>PP_FALSE</code> |
| * otherwise. |
| */ |
| PP_Bool IsNetworkList([in] PP_Resource resource); |
| |
| /** |
| * @return Returns number of available network interfaces or 0 if |
| * the list has never been updated. |
| */ |
| uint32_t GetCount([in] PP_Resource resource); |
| |
| /** |
| * @return Returns name for the network interface with the specified |
| * <code>index</code>. |
| */ |
| PP_Var GetName([in] PP_Resource resource, |
| [in] uint32_t index); |
| |
| /** |
| * @return Returns type of the network interface with the specified |
| * <code>index</code>. |
| */ |
| PP_NetworkListType_Private GetType([in] PP_Resource resource, |
| [in] uint32_t index); |
| |
| /** |
| * @return Returns current state of the network interface with the |
| * specified <code>index</code>. |
| */ |
| PP_NetworkListState_Private GetState([in] PP_Resource resource, |
| [in] uint32_t index); |
| |
| /** |
| * Gets list of IP addresses for the network interface with the |
| * specified <code>index</code> and stores them in |
| * <code>addresses</code>. If the caller didn't allocate sufficient |
| * space to store all addresses, then only the first |
| * <code>count</code> addresses are filled in. |
| * |
| * @return Returns total number of IP addresses assigned to the |
| * network interface or a negative error code. |
| */ |
| int32_t GetIpAddresses( |
| [in] PP_Resource resource, |
| [in] uint32_t index, |
| [inout, size_is(count)] PP_NetAddress_Private[] addresses, |
| [in] uint32_t count); |
| |
| /** |
| * @return Returns display name for the network interface with the |
| * specified <code>index</code>. |
| */ |
| PP_Var GetDisplayName([in] PP_Resource resource, |
| [in] uint32_t index); |
| |
| /** |
| * @return Returns MTU for the network interface with the specified |
| * <code>index</code> or 0 if MTU is unknown. |
| */ |
| uint32_t GetMTU([in] PP_Resource resource, |
| [in] uint32_t index); |
| |
| }; |