tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

mozIStorageVacuumParticipant.idl (2661B)


      1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
      2 * vim: sw=2 ts=2 et lcs=trail\:.,tab\:>~ :
      3 * This Source Code Form is subject to the terms of the Mozilla Public
      4 * License, v. 2.0. If a copy of the MPL was not distributed with this
      5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #include "nsISupports.idl"
      8 
      9 interface mozIStorageAsyncConnection;
     10 
     11 /**
     12 * This interface contains the information that the Storage service needs to
     13 * vacuum a database.  This interface is created as a service through the
     14 * category manager with the category "vacuum-participant".
     15 * Please see https://developer.mozilla.org/en/mozIStorageVacuumParticipant for
     16 * more information.
     17 */
     18 [scriptable, uuid(8f367508-1d9a-4d3f-be0c-ac11b6dd7dbf)]
     19 interface mozIStorageVacuumParticipant : nsISupports {
     20  /**
     21   * The expected page size in bytes for the database.  The vacuum manager will
     22   * try to correct the page size by executing a full vacuum.
     23   *
     24   * @note If the database is using the WAL journal mode, the page size won't
     25   *       be changed to the requested value.  See bug 634374.
     26   * @note Valid page size values are powers of 2 between 512 and 65536.
     27   *       The suggested value is mozIStorageConnection::defaultPageSize.
     28   */
     29  readonly attribute long expectedDatabasePageSize;
     30 
     31  /**
     32   * Whether the main schema should be using auto_vacuum = INCREMENTAL.
     33   * This will cause auto_vacuum to change to INCREMENTAL if it's not set yet.
     34   * It is not possible to change mode of any attached databases through this,
     35   * to do that you must open a separate connection and use asyncVacuum() on it.
     36   */
     37  readonly attribute boolean useIncrementalVacuum;
     38 
     39  /**
     40   * Connection to the database file to be vacuumed.
     41   */
     42  readonly attribute mozIStorageAsyncConnection databaseConnection;
     43 
     44  /**
     45   * Notifies when a vacuum operation begins.  Listeners should avoid using the
     46   * database till onEndVacuum is received.
     47   *
     48   * @return true to proceed with the vacuum, false if the participant wants to
     49   *         opt-out for now, it will be retried later.  Useful when participant
     50   *         is running some other heavy operation that can't be interrupted.
     51   *
     52   * @note When a vacuum operation starts or ends it will also dispatch global
     53   *       "vacuum-begin" and "vacuum-end" notifications through the observer
     54   *       service with the data argument being the database filename.
     55   */
     56  boolean onBeginVacuum();
     57 
     58  /**
     59   * Notifies when a vacuum operation ends.
     60   *
     61   * @param aSucceeded
     62   *        reports if the vacuum succeeded or failed.
     63   */
     64  void onEndVacuum(in boolean aSucceeded);
     65 };