Source code

Revision control

Copy as Markdown

Other Tools

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
* vim: sw=2 ts=2 sts=2 et
* 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 nsIVariant;
[ptr] native octetPtr(uint8_t);
[scriptable, builtinclass, uuid(2d09f42f-966e-4663-b4b3-b0c8676bf2bf)]
interface mozIStorageBindingParams : nsISupports {
/**
* Binds aValue to the parameter with the name aName.
*
* @param aName
* The name of the parameter to bind aValue to.
* @param aValue
* The value to bind.
* @warning To bind an array use a specific `bindArrayOf` method instead.
*/
void bindByName(in AUTF8String aName,
in nsIVariant aValue);
[noscript] void bindUTF8StringByName(in AUTF8String aName,
in AUTF8String aValue);
[noscript] void bindStringByName(in AUTF8String aName,
in AString aValue);
[noscript] void bindDoubleByName(in AUTF8String aName,
in double aValue);
[noscript] void bindInt32ByName(in AUTF8String aName,
in long aValue);
[noscript] void bindInt64ByName(in AUTF8String aName,
in long long aValue);
[noscript] void bindNullByName(in AUTF8String aName);
// The noscript version of bindBlobByName can be used with any (const
// uint8_t*, length) pair. The scriptable version is meant for use with
// nsTArray<uint8_t>, which is what xpconnect has to work with.
[noscript, binaryname(BindBlobByName)]
void bindBlobByNameNoscript(in AUTF8String aName,
[const] in octetPtr aValue,
in unsigned long aValueSize);
[binaryname(BindBlobArrayByName)]
void bindBlobByName(in AUTF8String aName, in Array<octet> aValue);
// Convenience routines for storing strings as blobs.
void bindStringAsBlobByName(in AUTF8String aName, in AString aValue);
void bindUTF8StringAsBlobByName(in AUTF8String aName, in AUTF8String aValue);
// The function adopts the storage for the provided blob. After calling
// this function, mozStorage will ensure that free is called on the
// underlying pointer.
[noscript]
void bindAdoptedBlobByName(in AUTF8String aName,
in octetPtr aValue,
in unsigned long aValueSize);
// These allow to bind arrays through the carray() tabled-valued function,
// thus they should only be used when the query contains `carray(?N)`.
void bindArrayOfIntegersByName(in AUTF8String aName,
in Array<int64_t> aValue);
void bindArrayOfDoublesByName(in AUTF8String aName,
in Array<double> aValue);
void bindArrayOfStringsByName(in AUTF8String aName,
in Array<AString> aValue);
void bindArrayOfUTF8StringsByName(in AUTF8String aName,
in Array<AUTF8String> aValue);
/**
* Binds aValue to the parameter with the index aIndex.
*
* @param aIndex
* The zero-based index of the parameter to bind aValue to.
* @param aValue
* The value to bind.
* @warning To bind an array use a specific `bindArrayOf` method instead.
*/
void bindByIndex(in unsigned long aIndex,
in nsIVariant aValue);
[noscript] void bindUTF8StringByIndex(in unsigned long aIndex,
in AUTF8String aValue);
[noscript] void bindStringByIndex(in unsigned long aIndex,
in AString aValue);
[noscript] void bindDoubleByIndex(in unsigned long aIndex,
in double aValue);
[noscript] void bindInt32ByIndex(in unsigned long aIndex,
in long aValue);
[noscript] void bindInt64ByIndex(in unsigned long aIndex,
in long long aValue);
[noscript] void bindNullByIndex(in unsigned long aIndex);
// The noscript version of bindBlobByIndex can be used with any (const
// uint8_t*, length) pair. The scriptable version is meant for use with
// nsTArray<uint8_t>, which is what xpconnect has to work with.
[noscript, binaryname(BindBlobByIndex)]
void bindBlobByIndexNoscript(in unsigned long aIndex,
[const] in octetPtr aValue,
in unsigned long aValueSize);
[binaryname(BindBlobArrayByIndex)]
void bindBlobByIndex(in unsigned long aIndex,
in Array<octet> aValue);
// Convenience routines for storing strings as blobs.
void bindStringAsBlobByIndex(in unsigned long aIndex, in AString aValue);
void bindUTF8StringAsBlobByIndex(in unsigned long aIndex, in AUTF8String aValue);
// The function adopts the storage for the provided blob. After calling
// this function, mozStorage will ensure that free is called on the
// underlying pointer.
[noscript]
void bindAdoptedBlobByIndex(in unsigned long aIndex,
in octetPtr aValue,
in unsigned long aValueSize);
// These allow to bind arrays through the carray() tabled-valued function,
// thus they should only be used when the query contains `carray(?N)`.
void bindArrayOfIntegersByIndex(in unsigned long aIndex,
in Array<int64_t> aValue);
void bindArrayOfDoublesByIndex(in unsigned long aIndex,
in Array<double> aValue);
void bindArrayOfStringsByIndex(in unsigned long aIndex,
in Array<AString> aValue);
void bindArrayOfUTF8StringsByIndex(in unsigned long aIndex,
in Array<AUTF8String> aValue);
};