/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * 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 the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Dan Mosedale (Original Author) * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsIAutoCompleteSession.idl" // forward decls // interface nsILDAPURL; interface nsILDAPAutoCompFormatter; interface nsIAuthPrompt; interface nsIMutableArray; /** * Extends nsIAutoCompleteSession to have various LDAP-specific parameters. * and output format. */ [scriptable, uuid(e7f26534-f96c-4c87-803c-30cdf0bc2973)] 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 AUTF8String 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; /** * "Login as..." this ID. Currently, this must be specified as a DN. * In the future, we may support userid and/or email address as well. * If unset, bind anonymously. */ attribute AUTF8String login; /** * If set, use this object to get a password for logging in to the server. */ attribute nsIAuthPrompt authPrompter; /** * What version of the LDAP protocol should be used? Allowed version * number constants are defined in nsILDAPConnection.idl. * * @exception NS_ERROR_ILLEGAL_VALUE illegal version num passed to setter * @exception NS_ERROR_NULL_POINTER null pointer passed to getter */ attribute unsigned long version; /** * If set, these arrays of nsILDAPControls are passed through to the * nsILDAPOperation that searchExt is called on. */ attribute nsIMutableArray searchServerControls; attribute nsIMutableArray searchClientControls; };