Home | History | Annotate | Download | only in api
      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  */
      5 
      6 /**
      7  * This file defines the <code>PPB_NetworkList</code> interface.
      8  */
      9 
     10 [generate_thunk]
     11 
     12 label Chrome {
     13   M31 = 1.0
     14 };
     15 
     16 /**
     17  * Type of a network interface.
     18  */
     19 [assert_size(4)]
     20 enum PP_NetworkList_Type {
     21   /**
     22    * Type of the network interface is not known.
     23    */
     24   PP_NETWORKLIST_TYPE_UNKNOWN = 0,
     25 
     26   /**
     27    * Wired Ethernet network.
     28    */
     29   PP_NETWORKLIST_TYPE_ETHERNET = 1,
     30 
     31   /**
     32    * Wireless Wi-Fi network.
     33    */
     34   PP_NETWORKLIST_TYPE_WIFI = 2,
     35 
     36   /**
     37    * Cellular network (e.g. LTE).
     38    */
     39   PP_NETWORKLIST_TYPE_CELLULAR = 3
     40 };
     41 
     42 /**
     43  * State of a network interface.
     44  */
     45 [assert_size(4)]
     46 enum PP_NetworkList_State  {
     47   /**
     48    * Network interface is down.
     49    */
     50   PP_NETWORKLIST_STATE_DOWN = 0,
     51 
     52   /**
     53    * Network interface is up.
     54    */
     55   PP_NETWORKLIST_STATE_UP = 1
     56 };
     57 
     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.
     63  */
     64 interface PPB_NetworkList {
     65   /**
     66    * Determines if the specified <code>resource</code> is a
     67    * <code>NetworkList</code> object.
     68    *
     69    * @param[in] resource A <code>PP_Resource</code> resource.
     70    *
     71    * @return Returns <code>PP_TRUE</code> if <code>resource</code> is
     72    * a <code>PPB_NetworkList</code>, <code>PP_FALSE</code>
     73    * otherwise.
     74    */
     75   PP_Bool IsNetworkList([in] PP_Resource resource);
     76 
     77   /**
     78    * Gets number of interfaces in the list.
     79    *
     80    * @param[in] resource A <code>PP_Resource</code> corresponding to a
     81    * network list.
     82    *
     83    * @return Returns number of available network interfaces or 0 if
     84    * the list has never been updated.
     85    */
     86   uint32_t GetCount([in] PP_Resource resource);
     87 
     88   /**
     89    * Gets name of a network interface.
     90    *
     91    * @param[in] resource A <code>PP_Resource</code> corresponding to a
     92    * network list.
     93    * @param[in] index Index of the network interface.
     94    *
     95    * @return Returns name for the network interface with the specified
     96    * <code>index</code>.
     97    */
     98   PP_Var GetName([in] PP_Resource resource,
     99                  [in] uint32_t index);
    100 
    101   /**
    102    * Gets type of a network interface.
    103    *
    104    * @param[in] resource A <code>PP_Resource</code> corresponding to a
    105    * network list.
    106    * @param[in] index Index of the network interface.
    107    *
    108    * @return Returns type of the network interface with the specified
    109    * <code>index</code>.
    110    */
    111   [on_failure=PP_NETWORKLIST_TYPE_UNKNOWN]
    112   PP_NetworkList_Type GetType([in] PP_Resource resource,
    113                               [in] uint32_t index);
    114 
    115   /**
    116    * Gets state of a network interface.
    117    *
    118    * @param[in] resource A <code>PP_Resource</code> corresponding to a
    119    * network list.
    120    * @param[in] index Index of the network interface.
    121    *
    122    * @return Returns current state of the network interface with the
    123    * specified <code>index</code>.
    124    */
    125   [on_failure=PP_NETWORKLIST_STATE_DOWN]
    126   PP_NetworkList_State GetState([in] PP_Resource resource,
    127                                 [in] uint32_t index);
    128 
    129   /**
    130    * Gets list of IP addresses for a network interface.
    131    *
    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.
    139    *
    140    * @return An error code from <code>pp_errors.h</code>.
    141    */
    142   int32_t GetIpAddresses([in] PP_Resource resource,
    143                          [in] uint32_t index,
    144                          [in] PP_ArrayOutput output);
    145 
    146   /**
    147    * Gets display name of a network interface.
    148    *
    149    * @param[in] resource A <code>PP_Resource</code> corresponding to a
    150    * network list.
    151    * @param[in] index Index of the network interface.
    152    *
    153    * @return Returns display name for the network interface with the
    154    * specified <code>index</code>.
    155    */
    156   PP_Var GetDisplayName([in] PP_Resource resource,
    157                         [in] uint32_t index);
    158 
    159   /**
    160    * Gets MTU (Maximum Transmission Unit) of a network interface.
    161    *
    162    * @param[in] resource A <code>PP_Resource</code> corresponding to a
    163    * network list.
    164    * @param[in] index Index of the network interface.
    165    *
    166    * @return Returns MTU for the network interface with the specified
    167    * <code>index</code> or 0 if MTU is unknown.
    168    */
    169   uint32_t GetMTU([in] PP_Resource resource,
    170                   [in] uint32_t index);
    171 
    172 };
    173