text: /* Editor Settings: expandtabs and use 4 spaces for indentation
   * ex: set softtabstop=4 tabstop=8 expandtab shiftwidth=4: *
   * -*- mode: c, c-basic-offset: 4 -*- */
  
  /*
   * Copyright © BeyondTrust Software 2004 - 2019
   * All rights reserved.
   *
   * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   *
   * BEYONDTRUST MAKES THIS SOFTWARE AVAILABLE UNDER OTHER LICENSING TERMS AS
   * WELL. IF YOU HAVE ENTERED INTO A SEPARATE LICENSE AGREEMENT WITH
   * BEYONDTRUST, THEN YOU MAY ELECT TO USE THE SOFTWARE UNDER THE TERMS OF THAT
   * SOFTWARE LICENSE AGREEMENT INSTEAD OF THE TERMS OF THE APACHE LICENSE,
   * NOTWITHSTANDING THE ABOVE NOTICE.  IF YOU HAVE QUESTIONS, OR WISH TO REQUEST
   * A COPY OF THE ALTERNATE LICENSING TERMS OFFERED BY BEYONDTRUST, PLEASE CONTACT
   * BEYONDTRUST AT beyondtrust.com/contact
   */
  
  #ifndef __LWIRECTYPELOOKUP_H__
  #define __LWIRECTYPELOOKUP_H__
  
  #include "LWIPlugIn.h"
  #include "LWIMutexLock.h"
  
  class LWIRecTypeLookup
  {
  public:
  
      typedef enum
      {
          idx_unknown,                        //  0
          idx_kDSStdRecordTypeUsers,          //  1
          idx_kDSStdRecordTypeGroups,         //  2
          idx_kDSStdRecordTypeComputerLists,  //  3
          idx_kDSStdRecordTypeComputerGroups, //  4
          idx_kDSStdRecordTypeComputers,      //  5
          idx_sentinel                        //  6
      }  Index_t;
  
  private:
  
      LWIRecTypeLookup();
      ~LWIRecTypeLookup();
  
      LWIRecTypeLookup(const LWIRecTypeLookup& other);
      LWIRecTypeLookup& operator=(const LWIRecTypeLookup& other);
  
  public:
  
      static long Initialize();
      static void Cleanup();
  
      static long GetVector(tDataListPtr List, PLWIBITVECTOR* ppVector);
      static long GetVector(tDataNodePtr Node, PLWIBITVECTOR* ppVector);
      static long GetVector(const char* Item, PLWIBITVECTOR* ppVector);
      static Index_t GetIndex(const char* Item);
  
  private:
  
      static CFMutableDictionaryRef _dictionary;
      static const char* _type;
  };
  
  #endif /* __LWIRECTYPELOOKUP_H__ */
  
  
  