DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (777e60ca8853)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

interface nsIDOMDOMRequest;

/**
 * Represents a data interface for which the manager is recording statistics.
 */
[scriptable, uuid(f540615b-d803-43ff-8200-2a9d145a5645)]
interface nsIDOMMozNetworkStatsInterface : nsISupports
{
  readonly attribute long type;

  /**
   * Id value is '0' for wifi or the iccid for mobile (SIM).
   */
  readonly attribute DOMString id;
};

[scriptable, builtinclass, uuid(063ebeb2-5c6e-47ae-bdcd-5e6ebdc7a68c)]
interface nsIDOMMozNetworkStatsAlarm : nsISupports
{
  readonly attribute unsigned long alarmId;
  readonly attribute nsIDOMMozNetworkStatsInterface network;
  readonly attribute long threshold;
  readonly attribute jsval data;
};

[scriptable,  uuid(8a66f4c1-0c25-4a66-9fc5-0106947b91f9)]
interface nsIDOMMozNetworkStatsManager : nsISupports
{
  /**
   * Constants for known interface types.
   */
  const long WIFI = 0;
  const long MOBILE = 1;

  /**
   * Find samples between two dates start and end, both included.
   *
   * If options is provided, per-app or per-system service usage will be
   * retrieved; otherwise the target will be overall system usage.
   *
   * If success, the request result will be an nsIDOMMozNetworkStats object.
   */
  nsIDOMDOMRequest getSamples(in nsIDOMMozNetworkStatsInterface network,
                              in jsval start,
                              in jsval end,
                   [optional] in jsval options /* NetworkStatsGetOptions */);

  /**
   * Install an alarm on a network. The network must be in the return of
   * getAvailableNetworks() otherwise an "InvalidNetwork" exception will
   * be raised.
   *
   * When total data usage reaches threshold bytes, a "networkstats-alarm"
   * system message is sent to the application, where the optional parameter
   * |data| must be a cloneable object.
   *
   * If success, the |result| field of the DOMRequest keeps the alarm Id.
   */
  nsIDOMDOMRequest addAlarm(in nsIDOMMozNetworkStatsInterface network,
                            in long threshold,
                            [optional] in jsval options /* NetworkStatsAlarmOptions */);

  /**
   * Obtain all alarms for those networks returned by getAvailableNetworks().
   * If a network is provided, only retrieves the alarms for that network.
   * The network must be one of those returned by getAvailebleNetworks() or an
   * "InvalidNetwork" exception will be raised.
   *
   * Each alarm object has the same fields as that in the system message:
   *  - alarmId
   *  - network
   *  - threshold
   *  - data
   */
  nsIDOMDOMRequest getAllAlarms([optional] in nsIDOMMozNetworkStatsInterface network);

  /**
   * Remove all network alarms. If an |alarmId| is provided, then only that
   * alarm is removed.
   */
  nsIDOMDOMRequest removeAlarms([optional] in long alarmId);

  /**
   * Remove all stats related with the provided network from DB.
   */
  nsIDOMDOMRequest clearStats(in nsIDOMMozNetworkStatsInterface network);

  /**
   * Remove all stats in the database.
   */
  nsIDOMDOMRequest clearAllStats();

  /**
   * Return available networks that used to be saved in the database.
   */
  nsIDOMDOMRequest getAvailableNetworks(); // array of nsIDOMMozNetworkStatsInterface.

  /**
   * Return available service types that used to be saved in the database.
   */
  nsIDOMDOMRequest getAvailableServiceTypes(); // array of string.

  /**
   * Minimum time in milliseconds between samples stored in the database.
   */
  readonly attribute long sampleRate;

  /**
   * Time in milliseconds recorded by the API until present time. All samples
   * older than maxStorageAge from now are deleted.
   */
  readonly attribute long long maxStorageAge;
};