2012-05-21 04:12:37 -07:00
|
|
|
/* 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/. */
|
2007-03-22 10:30:00 -07:00
|
|
|
|
|
|
|
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
|
|
|
|
interface nsAString;
|
|
|
|
interface inISearchObserver;
|
|
|
|
|
|
|
|
[scriptable, uuid(D5FA765B-2448-4686-B7C1-5FF13ACB0FC9)]
|
|
|
|
interface inISearchProcess : nsISupports
|
|
|
|
{
|
|
|
|
// indicates if an asynchronous search is in progress
|
|
|
|
readonly attribute boolean isActive;
|
|
|
|
|
|
|
|
// the number of results returned
|
|
|
|
readonly attribute long resultCount;
|
|
|
|
|
|
|
|
// for optimization when doing an async search, this will optionally
|
|
|
|
// destroy old results, assuming they will be fetched as soon as
|
|
|
|
// the observer is notified of their presence. If true, then indices
|
|
|
|
// pass to the get*ResultAt methods will return null for any index
|
|
|
|
// other than the most recent one, and getResults will return null always.
|
|
|
|
attribute boolean holdResults;
|
|
|
|
|
|
|
|
// start a synchronous search
|
|
|
|
void searchSync();
|
|
|
|
|
|
|
|
// start an asynchronous search
|
|
|
|
void searchAsync(in inISearchObserver aObserver);
|
|
|
|
|
|
|
|
// command an async process to stop immediately
|
|
|
|
void searchStop();
|
|
|
|
|
|
|
|
// performs a step in the asynchronous search loop
|
|
|
|
// return indicates true if loop is done, false if it should continue
|
|
|
|
// This is there only for the benefit of asynchronous search controllers,
|
|
|
|
// and is not for use by those who just wish to call searchAsync
|
|
|
|
boolean searchStep();
|
|
|
|
|
|
|
|
// methods for getting results of specific types
|
|
|
|
|
|
|
|
AString getStringResultAt(in long aIndex);
|
|
|
|
|
|
|
|
long getIntResultAt(in long aIndex);
|
|
|
|
|
|
|
|
unsigned long getUIntResultAt(in long aIndex);
|
|
|
|
};
|