storage/mozIStorageAsyncStatement.idl
author Gregory Szorc <gps@mozilla.com>
Fri, 27 Oct 2017 14:55:31 -0700
changeset 442301 5e5ee518a4b9d43e72c879e9d124aa432fb06e1a
parent 277037 ad01543457e739b4eee7a245e16734a3ecfd10ad
child 535975 41f28d23024ebecf5445896cd3b6b39a6b650a9d
permissions -rw-r--r--
Bug 1412431 - Remove support for MOZ_PREFLIGHT and MOZ_POSTFLIGHT; r=nalexander These variables are unused in the repo. The %_ALL variation is used for sccache, however. The last use of these variables was removed when support for MacOS universal builds was removed. Someone somewhere may be relying on this functionality. But I don't think it is worth continuing to support in client.mk. If someone really needs it, we can reintroduce support for the feature elsewhere, like in mach or via mozconfig support somehow. MozReview-Commit-ID: 4KznCmK3JTN

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 * vim: sw=2 ts=2 sts=2 expandtab
 * 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 "mozIStorageBaseStatement.idl"

/**
 * An asynchronous SQL statement.  This differs from mozIStorageStatement by
 * only being usable for asynchronous execution.  (mozIStorageStatement can
 * be used for both synchronous and asynchronous purposes.)  This specialization
 * for asynchronous operation allows us to avoid needing to acquire
 * synchronization primitives also used by the asynchronous execution thread.
 * In contrast, mozIStorageStatement may need to acquire the primitives and
 * consequently can cause the main thread to lock for extended intervals while
 * the asynchronous thread performs some long-running operation.
 */
[scriptable, uuid(52e49370-3b2e-4a27-a3fc-79e20ad4056b)]
interface mozIStorageAsyncStatement : mozIStorageBaseStatement {
  /*
   * 'params' provides a magic JS helper that lets you assign parameters by
   * name.  Unlike the helper on mozIStorageStatement, you cannot enumerate
   * in order to find out what parameters are legal.
   *
   * This does not work for BLOBs.  You must use an explicit binding API for
   * that.
   *
   * example:
   *  stmt.params.foo = 1;
   *  stmt.params["bar"] = 2;
   *  let argName = "baz";
   *  stmt.params[argName] = 3;
   *
   * readonly attribute nsIMagic params;
   */
};