/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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 nsIDOMWindow;

[scriptable, uuid(bd02d09c-41ab-47b7-9319-57aa8e5059b0)]
interface nsIDataStoreService : nsISupports
{
  void installDataStore(in unsigned long appId,
                        in DOMString name,
                        in DOMString originURL,
                        in DOMString manifestURL,
                        in boolean readOnly);

  void installAccessDataStore(in unsigned long appId,
                              in DOMString name,
                              in DOMString originURL,
                              in DOMString manifestURL,
                              in boolean readOnly);

  nsISupports getDataStores(in nsIDOMWindow window,
                            in DOMString name);

  // This is an array of objects composed by:
  // - readOnly: boolean
  // - name: DOMString
  // - owner: DOMString
  // - enabled: true/false - true if this dataStore is ready to be used.
  jsval getDataStoresInfo(in DOMString name,
                          in unsigned long appId);
};
