/* 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 PPB_NetworkList interface. */ [generate_thunk] label Chrome { M31 = 1.0 }; /** * Type of a network interface. */ [assert_size(4)] enum PP_NetworkList_Type { /** * Type of the network interface is not known. */ PP_NETWORKLIST_TYPE_UNKNOWN = 0, /** * Wired Ethernet network. */ PP_NETWORKLIST_TYPE_ETHERNET = 1, /** * Wireless Wi-Fi network. */ PP_NETWORKLIST_TYPE_WIFI = 2, /** * Cellular network (e.g. LTE). */ PP_NETWORKLIST_TYPE_CELLULAR = 3 }; /** * State of a network interface. */ [assert_size(4)] enum PP_NetworkList_State { /** * Network interface is down. */ PP_NETWORKLIST_STATE_DOWN = 0, /** * Network interface is up. */ PP_NETWORKLIST_STATE_UP = 1 }; /** * The PPB_NetworkList 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 PPB_NetworkMonitor interface. */ interface PPB_NetworkList { /** * Determines if the specified resource is a * NetworkList object. * * @param[in] resource A PP_Resource resource. * * @return Returns PP_TRUE if resource is * a PPB_NetworkList, PP_FALSE * otherwise. */ PP_Bool IsNetworkList([in] PP_Resource resource); /** * Gets number of interfaces in the list. * * @param[in] resource A PP_Resource corresponding to a * network list. * * @return Returns number of available network interfaces or 0 if * the list has never been updated. */ uint32_t GetCount([in] PP_Resource resource); /** * Gets name of a network interface. * * @param[in] resource A PP_Resource corresponding to a * network list. * @param[in] index Index of the network interface. * * @return Returns name for the network interface with the specified * index. */ PP_Var GetName([in] PP_Resource resource, [in] uint32_t index); /** * Gets type of a network interface. * * @param[in] resource A PP_Resource corresponding to a * network list. * @param[in] index Index of the network interface. * * @return Returns type of the network interface with the specified * index. */ [on_failure=PP_NETWORKLIST_TYPE_UNKNOWN] PP_NetworkList_Type GetType([in] PP_Resource resource, [in] uint32_t index); /** * Gets state of a network interface. * * @param[in] resource A PP_Resource corresponding to a * network list. * @param[in] index Index of the network interface. * * @return Returns current state of the network interface with the * specified index. */ [on_failure=PP_NETWORKLIST_STATE_DOWN] PP_NetworkList_State GetState([in] PP_Resource resource, [in] uint32_t index); /** * Gets list of IP addresses for a network interface. * * @param[in] resource A PP_Resource corresponding to a * network list. * @param[in] index Index of the network interface. * @param[in] output An output array which will receive * PPB_NetAddress resources on success. Please note that the * ref count of those resources has already been increased by 1 for the * caller. * * @return An error code from pp_errors.h. */ int32_t GetIpAddresses([in] PP_Resource resource, [in] uint32_t index, [in] PP_ArrayOutput output); /** * Gets display name of a network interface. * * @param[in] resource A PP_Resource corresponding to a * network list. * @param[in] index Index of the network interface. * * @return Returns display name for the network interface with the * specified index. */ PP_Var GetDisplayName([in] PP_Resource resource, [in] uint32_t index); /** * Gets MTU (Maximum Transmission Unit) of a network interface. * * @param[in] resource A PP_Resource corresponding to a * network list. * @param[in] index Index of the network interface. * * @return Returns MTU for the network interface with the specified * index or 0 if MTU is unknown. */ uint32_t GetMTU([in] PP_Resource resource, [in] uint32_t index); };