mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-25 18:07:31 +09:00
164 lines
4.5 KiB
Text
164 lines
4.5 KiB
Text
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/* 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 nsIAbDirSearchListener;
|
|
interface nsIAbCard;
|
|
interface nsIAbDirectory;
|
|
|
|
/**
|
|
* The arguments for a query.
|
|
*
|
|
* Contains an expression for perform matches
|
|
* and an array of properties which should be
|
|
* returned if a match is found from the expression
|
|
*
|
|
*/
|
|
[scriptable, uuid(03af3018-2590-4f4c-a88c-1fff6595ef05)]
|
|
interface nsIAbDirectoryQueryArguments : nsISupports
|
|
{
|
|
/**
|
|
* Defines the boolean expression for
|
|
* the matching of cards
|
|
*
|
|
*/
|
|
attribute nsISupports expression;
|
|
|
|
/**
|
|
* Defines if sub directories should be
|
|
* queried
|
|
*
|
|
*/
|
|
attribute boolean querySubDirectories;
|
|
|
|
/**
|
|
* A parameter which can be used to pass in data specific to a particular
|
|
* type of addressbook.
|
|
*/
|
|
attribute nsISupports typeSpecificArg;
|
|
|
|
/**
|
|
* A custom search filter which user wants to use in LDAP query.
|
|
*/
|
|
attribute AUTF8String filter;
|
|
};
|
|
|
|
|
|
[scriptable, uuid(3A6E0C0C-1DD2-11B2-B23D-EA3A8CCB333C)]
|
|
interface nsIAbDirectoryQueryPropertyValue : nsISupports
|
|
{
|
|
/**
|
|
* The property which should be matched
|
|
*
|
|
* For example 'primaryEmail' or 'homePhone'
|
|
* for card properties.
|
|
*
|
|
* Two further properties are defined that
|
|
* do not exist as properties on a card.
|
|
*
|
|
* 'card:nsIAbCard' which represents the interface
|
|
* of a card component
|
|
*
|
|
*/
|
|
readonly attribute string name;
|
|
|
|
/**
|
|
* The value of the property
|
|
*
|
|
*/
|
|
readonly attribute wstring value;
|
|
|
|
/**
|
|
* The value of the property
|
|
* as an interface
|
|
*
|
|
* Only valid if the corresponding
|
|
* property name is related to an
|
|
* interface instead of a wstring
|
|
*
|
|
*/
|
|
readonly attribute nsISupports valueISupports;
|
|
};
|
|
|
|
[scriptable, uuid(516e7ffa-69bc-41db-a493-dfb4895832f3)]
|
|
interface nsIAbDirectoryQueryResultListener : nsISupports
|
|
{
|
|
/**
|
|
* Called when a match is found. May be called from a different thread to
|
|
* the one that initiates the query.
|
|
*
|
|
* @param aCard An individual result associated returned from a query
|
|
*/
|
|
void onQueryFoundCard(in nsIAbCard aCard);
|
|
|
|
/**
|
|
* List of defined query results
|
|
*
|
|
*/
|
|
const long queryResultMatch = 0;
|
|
const long queryResultComplete = 1;
|
|
const long queryResultStopped = 2;
|
|
const long queryResultError = 3;
|
|
|
|
/**
|
|
* Called when a query has finished. May be called from a different thread
|
|
* to the one that initiates the query.
|
|
*
|
|
* @param aResult A result code from the list above.
|
|
*
|
|
* @param aErrorCode An error code specific to the type of query.
|
|
*/
|
|
void onQueryResult(in long aResult, in long aErrorCode);
|
|
};
|
|
|
|
[scriptable, uuid(60b5961c-ce61-47b3-aa99-6d865f734dee)]
|
|
interface nsIAbDirectoryQuery : nsISupports
|
|
{
|
|
/**
|
|
* Initiates a query on a directory and sub-directories for properties
|
|
* on cards
|
|
*
|
|
* @param aDirectory A directory that the query may get extra details
|
|
* from.
|
|
*
|
|
* @param aArguments The properties and values to match value could of
|
|
* type nsIAbDirectoryQueryMatchItem for matches other
|
|
* than ?contains?
|
|
*
|
|
* @param aListener The listener which will obtain individual query
|
|
* results.
|
|
*
|
|
* @param aResultLimit Limits the number of results returned to a maximum
|
|
* value.
|
|
*
|
|
* @param aTimeOut The maximum length of time for the query
|
|
*
|
|
* @return A context id for the query
|
|
*/
|
|
long doQuery(in nsIAbDirectory aDirectory,
|
|
in nsIAbDirectoryQueryArguments aArguments,
|
|
in nsIAbDirSearchListener aListener,
|
|
in long aResultLimit,
|
|
in long aTimeOut);
|
|
|
|
/**
|
|
* Stops an existing query operation if
|
|
* query operation is asynchronous
|
|
*
|
|
* The nsIAbDirectoryQueryResultListener will
|
|
* be notified when query has stopped
|
|
*
|
|
* It is implementation specific if notification
|
|
* synchronous or asynchronous
|
|
*
|
|
* @param contextID
|
|
* The unique number returned from
|
|
* the doQuery methods
|
|
*
|
|
*/
|
|
void stopQuery (in long contextID);
|
|
};
|