mailnews/addrbook/public/nsIAbLDAPCard.idl
author Stefan Sitter <ssitter@gmail.com>
Mon, 29 Jun 2015 16:25:25 +0200
changeset 22819 99d02f70de9aff76228a13857aaf4020863c6974
parent 12286 84ac3c71109811da751f0ef2d72108075938f094
child 29525 d95ef8a28c21b444910b5b3fbb4400aa1e3ed491
permissions -rw-r--r--
Bug 1163306 - enable icaljs by default only on comm-central, use libical on comm-aurora. r=philipp

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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 "nsIAbCard.idl"

interface nsIAbLDAPAttributeMap;
interface nsILDAPModification;
interface nsILDAPMessage;
interface nsIArray;

[scriptable, uuid(2831b3b0-30ef-4070-8ad3-90ae04980e11)]
interface nsIAbLDAPCard : nsISupports
{
  /**
   * Returns the required information for an LDAP update message.
   *
   * @param  aAttrMap    The map between LDAP attributes and card properties
   * @param  aClassCount The number of objectClass values
   * @param  aClasses    The objectClass values that the card needs to have
   * @param  updateType  This should be one of:
   *                         nsILDAPModification::MOD_ADD
   *                         nsILDAPModification::MOD_REPLACE
   *
   * @return             Returns an array of modifications required to
   *                     add or replace the card in the ldap directory.
   */
  nsIArray getLDAPMessageInfo(in nsIAbLDAPAttributeMap aAttrMap,
                              in unsigned long aClassCount,
                              [array, size_is(aClassCount)] in string aClasses,
                              in long updateType);

  /**
   * Builds a relative distinguished name (RDN) with the given set of
   * attributes.
   *
   * @param  aAttrMap    The map between LDAP attributes and card properties
   * @param  aAttrCount  The number of attributes to use for the RDN
   * @param  aAttributes The name of the attributes to use for the RDN
   *
   */
  ACString buildRdn(in nsIAbLDAPAttributeMap aAttrMap,
                    in unsigned long aAttrCount,
                    [array, size_is(aAttrCount)] in string aAttributes);
  
  /**
   * Stores meta-properties from a raw LDAP search result.
   *
   * @param aMessage     The LDAP search result message.
   *
   */
  void setMetaProperties(in nsILDAPMessage aMessage);

  attribute ACString dn;
};