storage/public/mozIStorageVacuumParticipant.idl

Wed, 31 Dec 2014 06:55:46 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:46 +0100
changeset 1
ca08bd8f51b2
permissions
-rw-r--r--

Added tag TORBROWSER_REPLICA for changeset 6474c204b198

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

mercurial