/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 2001 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): Dan Mosedale (Original Author) * */ #include "nsIAutoCompleteSession.idl" // forward decls // interface nsILDAPURL; interface nsILDAPAutoCompFormatter; /** * Extends nsIAutoCompleteSession to have various LDAP-specific parameters. * and output format. */ [scriptable, uuid(82b6a78e-1dd2-11b2-a3d0-876e20e7b350)] interface nsILDAPAutoCompleteSession : nsIAutoCompleteSession { /** * A template used to construct the RFC 1960 LDAP search filter to use * while autocompleting. * * The authoritative documentation for the format in use can be found at * at . * The Linux/OpenLDAP man page for ldapfilter.conf(5) does a pretty decent * job as well, however. * * As of this writing, the "@mozilla.org/autocompleteSession;1?type=ldap" * contractid happens to use a default value of * (|(cn=%v1*%v2-*)(mail=%v1*%v2-*)(sn=%v1*%v2-*)) * * @exception NS_ERROR_NULL_POINTER NULL pointer passed to getter * @exception NS_ERROR_OUT_OF_MEMORY Getter couldn't allocate string */ attribute wstring filterTemplate; /** * At most this many nsIAutoCompleteItems will be returned. This * is useful for keeping bandwidth usage over slow-speed * connections as well as ensuring that the number of choices * offered in the UI is manageble. * * 1-65535 are interpreted literally * 0 means "unlimited" * -1 uses the default limit for the LDAP connection in use * * @exception NS_ERROR_NULL_POINTER NULL pointer passed to getter * @exception NS_ERROR_ILLEGAL_VALUE Out-of-range value passed to setter */ attribute long maxHits; /** * Strings shorter than this will return |nsIAutoCompleteStatus::ignored| * rather than triggering a search. This allows browsers to be * configured to not search on substrings so short that they * aren't indexed by the LDAP server (such searches can use * significantly more server resources and return a very large * number of entries). cjkMinStringLength is used for CJK * languages, and minStringLength for everything else. As of this * writing, the "@mozilla.org/autocompleteSession;1?type=ldap" * contractid uses defaults of two and zero, respectively. This * avoids most unindexed searches with at least one widely-deployed * webserver, but allows CJK languages, where a single glyph can be an * an entire name to still get results. * * @exception NS_ERROR_NULL_POINTER NULL pointer passed to getter */ attribute unsigned long minStringLength; attribute unsigned long cjkMinStringLength; /** * LDAP server to complete against, in ldap: URL format. * May change to an nsILDAPServer once that infrastructure lands. * * @exception NS_ERROR_NULL_POINTER NULL pointer passed to getter */ attribute nsILDAPURL serverURL; /** * Callback used to format an individual LDAP message into an * nsIAutoCompleteItem. */ attribute nsILDAPAutoCompFormatter formatter; }; .