storage/public/mozIStorageFunction.idl
author Ehsan Akhgari <ehsan@mozilla.com>
Wed, 12 Dec 2012 00:05:49 -0500
changeset 115629 553a3bcf1fe771c09cdfd1640e8059c312622b4a
parent 94475 f4157e8c410708d76703f19e4dfb61859bfe32d8
permissions -rw-r--r--
Backed out 7 changesets (bug 769288) because of leaks Backed out changeset b2fb475b6e4e (bug 769288) Backed out changeset 912331d0c2fd (bug 769288) Backed out changeset 6d8d78bd56a9 (bug 769288) Backed out changeset e75cd1e1fca3 (bug 769288) Backed out changeset e10c24f10bd2 (bug 769288) Backed out changeset 7b0fdedb4fa9 (bug 769288) Backed out changeset 42b468942a84 (bug 769288)

/* -*- 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"

#include "mozIStorageValueArray.idl"

interface mozIStorageConnection;
interface nsIArray;
interface nsIVariant;

/**
 * mozIStorageFunction is to be implemented by storage consumers that
 * wish to receive callbacks during the request execution.
 *
 * SQL can apply functions to values from tables. Examples of
 * such functions are MIN(a1,a2) or SQRT(num). Many functions are
 * implemented in SQL engine.
 *
 * This interface allows consumers to implement their own,
 * problem-specific functions.
 * These functions can be called from triggers, too.
 *
 */
[scriptable, function, uuid(9ff02465-21cb-49f3-b975-7d5b38ceec73)]
interface mozIStorageFunction : nsISupports {
  /**
   * onFunctionCall is called when execution of a custom
   * function should occur.
   * 
   * @param aNumArguments         The number of arguments
   * @param aFunctionArguments    The arguments passed in to the function
   *
   * @returns any value as Variant type.
   */

  nsIVariant onFunctionCall(in mozIStorageValueArray aFunctionArguments);
};