ldap/xpcom/src/nsLDAPMessage.h
author Geoff Lankow <geoff@darktrojan.net>
Tue, 02 Mar 2021 04:14:40 +0000
changeset 41378 a60c56ed594f23bac0fe1ece97d032e3bddcfa35
parent 38786 06085479b24375af086fd0000cc00b5ce78d1d61
permissions -rw-r--r--
Bug 1695478 - Fix compose spell checker when no dictionaries are installed. r=aleca a=wsmwk Adds a function to return the spell checker or null if there are no dictionaries available. I've also rearranged the context menu spell check initialisation code to match that of nsContextMenu.js, and added the "undo add to dictionary" item. Differential Revision: https://phabricator.services.mozilla.com/D106858

/* -*- 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/. */

#ifndef _nsLDAPMessage_h_
#define _nsLDAPMessage_h_

#include "ldap.h"
#include "nsILDAPMessage.h"
#include "nsILDAPOperation.h"
#include "nsCOMPtr.h"

// 76e061ad-a59f-43b6-b812-ee6e8e69423f
//
#define NS_LDAPMESSAGE_CID                           \
  {                                                  \
    0x76e061ad, 0xa59f, 0x43b6, {                    \
      0xb8, 0x12, 0xee, 0x6e, 0x8e, 0x69, 0x42, 0x3f \
    }                                                \
  }

class nsLDAPMessage : public nsILDAPMessage {
  friend class nsLDAPOperation;
  friend class nsLDAPConnection;
  friend class nsLDAPConnectionRunnable;
  friend class nsOnLDAPMessageRunnable;

 public:
  NS_DECL_THREADSAFE_ISUPPORTS
  NS_DECL_NSILDAPMESSAGE

  // constructor & destructor
  //
  nsLDAPMessage();

 protected:
  virtual ~nsLDAPMessage();

  nsresult IterateAttrErrHandler(int32_t aLderrno, uint32_t* aAttrCount,
                                 char*** aAttributes, BerElement* position);
  nsresult IterateAttributes(uint32_t* aAttrCount, char*** aAttributes,
                             bool getP);
  nsresult Init(nsILDAPConnection* aConnection, LDAPMessage* aMsgHandle);
  LDAPMessage* mMsgHandle;                // the message we're wrapping
  nsCOMPtr<nsILDAPOperation> mOperation;  // operation this msg relates to

  LDAP* mConnectionHandle;  // cached connection this op is on

  // since we're caching the connection handle (above), we need to
  // hold an owning ref to the relevant nsLDAPConnection object as long
  // as we're around
  //
  nsCOMPtr<nsILDAPConnection> mConnection;

  // the next five member vars are returned by ldap_parse_result()
  //
  int mErrorCode;
  char* mMatchedDn;
  char* mErrorMessage;
  char** mReferrals;
  LDAPControl** mServerControls;
};

#endif  // _nsLDAPMessage_h