xpcom/base/nsIStatusReporter.idl
author B2G Bumper Bot <release+b2gbumper@mozilla.com>
Fri, 26 Feb 2016 15:39:19 -0800
changeset 325591 9267d7d90e5741f47d0b68ce9227fbacf8d4aa2e
parent 265121 8bc7561d75577b08ae0c5449104378144a6fc9e0
permissions -rw-r--r--
Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/60965134996d Author: Sean Lee <weilonge@gmail.com> Desc: Merge pull request #34063 from weilonge/seanlee/DataSync/master/Bug1244169 Bug 1244169 - Implement Tabs sync data adapter. r=ferjm,michielbdejong ======== https://hg.mozilla.org/integration/gaia-central/rev/644529e8fb66 Author: Sean Lee <selee@mozilla.com> Desc: Bug 1244169 - Implement Tabs sync data adapter. r=ferjm,michielbdejong

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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 nsISimpleEnumerator;

/*
 * Status reporters show Firefox's service status.
 */

[scriptable, uuid(ffcb716c-deeb-44ea-9d9d-ab25dc6980a8)]
interface nsIStatusReporter : nsISupports
{
  readonly attribute ACString name;
  /*
   * The name of the process containing this reporter.  Each reporter initially
   * has "" in this field, indicating that it applies to the current process.
   */
  readonly attribute ACString process;
  /*
   * A human-readable status description.
   */
  readonly attribute AUTF8String description;
};

[scriptable, uuid(fd531273-3319-4fcd-90f2-9f53876c3828)]
interface nsIStatusReporterManager : nsISupports
{

  /*
   * Return an enumerator of nsIStatusReporters that are currently registered.
   */
  nsISimpleEnumerator enumerateReporters();

  /*
   * Register the given nsIStatusReporter.  After a reporter is registered,
   * it will be available via enumerateReporters().  The Manager service
   * will hold a strong reference to the given reporter.
   */
  void registerReporter(in nsIStatusReporter reporter);

  /*
   * Unregister the given status reporter.
   */
  void unregisterReporter(in nsIStatusReporter reporter);

 /*
  * Initialize.
  */
  void init();

  /*
   * Dump service status as a json file
   */
  void dumpReports();
};

%{C++

/*
 * Note that this defaults 'process' to "", which is usually what's desired.
 */
#define NS_STATUS_REPORTER_IMPLEMENT(_classname, _name, _desc_Function)       \
    class StatusReporter_##_classname final : public nsIStatusReporter {      \
      ~StatusReporter_##_classname() {}                                       \
    public:                                                                   \
      NS_DECL_ISUPPORTS                                                       \
      NS_IMETHOD GetName(nsACString &name) override                           \
        { name.AssignLiteral(_name); return NS_OK; }                          \
      NS_IMETHOD GetProcess(nsACString &process) override                     \
        { process.Truncate(); return NS_OK; }                                 \
      NS_IMETHOD GetDescription(nsACString &desc) override                    \
        { _desc_Function(desc); return NS_OK; }                               \
    };                                                                        \
    NS_IMPL_ISUPPORTS(StatusReporter_##_classname, nsIStatusReporter)

#define NS_STATUS_REPORTER_NAME(_classname)  StatusReporter_##_classname

nsresult NS_RegisterStatusReporter(nsIStatusReporter *reporter);
nsresult NS_UnregisterStatusReporter(nsIStatusReporter *reporter);
nsresult NS_DumpStatusReporter();

#define NS_STATUS_REPORTER_MANAGER_CID \
{ 0xe8eb4e7e, 0xf2cf, 0x45e5, \
{ 0xb8, 0xa4, 0x6a, 0x0f, 0x50, 0x18, 0x84, 0x63 } }
%}