storage/VacuumManager.h
author Mike Hommey <mh+mozilla@glandium.org>
Thu, 20 Jul 2017 14:06:23 +0900
changeset 612007 499490d18b16ae716794ae027179cce6cb20147c
parent 265526 dd79977a3286d947aff8e270245d05c05e676964
child 489668 cbb8fdf1daf98a15f7d57f6b08d273bdf96aa1a0
child 681167 ff323852653709c7839f71b5b64594f638ba8aab
permissions -rw-r--r--
Bug 1382525 - Move LLVM_CONFIG out of mozconfig.common. r?chmanchester LLVM_CONFIG, per the contents of toolkit/moz.configure, is tied to --enable-stylo, but it currently is set on all types of builds. It currently happens to work, but it's actually not meant to, and sure enough, the fix for bug 1374727 exacerbates that. So we create a new mozconfig.stylo file that enables stylo and sets LLVM_CONFIG, such that only build types that do enable stylo have LLVM_CONFIG set.

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 * vim: sw=2 ts=2 et lcs=trail\:.,tab\:>~ :
 * 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/. */

#ifndef mozilla_storage_VacuumManager_h__
#define mozilla_storage_VacuumManager_h__

#include "nsCOMPtr.h"
#include "nsIObserver.h"
#include "mozIStorageStatementCallback.h"
#include "mozIStorageVacuumParticipant.h"
#include "nsCategoryCache.h"
#include "mozilla/Attributes.h"

namespace mozilla {
namespace storage {

class VacuumManager final : public nsIObserver
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIOBSERVER

  VacuumManager();

  /**
   * Obtains the VacuumManager object.
   */
  static VacuumManager * getSingleton();

private:
  ~VacuumManager();

  static VacuumManager *gVacuumManager;

  // Cache of components registered in "vacuum-participant" category.
  nsCategoryCache<mozIStorageVacuumParticipant> mParticipants;
};

} // namespace storage
} // namespace mozilla

#endif