storage/public/mozIStorageVacuumParticipant.idl

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     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/. */
     7 #include "nsISupports.idl"
     9 interface mozIStorageConnection;
    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 during idle based on this value.
    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;
    31   /**
    32    * Connection to the database file to be vacuumed.
    33    */
    34   readonly attribute mozIStorageConnection databaseConnection;
    36   /**
    37    * Notifies when a vacuum operation begins.  Listeners should avoid using the
    38    * database till onEndVacuum is received.
    39    *
    40    * @return true to proceed with the vacuum, false if the participant wants to
    41    *         opt-out for now, it will be retried later.  Useful when participant
    42    *         is running some other heavy operation that can't be interrupted.
    43    *
    44    * @note When a vacuum operation starts or ends it will also dispatch a global
    45    *       "heavy-io-task" notification through the observer service with the
    46    *       data argument being either "vacuum-begin" or "vacuum-end".
    47    */
    48   boolean onBeginVacuum();
    50   /**
    51    * Notifies when a vacuum operation ends.
    52    *
    53    * @param aSucceeded
    54    *        reports if the vacuum succeeded or failed.
    55    */
    56   void onEndVacuum(in boolean aSucceeded);
    57 };

mercurial