# pldap.h File Reference

`#include <ptlib/sockets.h>`
`#include <ptlib/pluginmgr.h>`
`#include <map>`
`#include <list>`

Go to the source code of this file.

## Classes

class | PLDAPSession
| This class will create an LDAP client to access a remote LDAP server. More...
class | PLDAPSession::ModAttrib
class | PLDAPSession::StringModAttrib
class | PLDAPSession::BinaryModAttrib
class | PLDAPSession::SearchContext
class | PLDAPAttributeBase
class | PLDAPStructBase
class | PLDAPSchema
class | PLDAPSchema::Attribute
class | LDAPPluginServiceDescriptor< className >

## Defines

#define | LDAP_Schema(name)
#define | PLDAP_STRUCT_BEGIN(name)
#define | PLDAP_ATTRIBUTE(base, type, attribute, pointer, init)
#define | PLDAP_ATTR_SIMP(base, type, attribute) PLDAP_ATTRIBUTE(base, type, attribute, NULL, ;)
#define | PLDAP_ATTR_INIT(base, type, attribute, init) PLDAP_ATTRIBUTE(base, type, attribute, NULL, instance = init;)
#define | PLDAP_BINATTRIB(base, type, attribute) PLDAP_ATTRIBUTE(base, type, attribute, &((base &)base::GetInitialiser()).attribute, ;)
#define | PLDAP_STRUCT_END() };

## Define Documentation

#define LDAP_Schema | ( | name |  | ) |

Value:

    static LDAPPluginServiceDescriptor<name##_schema> name##_schema_descriptor; \
      PCREATE_PLUGIN(name##_schema, PLDAPSchema, &name##_schema_descriptor)

#define PLDAP_ATTR_INIT | ( | base,
|  | type,
|  | attribute,
|  | init |  | ) | PLDAP_ATTRIBUTE(base, type, attribute, NULL, instance = init;)

#define PLDAP_ATTR_SIMP | ( | base,
|  | type,
|  | attribute |  | ) | PLDAP_ATTRIBUTE(base, type, attribute, NULL, ;)

#define PLDAP_ATTRIBUTE | ( | base,
|  | type,
|  | attribute,
|  | pointer,
|  | init |  | ) |

Value:

    public: type attribute; \
        private: struct PLDAPAttr_##attribute : public PLDAPAttributeBase { \
          PLDAPAttr_##attribute() \
            : PLDAPAttributeBase(#attribute, pointer, sizeof(type)), \
              instance(((base &)base::GetInitialiser()).attribute) \
            { init } \
          virtual void PrintOn (ostream & s) const { s << instance; } \
          virtual void ReadFrom(istream & s)       { s >> instance; } \
          virtual void Copy(const PLDAPAttributeBase & other) \
                        { instance = ((PLDAPAttr_##attribute &)other).instance; } \
          type & instance; \
        } pldapvar_##attribute

#define PLDAP_BINATTRIB | ( | base,
|  | type,
|  | attribute |  | ) | PLDAP_ATTRIBUTE(base, type, attribute, &((base &)base::GetInitialiser()).attribute, ;)

#define PLDAP_STRUCT_BEGIN | ( | name |  | ) |

Value:

    class name : public PLDAPStructBase { \
        public: name() : PLDAPStructBase() { EndConstructor(); } \
        public: name(const name & other) : PLDAPStructBase() { EndConstructor(); operator=(other); } \
        public: name(const PStringArray & array) : PLDAPStructBase() { EndConstructor(); operator=(array); } \
        public: name(const PStringToString & dict) : PLDAPStructBase() { EndConstructor(); operator=(dict); } \
        public: name & operator=(const name & other) { PLDAPStructBase::operator=(other); return *this; } \
        public: name & operator=(const PStringArray & array) { PLDAPStructBase::operator=(array); return *this; } \
        public: name & operator=(const PStringToString & dict) { PLDAPStructBase::operator=(dict); return *this; } \
        PLDAP_ATTR_INIT(name, PString, objectClass, #name);

#define PLDAP_STRUCT_END | ( |  | ) | };