# This file was automatically generated by SWIG
package OnLDAP::Base;
require Exporter;
require DynaLoader;
@ISA = qw(Exporter DynaLoader);


package OnLDAP::Base;

%EXPORT_TAGS = (const => [grep /^LDAP_/, keys %OnLDAP::Base::]);
@EXPORT_OK=@{$EXPORT_TAGS{const}};


package OnLDAP::Basec;
bootstrap OnLDAP::Base;
package OnLDAP::Base;
@EXPORT = qw( );

# ---------- BASE METHODS -------------

package OnLDAP::Base;

sub TIEHASH {
    my ($classname,$obj) = @_;
    return bless $obj, $classname;
}

sub CLEAR { }

sub FIRSTKEY { }

sub NEXTKEY { }

sub FETCH {
    my ($self,$field) = @_;
    my $member_func = "swig_${field}_get";
    $self->$member_func();
}

sub STORE {
    my ($self,$field,$newval) = @_;
    my $member_func = "swig_${field}_set";
    $self->$member_func($newval);
}

sub this {
    my $ptr = shift;
    return tied(%$ptr);
}


# ------- FUNCTION WRAPPERS --------

package OnLDAP::Base;

*ber_error_print = *OnLDAP::Basec::ber_error_print;
*ber_bprint = *OnLDAP::Basec::ber_bprint;
*ber_dump = *OnLDAP::Basec::ber_dump;
*ber_sos_dump = *OnLDAP::Basec::ber_sos_dump;
*ber_get_tag = *OnLDAP::Basec::ber_get_tag;
*ber_skip_tag = *OnLDAP::Basec::ber_skip_tag;
*ber_peek_tag = *OnLDAP::Basec::ber_peek_tag;
*ber_get_int = *OnLDAP::Basec::ber_get_int;
*ber_get_enum = *OnLDAP::Basec::ber_get_enum;
*ber_get_stringb = *OnLDAP::Basec::ber_get_stringb;
*ber_get_stringbv = *OnLDAP::Basec::ber_get_stringbv;
*ber_get_stringa = *OnLDAP::Basec::ber_get_stringa;
*ber_get_stringal = *OnLDAP::Basec::ber_get_stringal;
*ber_get_bitstringa = *OnLDAP::Basec::ber_get_bitstringa;
*ber_get_null = *OnLDAP::Basec::ber_get_null;
*ber_get_boolean = *OnLDAP::Basec::ber_get_boolean;
*ber_first_element = *OnLDAP::Basec::ber_first_element;
*ber_next_element = *OnLDAP::Basec::ber_next_element;
*ber_scanf = *OnLDAP::Basec::ber_scanf;
*ber_put_enum = *OnLDAP::Basec::ber_put_enum;
*ber_put_int = *OnLDAP::Basec::ber_put_int;
*ber_put_ostring = *OnLDAP::Basec::ber_put_ostring;
*ber_put_berval = *OnLDAP::Basec::ber_put_berval;
*ber_put_string = *OnLDAP::Basec::ber_put_string;
*ber_put_bitstring = *OnLDAP::Basec::ber_put_bitstring;
*ber_put_null = *OnLDAP::Basec::ber_put_null;
*ber_put_boolean = *OnLDAP::Basec::ber_put_boolean;
*ber_start_seq = *OnLDAP::Basec::ber_start_seq;
*ber_start_set = *OnLDAP::Basec::ber_start_set;
*ber_put_seq = *OnLDAP::Basec::ber_put_seq;
*ber_put_set = *OnLDAP::Basec::ber_put_set;
*ber_printf = *OnLDAP::Basec::ber_printf;
*ber_read = *OnLDAP::Basec::ber_read;
*ber_write = *OnLDAP::Basec::ber_write;
*ber_free = *OnLDAP::Basec::ber_free;
*ber_free_buf = *OnLDAP::Basec::ber_free_buf;
*ber_flush = *OnLDAP::Basec::ber_flush;
*ber_alloc = *OnLDAP::Basec::ber_alloc;
*der_alloc = *OnLDAP::Basec::der_alloc;
*ber_alloc_t = *OnLDAP::Basec::ber_alloc_t;
*ber_dup = *OnLDAP::Basec::ber_dup;
*ber_get_next = *OnLDAP::Basec::ber_get_next;
*ber_init2 = *OnLDAP::Basec::ber_init2;
*ber_init_w_nullc = *OnLDAP::Basec::ber_init_w_nullc;
*ber_reset = *OnLDAP::Basec::ber_reset;
*ber_init = *OnLDAP::Basec::ber_init;
*ber_flatten = *OnLDAP::Basec::ber_flatten;
*ber_flatten2 = *OnLDAP::Basec::ber_flatten2;
*ber_get_option = *OnLDAP::Basec::ber_get_option;
*ber_set_option = *OnLDAP::Basec::ber_set_option;
*ber_sockbuf_alloc = *OnLDAP::Basec::ber_sockbuf_alloc;
*ber_sockbuf_free = *OnLDAP::Basec::ber_sockbuf_free;
*ber_sockbuf_add_io = *OnLDAP::Basec::ber_sockbuf_add_io;
*ber_sockbuf_remove_io = *OnLDAP::Basec::ber_sockbuf_remove_io;
*ber_sockbuf_ctrl = *OnLDAP::Basec::ber_sockbuf_ctrl;
*ber_bvarray_add = *OnLDAP::Basec::ber_bvarray_add;
*ber_errno_addr = *OnLDAP::Basec::ber_errno_addr;
*ldap_set_rebind_proc = *OnLDAP::Basec::ldap_set_rebind_proc;
*ldap_domain2dn = *OnLDAP::Basec::ldap_domain2dn;
*ldap_dn2domain = *OnLDAP::Basec::ldap_dn2domain;
*ldap_domain2hostlist = *OnLDAP::Basec::ldap_domain2hostlist;
*ldap_extended_operation = *OnLDAP::Basec::ldap_extended_operation;
*ldap_extended_operation_s = *OnLDAP::Basec::ldap_extended_operation_s;
*ldap_parse_extended_result = *OnLDAP::Basec::ldap_parse_extended_result;
*ldap_parse_extended_partial = *OnLDAP::Basec::ldap_parse_extended_partial;
*ldap_parse_intermediate_resp_result = *OnLDAP::Basec::ldap_parse_intermediate_resp_result;
*ldap_abandon_ext = *OnLDAP::Basec::ldap_abandon_ext;
*ldap_abandon = *OnLDAP::Basec::ldap_abandon;
*ldap_add_ext = *OnLDAP::Basec::ldap_add_ext;
*ldap_add_ext_s = *OnLDAP::Basec::ldap_add_ext_s;
*ldap_add = *OnLDAP::Basec::ldap_add;
*ldap_add_s = *OnLDAP::Basec::ldap_add_s;
*ldap_sasl_interactive_bind_s = *OnLDAP::Basec::ldap_sasl_interactive_bind_s;
*ldap_bind = *OnLDAP::Basec::ldap_bind;
*ldap_bind_s = *OnLDAP::Basec::ldap_bind_s;
*ldap_kerberos_bind_s = *OnLDAP::Basec::ldap_kerberos_bind_s;
*ldap_kerberos_bind1 = *OnLDAP::Basec::ldap_kerberos_bind1;
*ldap_kerberos_bind1_s = *OnLDAP::Basec::ldap_kerberos_bind1_s;
*ldap_kerberos_bind2 = *OnLDAP::Basec::ldap_kerberos_bind2;
*ldap_kerberos_bind2_s = *OnLDAP::Basec::ldap_kerberos_bind2_s;
*ldap_cancel = *OnLDAP::Basec::ldap_cancel;
*ldap_cancel_s = *OnLDAP::Basec::ldap_cancel_s;
*ldap_compare_ext = *OnLDAP::Basec::ldap_compare_ext;
*ldap_compare_ext_s = *OnLDAP::Basec::ldap_compare_ext_s;
*ldap_compare = *OnLDAP::Basec::ldap_compare;
*ldap_compare_s = *OnLDAP::Basec::ldap_compare_s;
*ldap_delete_ext = *OnLDAP::Basec::ldap_delete_ext;
*ldap_delete_ext_s = *OnLDAP::Basec::ldap_delete_ext_s;
*ldap_delete = *OnLDAP::Basec::ldap_delete;
*ldap_delete_s = *OnLDAP::Basec::ldap_delete_s;
*ldap_err2string = *OnLDAP::Basec::ldap_err2string;
*ldap_result2error = *OnLDAP::Basec::ldap_result2error;
*ldap_perror = *OnLDAP::Basec::ldap_perror;
*ldap_modify_ext = *OnLDAP::Basec::ldap_modify_ext;
*ldap_modify_ext_s = *OnLDAP::Basec::ldap_modify_ext_s;
*ldap_modify = *OnLDAP::Basec::ldap_modify;
*ldap_modify_s = *OnLDAP::Basec::ldap_modify_s;
*ldap_rename = *OnLDAP::Basec::ldap_rename;
*ldap_rename_s = *OnLDAP::Basec::ldap_rename_s;
*ldap_rename2 = *OnLDAP::Basec::ldap_rename2;
*ldap_rename2_s = *OnLDAP::Basec::ldap_rename2_s;
*ldap_modrdn = *OnLDAP::Basec::ldap_modrdn;
*ldap_modrdn_s = *OnLDAP::Basec::ldap_modrdn_s;
*ldap_modrdn2 = *OnLDAP::Basec::ldap_modrdn2;
*ldap_modrdn2_s = *OnLDAP::Basec::ldap_modrdn2_s;
*ldap_open = *OnLDAP::Basec::ldap_open;
*ldap_create = *OnLDAP::Basec::ldap_create;
*ldap_initialize = *OnLDAP::Basec::ldap_initialize;
*ldap_start_tls_s = *OnLDAP::Basec::ldap_start_tls_s;
*ldap_parse_reference = *OnLDAP::Basec::ldap_parse_reference;
*ldap_get_entry_controls = *OnLDAP::Basec::ldap_get_entry_controls;
*ldap_delete_result_entry = *OnLDAP::Basec::ldap_delete_result_entry;
*ldap_add_result_entry = *OnLDAP::Basec::ldap_add_result_entry;
*ldap_get_dn = *OnLDAP::Basec::ldap_get_dn;
*ldap_avafree = *OnLDAP::Basec::ldap_avafree;
*ldap_rdnfree = *OnLDAP::Basec::ldap_rdnfree;
*ldap_dnfree = *OnLDAP::Basec::ldap_dnfree;
*ldap_bv2dn = *OnLDAP::Basec::ldap_bv2dn;
*ldap_str2dn = *OnLDAP::Basec::ldap_str2dn;
*ldap_dn2bv = *OnLDAP::Basec::ldap_dn2bv;
*ldap_dn2str = *OnLDAP::Basec::ldap_dn2str;
*ldap_bv2rdn = *OnLDAP::Basec::ldap_bv2rdn;
*ldap_str2rdn = *OnLDAP::Basec::ldap_str2rdn;
*ldap_rdn2bv = *OnLDAP::Basec::ldap_rdn2bv;
*ldap_rdn2str = *OnLDAP::Basec::ldap_rdn2str;
*ldap_dn_normalize = *OnLDAP::Basec::ldap_dn_normalize;
*ldap_dn2ufn = *OnLDAP::Basec::ldap_dn2ufn;
*ldap_explode_dn = *OnLDAP::Basec::ldap_explode_dn;
*ldap_explode_rdn = *OnLDAP::Basec::ldap_explode_rdn;
*ldap_X509dn2bv = *OnLDAP::Basec::ldap_X509dn2bv;
*ldap_dn2dcedn = *OnLDAP::Basec::ldap_dn2dcedn;
*ldap_dcedn2dn = *OnLDAP::Basec::ldap_dcedn2dn;
*ldap_dn2ad_canonical = *OnLDAP::Basec::ldap_dn2ad_canonical;
*ldap_get_dn_ber = *OnLDAP::Basec::ldap_get_dn_ber;
*ldap_get_attribute_ber = *OnLDAP::Basec::ldap_get_attribute_ber;
*ldap_first_attribute = *OnLDAP::Basec::ldap_first_attribute;
*ldap_next_attribute = *OnLDAP::Basec::ldap_next_attribute;
*ldap_get_values_len = *OnLDAP::Basec::ldap_get_values_len;
*ldap_count_values_len = *OnLDAP::Basec::ldap_count_values_len;
*ldap_value_free_len = *OnLDAP::Basec::ldap_value_free_len;
*ldap_get_values = *OnLDAP::Basec::ldap_get_values;
*ldap_count_values = *OnLDAP::Basec::ldap_count_values;
*ldap_value_free = *OnLDAP::Basec::ldap_value_free;
*ldap_msgtype = *OnLDAP::Basec::ldap_msgtype;
*ldap_msgid = *OnLDAP::Basec::ldap_msgid;
*ldap_msgfree = *OnLDAP::Basec::ldap_msgfree;
*ldap_msgdelete = *OnLDAP::Basec::ldap_msgdelete;
*ldap_unbind = *OnLDAP::Basec::ldap_unbind;
*ldap_unbind_s = *OnLDAP::Basec::ldap_unbind_s;
*ldap_unbind_ext = *OnLDAP::Basec::ldap_unbind_ext;
*ldap_unbind_ext_s = *OnLDAP::Basec::ldap_unbind_ext_s;
*ldap_put_vrFilter = *OnLDAP::Basec::ldap_put_vrFilter;
*ldap_memalloc = *OnLDAP::Basec::ldap_memalloc;
*ldap_memrealloc = *OnLDAP::Basec::ldap_memrealloc;
*ldap_memcalloc = *OnLDAP::Basec::ldap_memcalloc;
*ldap_memfree = *OnLDAP::Basec::ldap_memfree;
*ldap_memvfree = *OnLDAP::Basec::ldap_memvfree;
*ldap_strdup = *OnLDAP::Basec::ldap_strdup;
*ldap_mods_free = *OnLDAP::Basec::ldap_mods_free;
*ldap_sort_entries = *OnLDAP::Basec::ldap_sort_entries;
*ldap_sort_values = *OnLDAP::Basec::ldap_sort_values;
*ldap_sort_strcasecmp = *OnLDAP::Basec::ldap_sort_strcasecmp;
*ldap_is_ldap_url = *OnLDAP::Basec::ldap_is_ldap_url;
*ldap_is_ldaps_url = *OnLDAP::Basec::ldap_is_ldaps_url;
*ldap_is_ldapi_url = *OnLDAP::Basec::ldap_is_ldapi_url;
*ldap_url_parse = *OnLDAP::Basec::ldap_url_parse;
*ldap_url_desc2str = *OnLDAP::Basec::ldap_url_desc2str;
*ldap_free_urldesc = *OnLDAP::Basec::ldap_free_urldesc;
*ldap_create_sort_keylist = *OnLDAP::Basec::ldap_create_sort_keylist;
*ldap_free_sort_keylist = *OnLDAP::Basec::ldap_free_sort_keylist;
*ldap_create_sort_control = *OnLDAP::Basec::ldap_create_sort_control;
*ldap_parse_sort_control = *OnLDAP::Basec::ldap_parse_sort_control;
*ldap_create_vlv_control = *OnLDAP::Basec::ldap_create_vlv_control;
*ldap_parse_vlv_control = *OnLDAP::Basec::ldap_parse_vlv_control;
*ldap_parse_whoami = *OnLDAP::Basec::ldap_parse_whoami;
*ldap_whoami = *OnLDAP::Basec::ldap_whoami;
*ldap_whoami_s = *OnLDAP::Basec::ldap_whoami_s;
*ldap_parse_passwd = *OnLDAP::Basec::ldap_parse_passwd;
*ldap_passwd = *OnLDAP::Basec::ldap_passwd;
*ldap_passwd_s = *OnLDAP::Basec::ldap_passwd_s;

############# Class : OnLDAP::Base::Client ##############

package OnLDAP::Base::Client;
@ISA = qw( OnLDAP::Base );
%OWNER = ();
%ITERATORS = ();
*sasl_bind = *OnLDAP::Basec::Client_sasl_bind;
*sasl_bind_s = *OnLDAP::Basec::Client_sasl_bind_s;
*parse_sasl_bind_result = *OnLDAP::Basec::Client_parse_sasl_bind_result;
*simple_bind = *OnLDAP::Basec::Client_simple_bind;
*simple_bind_s = *OnLDAP::Basec::Client_simple_bind_s;
sub new {
    my $pkg = shift;
    my $self = OnLDAP::Basec::new_Client(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        OnLDAP::Basec::delete_Client($self);
        delete $OWNER{$self};
    }
}

*_unbind = *OnLDAP::Basec::Client__unbind;
*_get_option__bool = *OnLDAP::Basec::Client__get_option__bool;
*_get_option__int = *OnLDAP::Basec::Client__get_option__int;
*_get_option__string = *OnLDAP::Basec::Client__get_option__string;
*_get_option__APIInfo = *OnLDAP::Basec::Client__get_option__APIInfo;
*_get_option__APIFeatureInfo = *OnLDAP::Basec::Client__get_option__APIFeatureInfo;
*_get_option__Controls = *OnLDAP::Basec::Client__get_option__Controls;
*_set_option__bool = *OnLDAP::Basec::Client__set_option__bool;
*_set_option__int = *OnLDAP::Basec::Client__set_option__int;
*_set_option__string = *OnLDAP::Basec::Client__set_option__string;
*_set_option__Controls = *OnLDAP::Basec::Client__set_option__Controls;
*first_message = *OnLDAP::Basec::Client_first_message;
*next_message = *OnLDAP::Basec::Client_next_message;
*count_messages = *OnLDAP::Basec::Client_count_messages;
*first_reference = *OnLDAP::Basec::Client_first_reference;
*next_reference = *OnLDAP::Basec::Client_next_reference;
*count_references = *OnLDAP::Basec::Client_count_references;
*ldap_parse_reference = *OnLDAP::Basec::Client_ldap_parse_reference;
*first_entry = *OnLDAP::Basec::Client_first_entry;
*next_entry = *OnLDAP::Basec::Client_next_entry;
*count_entries = *OnLDAP::Basec::Client_count_entries;
*get_entry_controls = *OnLDAP::Basec::Client_get_entry_controls;
*result = *OnLDAP::Basec::Client_result;
*search = *OnLDAP::Basec::Client_search;
*search_s = *OnLDAP::Basec::Client_search_s;
*parse_result = *OnLDAP::Basec::Client_parse_result;
*extended_operation = *OnLDAP::Basec::Client_extended_operation;
*extended_operation_s = *OnLDAP::Basec::Client_extended_operation_s;
*parse_extended_result = *OnLDAP::Basec::Client_parse_extended_result;
*parse_extended_partial = *OnLDAP::Basec::Client_parse_extended_partial;
*parse_intermediate_resp_result = *OnLDAP::Basec::Client_parse_intermediate_resp_result;
*abandon = *OnLDAP::Basec::Client_abandon;
*add = *OnLDAP::Basec::Client_add;
*add_s = *OnLDAP::Basec::Client_add_s;
*ldap_cancel = *OnLDAP::Basec::Client_ldap_cancel;
*ldap_cancel_s = *OnLDAP::Basec::Client_ldap_cancel_s;
*compare = *OnLDAP::Basec::Client_compare;
*compare_s = *OnLDAP::Basec::Client_compare_s;
*delete = *OnLDAP::Basec::Client_delete;
*delete_s = *OnLDAP::Basec::Client_delete_s;
*modify = *OnLDAP::Basec::Client_modify;
*modify_s = *OnLDAP::Basec::Client_modify_s;
*rename = *OnLDAP::Basec::Client_rename;
*rename_s = *OnLDAP::Basec::Client_rename_s;
*get_dn = *OnLDAP::Basec::Client_get_dn;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : OnLDAP::Base::Message ##############

package OnLDAP::Base::Message;
@ISA = qw( OnLDAP::Base );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = OnLDAP::Basec::new_Message(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        OnLDAP::Basec::delete_Message($self);
        delete $OWNER{$self};
    }
}

*type = *OnLDAP::Basec::Message_type;
*id = *OnLDAP::Basec::Message_id;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : OnLDAP::Base::BerValue ##############

package OnLDAP::Base::BerValue;
@ISA = qw( OnLDAP::Base );
%OWNER = ();
%ITERATORS = ();
*swig_bv_len_get = *OnLDAP::Basec::BerValue_bv_len_get;
*swig_bv_len_set = *OnLDAP::Basec::BerValue_bv_len_set;
*swig_bv_val_get = *OnLDAP::Basec::BerValue_bv_val_get;
*swig_bv_val_set = *OnLDAP::Basec::BerValue_bv_val_set;
*lenght = *OnLDAP::Basec::BerValue_lenght;
*string = *OnLDAP::Basec::BerValue_string;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        OnLDAP::Basec::delete_BerValue($self);
        delete $OWNER{$self};
    }
}

sub new {
    my $pkg = shift;
    my $self = OnLDAP::Basec::new_BerValue(@_);
    bless $self, $pkg if defined($self);
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : OnLDAP::Base::APIInfo ##############

package OnLDAP::Base::APIInfo;
@ISA = qw( OnLDAP::Base );
%OWNER = ();
%ITERATORS = ();
*swig_ldapai_info_version_get = *OnLDAP::Basec::APIInfo_ldapai_info_version_get;
*swig_ldapai_info_version_set = *OnLDAP::Basec::APIInfo_ldapai_info_version_set;
*swig_ldapai_api_version_get = *OnLDAP::Basec::APIInfo_ldapai_api_version_get;
*swig_ldapai_api_version_set = *OnLDAP::Basec::APIInfo_ldapai_api_version_set;
*swig_ldapai_protocol_version_get = *OnLDAP::Basec::APIInfo_ldapai_protocol_version_get;
*swig_ldapai_protocol_version_set = *OnLDAP::Basec::APIInfo_ldapai_protocol_version_set;
*swig_ldapai_extensions_get = *OnLDAP::Basec::APIInfo_ldapai_extensions_get;
*swig_ldapai_extensions_set = *OnLDAP::Basec::APIInfo_ldapai_extensions_set;
*swig_ldapai_vendor_name_get = *OnLDAP::Basec::APIInfo_ldapai_vendor_name_get;
*swig_ldapai_vendor_name_set = *OnLDAP::Basec::APIInfo_ldapai_vendor_name_set;
*swig_ldapai_vendor_version_get = *OnLDAP::Basec::APIInfo_ldapai_vendor_version_get;
*swig_ldapai_vendor_version_set = *OnLDAP::Basec::APIInfo_ldapai_vendor_version_set;
*info_version = *OnLDAP::Basec::APIInfo_info_version;
*api_version = *OnLDAP::Basec::APIInfo_api_version;
*protocol_version = *OnLDAP::Basec::APIInfo_protocol_version;
*extensions = *OnLDAP::Basec::APIInfo_extensions;
*vendor_name = *OnLDAP::Basec::APIInfo_vendor_name;
*vendor_version = *OnLDAP::Basec::APIInfo_vendor_version;
sub new {
    my $pkg = shift;
    my $self = OnLDAP::Basec::new_APIInfo(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        OnLDAP::Basec::delete_APIInfo($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : OnLDAP::Base::APIFeatureInfo ##############

package OnLDAP::Base::APIFeatureInfo;
@ISA = qw( OnLDAP::Base );
%OWNER = ();
%ITERATORS = ();
*swig_ldapaif_info_version_get = *OnLDAP::Basec::APIFeatureInfo_ldapaif_info_version_get;
*swig_ldapaif_info_version_set = *OnLDAP::Basec::APIFeatureInfo_ldapaif_info_version_set;
*swig_ldapaif_name_get = *OnLDAP::Basec::APIFeatureInfo_ldapaif_name_get;
*swig_ldapaif_name_set = *OnLDAP::Basec::APIFeatureInfo_ldapaif_name_set;
*swig_ldapaif_version_get = *OnLDAP::Basec::APIFeatureInfo_ldapaif_version_get;
*swig_ldapaif_version_set = *OnLDAP::Basec::APIFeatureInfo_ldapaif_version_set;
*info_version = *OnLDAP::Basec::APIFeatureInfo_info_version;
*name = *OnLDAP::Basec::APIFeatureInfo_name;
*version = *OnLDAP::Basec::APIFeatureInfo_version;
sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        OnLDAP::Basec::delete_APIFeatureInfo($self);
        delete $OWNER{$self};
    }
}

sub new {
    my $pkg = shift;
    my $self = OnLDAP::Basec::new_APIFeatureInfo(@_);
    bless $self, $pkg if defined($self);
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : OnLDAP::Base::Control ##############

package OnLDAP::Base::Control;
@ISA = qw( OnLDAP::Base );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = OnLDAP::Basec::new_Control(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        OnLDAP::Basec::delete_Control($self);
        delete $OWNER{$self};
    }
}

*oid = *OnLDAP::Basec::Control_oid;
*value = *OnLDAP::Basec::Control_value;
*critical = *OnLDAP::Basec::Control_critical;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : OnLDAP::Base::Mod ##############

package OnLDAP::Base::Mod;
@ISA = qw( OnLDAP::Base );
%OWNER = ();
%ITERATORS = ();
sub new {
    my $pkg = shift;
    my $self = OnLDAP::Basec::new_Mod(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        OnLDAP::Basec::delete_Mod($self);
        delete $OWNER{$self};
    }
}

*op = *OnLDAP::Basec::Mod_op;
*type = *OnLDAP::Basec::Mod_type;
*values = *OnLDAP::Basec::Mod_values;
sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : OnLDAP::Base::LDAPMod_mod_vals ##############

package OnLDAP::Base::LDAPMod_mod_vals;
@ISA = qw( OnLDAP::Base );
%OWNER = ();
%ITERATORS = ();
*swig_modv_strvals_get = *OnLDAP::Basec::LDAPMod_mod_vals_modv_strvals_get;
*swig_modv_strvals_set = *OnLDAP::Basec::LDAPMod_mod_vals_modv_strvals_set;
*swig_modv_bvals_get = *OnLDAP::Basec::LDAPMod_mod_vals_modv_bvals_get;
*swig_modv_bvals_set = *OnLDAP::Basec::LDAPMod_mod_vals_modv_bvals_set;
sub new {
    my $pkg = shift;
    my $self = OnLDAP::Basec::new_LDAPMod_mod_vals(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        OnLDAP::Basec::delete_LDAPMod_mod_vals($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : OnLDAP::Base::URLDesc ##############

package OnLDAP::Base::URLDesc;
@ISA = qw( OnLDAP::Base );
%OWNER = ();
%ITERATORS = ();
*swig_lud_next_get = *OnLDAP::Basec::URLDesc_lud_next_get;
*swig_lud_next_set = *OnLDAP::Basec::URLDesc_lud_next_set;
*swig_lud_scheme_get = *OnLDAP::Basec::URLDesc_lud_scheme_get;
*swig_lud_scheme_set = *OnLDAP::Basec::URLDesc_lud_scheme_set;
*swig_lud_host_get = *OnLDAP::Basec::URLDesc_lud_host_get;
*swig_lud_host_set = *OnLDAP::Basec::URLDesc_lud_host_set;
*swig_lud_port_get = *OnLDAP::Basec::URLDesc_lud_port_get;
*swig_lud_port_set = *OnLDAP::Basec::URLDesc_lud_port_set;
*swig_lud_dn_get = *OnLDAP::Basec::URLDesc_lud_dn_get;
*swig_lud_dn_set = *OnLDAP::Basec::URLDesc_lud_dn_set;
*swig_lud_attrs_get = *OnLDAP::Basec::URLDesc_lud_attrs_get;
*swig_lud_attrs_set = *OnLDAP::Basec::URLDesc_lud_attrs_set;
*swig_lud_scope_get = *OnLDAP::Basec::URLDesc_lud_scope_get;
*swig_lud_scope_set = *OnLDAP::Basec::URLDesc_lud_scope_set;
*swig_lud_filter_get = *OnLDAP::Basec::URLDesc_lud_filter_get;
*swig_lud_filter_set = *OnLDAP::Basec::URLDesc_lud_filter_set;
*swig_lud_exts_get = *OnLDAP::Basec::URLDesc_lud_exts_get;
*swig_lud_exts_set = *OnLDAP::Basec::URLDesc_lud_exts_set;
*swig_lud_crit_exts_get = *OnLDAP::Basec::URLDesc_lud_crit_exts_get;
*swig_lud_crit_exts_set = *OnLDAP::Basec::URLDesc_lud_crit_exts_set;
sub new {
    my $pkg = shift;
    my $self = OnLDAP::Basec::new_URLDesc(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        OnLDAP::Basec::delete_URLDesc($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : OnLDAP::Base::AVA ##############

package OnLDAP::Base::AVA;
@ISA = qw( OnLDAP::Base );
%OWNER = ();
%ITERATORS = ();
*swig_la_attr_get = *OnLDAP::Basec::AVA_la_attr_get;
*swig_la_attr_set = *OnLDAP::Basec::AVA_la_attr_set;
*swig_la_value_get = *OnLDAP::Basec::AVA_la_value_get;
*swig_la_value_set = *OnLDAP::Basec::AVA_la_value_set;
*swig_la_flags_get = *OnLDAP::Basec::AVA_la_flags_get;
*swig_la_flags_set = *OnLDAP::Basec::AVA_la_flags_set;
*swig_la_private_get = *OnLDAP::Basec::AVA_la_private_get;
*swig_la_private_set = *OnLDAP::Basec::AVA_la_private_set;
sub new {
    my $pkg = shift;
    my $self = OnLDAP::Basec::new_AVA(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        OnLDAP::Basec::delete_AVA($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : OnLDAP::Base::LDAPSortKey ##############

package OnLDAP::Base::LDAPSortKey;
@ISA = qw( OnLDAP::Base );
%OWNER = ();
%ITERATORS = ();
*swig_attributeType_get = *OnLDAP::Basec::LDAPSortKey_attributeType_get;
*swig_attributeType_set = *OnLDAP::Basec::LDAPSortKey_attributeType_set;
*swig_orderingRule_get = *OnLDAP::Basec::LDAPSortKey_orderingRule_get;
*swig_orderingRule_set = *OnLDAP::Basec::LDAPSortKey_orderingRule_set;
*swig_reverseOrder_get = *OnLDAP::Basec::LDAPSortKey_reverseOrder_get;
*swig_reverseOrder_set = *OnLDAP::Basec::LDAPSortKey_reverseOrder_set;
sub new {
    my $pkg = shift;
    my $self = OnLDAP::Basec::new_LDAPSortKey(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        OnLDAP::Basec::delete_LDAPSortKey($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : OnLDAP::Base::LDAPVLVInfo ##############

package OnLDAP::Base::LDAPVLVInfo;
@ISA = qw( OnLDAP::Base );
%OWNER = ();
%ITERATORS = ();
*swig_ldvlv_version_get = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_version_get;
*swig_ldvlv_version_set = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_version_set;
*swig_ldvlv_before_count_get = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_before_count_get;
*swig_ldvlv_before_count_set = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_before_count_set;
*swig_ldvlv_after_count_get = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_after_count_get;
*swig_ldvlv_after_count_set = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_after_count_set;
*swig_ldvlv_offset_get = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_offset_get;
*swig_ldvlv_offset_set = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_offset_set;
*swig_ldvlv_count_get = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_count_get;
*swig_ldvlv_count_set = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_count_set;
*swig_ldvlv_attrvalue_get = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_attrvalue_get;
*swig_ldvlv_attrvalue_set = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_attrvalue_set;
*swig_ldvlv_context_get = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_context_get;
*swig_ldvlv_context_set = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_context_set;
*swig_ldvlv_extradata_get = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_extradata_get;
*swig_ldvlv_extradata_set = *OnLDAP::Basec::LDAPVLVInfo_ldvlv_extradata_set;
sub new {
    my $pkg = shift;
    my $self = OnLDAP::Basec::new_LDAPVLVInfo(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        OnLDAP::Basec::delete_LDAPVLVInfo($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


# ------- CONSTANT STUBS -------

package OnLDAP::Base;

sub LBER_USE_DER () { $OnLDAP::Basec::LBER_USE_DER }
sub LBER_OPT_BER_OPTIONS () { $OnLDAP::Basec::LBER_OPT_BER_OPTIONS }
sub LBER_OPT_BER_DEBUG () { $OnLDAP::Basec::LBER_OPT_BER_DEBUG }
sub LBER_OPT_BER_REMAINING_BYTES () { $OnLDAP::Basec::LBER_OPT_BER_REMAINING_BYTES }
sub LBER_OPT_BER_TOTAL_BYTES () { $OnLDAP::Basec::LBER_OPT_BER_TOTAL_BYTES }
sub LBER_OPT_BER_BYTES_TO_WRITE () { $OnLDAP::Basec::LBER_OPT_BER_BYTES_TO_WRITE }
sub LBER_OPT_DEBUG_LEVEL () { $OnLDAP::Basec::LBER_OPT_DEBUG_LEVEL }
sub LBER_OPT_REMAINING_BYTES () { $OnLDAP::Basec::LBER_OPT_REMAINING_BYTES }
sub LBER_OPT_TOTAL_BYTES () { $OnLDAP::Basec::LBER_OPT_TOTAL_BYTES }
sub LBER_OPT_BYTES_TO_WRITE () { $OnLDAP::Basec::LBER_OPT_BYTES_TO_WRITE }
sub LBER_OPT_LOG_PRINT_FN () { $OnLDAP::Basec::LBER_OPT_LOG_PRINT_FN }
sub LBER_OPT_MEMORY_FNS () { $OnLDAP::Basec::LBER_OPT_MEMORY_FNS }
sub LBER_OPT_ERROR_FN () { $OnLDAP::Basec::LBER_OPT_ERROR_FN }
sub LBER_OPT_LOG_PRINT_FILE () { $OnLDAP::Basec::LBER_OPT_LOG_PRINT_FILE }
sub LBER_OPT_MEMORY_INUSE () { $OnLDAP::Basec::LBER_OPT_MEMORY_INUSE }
sub LBER_OPT_LOG_PROC () { $OnLDAP::Basec::LBER_OPT_LOG_PROC }
sub LBER_SB_OPT_GET_FD () { $OnLDAP::Basec::LBER_SB_OPT_GET_FD }
sub LBER_SB_OPT_SET_FD () { $OnLDAP::Basec::LBER_SB_OPT_SET_FD }
sub LBER_SB_OPT_HAS_IO () { $OnLDAP::Basec::LBER_SB_OPT_HAS_IO }
sub LBER_SB_OPT_SET_NONBLOCK () { $OnLDAP::Basec::LBER_SB_OPT_SET_NONBLOCK }
sub LBER_SB_OPT_GET_SSL () { $OnLDAP::Basec::LBER_SB_OPT_GET_SSL }
sub LBER_SB_OPT_DATA_READY () { $OnLDAP::Basec::LBER_SB_OPT_DATA_READY }
sub LBER_SB_OPT_SET_READAHEAD () { $OnLDAP::Basec::LBER_SB_OPT_SET_READAHEAD }
sub LBER_SB_OPT_DRAIN () { $OnLDAP::Basec::LBER_SB_OPT_DRAIN }
sub LBER_SB_OPT_NEEDS_READ () { $OnLDAP::Basec::LBER_SB_OPT_NEEDS_READ }
sub LBER_SB_OPT_NEEDS_WRITE () { $OnLDAP::Basec::LBER_SB_OPT_NEEDS_WRITE }
sub LBER_SB_OPT_GET_MAX_INCOMING () { $OnLDAP::Basec::LBER_SB_OPT_GET_MAX_INCOMING }
sub LBER_SB_OPT_SET_MAX_INCOMING () { $OnLDAP::Basec::LBER_SB_OPT_SET_MAX_INCOMING }
sub LBER_SB_OPT_OPT_MAX () { $OnLDAP::Basec::LBER_SB_OPT_OPT_MAX }
sub LBER_SBIOD_LEVEL_PROVIDER () { $OnLDAP::Basec::LBER_SBIOD_LEVEL_PROVIDER }
sub LBER_SBIOD_LEVEL_TRANSPORT () { $OnLDAP::Basec::LBER_SBIOD_LEVEL_TRANSPORT }
sub LBER_SBIOD_LEVEL_APPLICATION () { $OnLDAP::Basec::LBER_SBIOD_LEVEL_APPLICATION }
sub LBER_OPT_SOCKBUF_DESC () { $OnLDAP::Basec::LBER_OPT_SOCKBUF_DESC }
sub LBER_OPT_SOCKBUF_OPTIONS () { $OnLDAP::Basec::LBER_OPT_SOCKBUF_OPTIONS }
sub LBER_OPT_SOCKBUF_DEBUG () { $OnLDAP::Basec::LBER_OPT_SOCKBUF_DEBUG }
sub LBER_OPT_SUCCESS () { $OnLDAP::Basec::LBER_OPT_SUCCESS }
sub LBER_OPT_ERROR () { $OnLDAP::Basec::LBER_OPT_ERROR }
sub LBER_ELEMENT_SIZEOF () { $OnLDAP::Basec::LBER_ELEMENT_SIZEOF }
sub LBER_ERROR_NONE () { $OnLDAP::Basec::LBER_ERROR_NONE }
sub LBER_ERROR_PARAM () { $OnLDAP::Basec::LBER_ERROR_PARAM }
sub LBER_ERROR_MEMORY () { $OnLDAP::Basec::LBER_ERROR_MEMORY }
sub LDAP_VERSION1 () { $OnLDAP::Basec::LDAP_VERSION1 }
sub LDAP_VERSION2 () { $OnLDAP::Basec::LDAP_VERSION2 }
sub LDAP_VERSION3 () { $OnLDAP::Basec::LDAP_VERSION3 }
sub LDAP_VERSION_MIN () { $OnLDAP::Basec::LDAP_VERSION_MIN }
sub LDAP_VERSION () { $OnLDAP::Basec::LDAP_VERSION }
sub LDAP_VERSION_MAX () { $OnLDAP::Basec::LDAP_VERSION_MAX }
sub LDAP_API_VERSION () { $OnLDAP::Basec::LDAP_API_VERSION }
sub LDAP_VENDOR_NAME () { $OnLDAP::Basec::LDAP_VENDOR_NAME }
sub LDAP_PORT () { $OnLDAP::Basec::LDAP_PORT }
sub LDAPS_PORT () { $OnLDAP::Basec::LDAPS_PORT }
sub LDAP_ROOT_DSE () { $OnLDAP::Basec::LDAP_ROOT_DSE }
sub LDAP_NO_ATTRS () { $OnLDAP::Basec::LDAP_NO_ATTRS }
sub LDAP_ALL_USER_ATTRIBUTES () { $OnLDAP::Basec::LDAP_ALL_USER_ATTRIBUTES }
sub LDAP_ALL_OPERATIONAL_ATTRIBUTES () { $OnLDAP::Basec::LDAP_ALL_OPERATIONAL_ATTRIBUTES }
sub LDAP_OPT_API_INFO () { $OnLDAP::Basec::LDAP_OPT_API_INFO }
sub LDAP_OPT_DESC () { $OnLDAP::Basec::LDAP_OPT_DESC }
sub LDAP_OPT_DEREF () { $OnLDAP::Basec::LDAP_OPT_DEREF }
sub LDAP_OPT_SIZELIMIT () { $OnLDAP::Basec::LDAP_OPT_SIZELIMIT }
sub LDAP_OPT_TIMELIMIT () { $OnLDAP::Basec::LDAP_OPT_TIMELIMIT }
sub LDAP_OPT_REFERRALS () { $OnLDAP::Basec::LDAP_OPT_REFERRALS }
sub LDAP_OPT_RESTART () { $OnLDAP::Basec::LDAP_OPT_RESTART }
sub LDAP_OPT_PROTOCOL_VERSION () { $OnLDAP::Basec::LDAP_OPT_PROTOCOL_VERSION }
sub LDAP_OPT_SERVER_CONTROLS () { $OnLDAP::Basec::LDAP_OPT_SERVER_CONTROLS }
sub LDAP_OPT_CLIENT_CONTROLS () { $OnLDAP::Basec::LDAP_OPT_CLIENT_CONTROLS }
sub LDAP_OPT_API_FEATURE_INFO () { $OnLDAP::Basec::LDAP_OPT_API_FEATURE_INFO }
sub LDAP_OPT_HOST_NAME () { $OnLDAP::Basec::LDAP_OPT_HOST_NAME }
sub LDAP_OPT_ERROR_NUMBER () { $OnLDAP::Basec::LDAP_OPT_ERROR_NUMBER }
sub LDAP_OPT_ERROR_STRING () { $OnLDAP::Basec::LDAP_OPT_ERROR_STRING }
sub LDAP_OPT_MATCHED_DN () { $OnLDAP::Basec::LDAP_OPT_MATCHED_DN }
sub LDAP_OPT_PRIVATE_EXTENSION_BASE () { $OnLDAP::Basec::LDAP_OPT_PRIVATE_EXTENSION_BASE }
sub LDAP_OPT_DEBUG_LEVEL () { $OnLDAP::Basec::LDAP_OPT_DEBUG_LEVEL }
sub LDAP_OPT_TIMEOUT () { $OnLDAP::Basec::LDAP_OPT_TIMEOUT }
sub LDAP_OPT_REFHOPLIMIT () { $OnLDAP::Basec::LDAP_OPT_REFHOPLIMIT }
sub LDAP_OPT_NETWORK_TIMEOUT () { $OnLDAP::Basec::LDAP_OPT_NETWORK_TIMEOUT }
sub LDAP_OPT_URI () { $OnLDAP::Basec::LDAP_OPT_URI }
sub LDAP_OPT_REFERRAL_URLS () { $OnLDAP::Basec::LDAP_OPT_REFERRAL_URLS }
sub LDAP_OPT_X_TLS () { $OnLDAP::Basec::LDAP_OPT_X_TLS }
sub LDAP_OPT_X_TLS_CTX () { $OnLDAP::Basec::LDAP_OPT_X_TLS_CTX }
sub LDAP_OPT_X_TLS_CACERTFILE () { $OnLDAP::Basec::LDAP_OPT_X_TLS_CACERTFILE }
sub LDAP_OPT_X_TLS_CACERTDIR () { $OnLDAP::Basec::LDAP_OPT_X_TLS_CACERTDIR }
sub LDAP_OPT_X_TLS_CERTFILE () { $OnLDAP::Basec::LDAP_OPT_X_TLS_CERTFILE }
sub LDAP_OPT_X_TLS_KEYFILE () { $OnLDAP::Basec::LDAP_OPT_X_TLS_KEYFILE }
sub LDAP_OPT_X_TLS_REQUIRE_CERT () { $OnLDAP::Basec::LDAP_OPT_X_TLS_REQUIRE_CERT }
sub LDAP_OPT_X_TLS_CIPHER_SUITE () { $OnLDAP::Basec::LDAP_OPT_X_TLS_CIPHER_SUITE }
sub LDAP_OPT_X_TLS_RANDOM_FILE () { $OnLDAP::Basec::LDAP_OPT_X_TLS_RANDOM_FILE }
sub LDAP_OPT_X_TLS_SSL_CTX () { $OnLDAP::Basec::LDAP_OPT_X_TLS_SSL_CTX }
sub LDAP_OPT_X_TLS_NEVER () { $OnLDAP::Basec::LDAP_OPT_X_TLS_NEVER }
sub LDAP_OPT_X_TLS_HARD () { $OnLDAP::Basec::LDAP_OPT_X_TLS_HARD }
sub LDAP_OPT_X_TLS_DEMAND () { $OnLDAP::Basec::LDAP_OPT_X_TLS_DEMAND }
sub LDAP_OPT_X_TLS_ALLOW () { $OnLDAP::Basec::LDAP_OPT_X_TLS_ALLOW }
sub LDAP_OPT_X_TLS_TRY () { $OnLDAP::Basec::LDAP_OPT_X_TLS_TRY }
sub LDAP_OPT_X_SASL_MECH () { $OnLDAP::Basec::LDAP_OPT_X_SASL_MECH }
sub LDAP_OPT_X_SASL_REALM () { $OnLDAP::Basec::LDAP_OPT_X_SASL_REALM }
sub LDAP_OPT_X_SASL_AUTHCID () { $OnLDAP::Basec::LDAP_OPT_X_SASL_AUTHCID }
sub LDAP_OPT_X_SASL_AUTHZID () { $OnLDAP::Basec::LDAP_OPT_X_SASL_AUTHZID }
sub LDAP_OPT_X_SASL_SSF () { $OnLDAP::Basec::LDAP_OPT_X_SASL_SSF }
sub LDAP_OPT_X_SASL_SSF_EXTERNAL () { $OnLDAP::Basec::LDAP_OPT_X_SASL_SSF_EXTERNAL }
sub LDAP_OPT_X_SASL_SECPROPS () { $OnLDAP::Basec::LDAP_OPT_X_SASL_SECPROPS }
sub LDAP_OPT_X_SASL_SSF_MIN () { $OnLDAP::Basec::LDAP_OPT_X_SASL_SSF_MIN }
sub LDAP_OPT_X_SASL_SSF_MAX () { $OnLDAP::Basec::LDAP_OPT_X_SASL_SSF_MAX }
sub LDAP_OPT_X_SASL_MAXBUFSIZE () { $OnLDAP::Basec::LDAP_OPT_X_SASL_MAXBUFSIZE }
sub LDAP_OPT_SUCCESS () { $OnLDAP::Basec::LDAP_OPT_SUCCESS }
sub LDAP_OPT_ERROR () { $OnLDAP::Basec::LDAP_OPT_ERROR }
sub LDAP_API_INFO_VERSION () { $OnLDAP::Basec::LDAP_API_INFO_VERSION }
sub LDAP_FEATURE_INFO_VERSION () { $OnLDAP::Basec::LDAP_FEATURE_INFO_VERSION }
sub LDAP_CONTROL_VALUESRETURNFILTER () { $OnLDAP::Basec::LDAP_CONTROL_VALUESRETURNFILTER }
sub LDAP_CONTROL_SUBENTRIES () { $OnLDAP::Basec::LDAP_CONTROL_SUBENTRIES }
sub LDAP_CONTROL_NOOP () { $OnLDAP::Basec::LDAP_CONTROL_NOOP }
sub LDAP_CONTROL_MANAGEDSAIT () { $OnLDAP::Basec::LDAP_CONTROL_MANAGEDSAIT }
sub LDAP_CONTROL_PROXY_AUTHZ () { $OnLDAP::Basec::LDAP_CONTROL_PROXY_AUTHZ }
sub LDAP_CONTROL_SORTREQUEST () { $OnLDAP::Basec::LDAP_CONTROL_SORTREQUEST }
sub LDAP_CONTROL_SORTRESPONSE () { $OnLDAP::Basec::LDAP_CONTROL_SORTRESPONSE }
sub LDAP_CONTROL_VLVREQUEST () { $OnLDAP::Basec::LDAP_CONTROL_VLVREQUEST }
sub LDAP_CONTROL_VLVRESPONSE () { $OnLDAP::Basec::LDAP_CONTROL_VLVRESPONSE }
sub LDAP_NOTICE_OF_DISCONNECTION () { $OnLDAP::Basec::LDAP_NOTICE_OF_DISCONNECTION }
sub LDAP_NOTICE_DISCONNECT () { $OnLDAP::Basec::LDAP_NOTICE_DISCONNECT }
sub LDAP_EXOP_START_TLS () { $OnLDAP::Basec::LDAP_EXOP_START_TLS }
sub LDAP_EXOP_MODIFY_PASSWD () { $OnLDAP::Basec::LDAP_EXOP_MODIFY_PASSWD }
sub LDAP_EXOP_X_WHO_AM_I () { $OnLDAP::Basec::LDAP_EXOP_X_WHO_AM_I }
sub LDAP_FEATURE_ALL_OPERATIONAL_ATTRS () { $OnLDAP::Basec::LDAP_FEATURE_ALL_OPERATIONAL_ATTRS }
sub LDAP_FEATURE_OBJECTCLASS_ATTRS () { $OnLDAP::Basec::LDAP_FEATURE_OBJECTCLASS_ATTRS }
sub LDAP_FEATURE_ABSOLUTE_FILTERS () { $OnLDAP::Basec::LDAP_FEATURE_ABSOLUTE_FILTERS }
sub LDAP_FEATURE_LANGUAGE_TAG_OPTIONS () { $OnLDAP::Basec::LDAP_FEATURE_LANGUAGE_TAG_OPTIONS }
sub LDAP_FEATURE_LANGUAGE_RANGE_OPTIONS () { $OnLDAP::Basec::LDAP_FEATURE_LANGUAGE_RANGE_OPTIONS }
sub LDAP_RES_ANY () { $OnLDAP::Basec::LDAP_RES_ANY }
sub LDAP_RES_UNSOLICITED () { $OnLDAP::Basec::LDAP_RES_UNSOLICITED }
sub LDAP_SUCCESS () { $OnLDAP::Basec::LDAP_SUCCESS }
sub LDAP_OPERATIONS_ERROR () { $OnLDAP::Basec::LDAP_OPERATIONS_ERROR }
sub LDAP_PROTOCOL_ERROR () { $OnLDAP::Basec::LDAP_PROTOCOL_ERROR }
sub LDAP_TIMELIMIT_EXCEEDED () { $OnLDAP::Basec::LDAP_TIMELIMIT_EXCEEDED }
sub LDAP_SIZELIMIT_EXCEEDED () { $OnLDAP::Basec::LDAP_SIZELIMIT_EXCEEDED }
sub LDAP_COMPARE_FALSE () { $OnLDAP::Basec::LDAP_COMPARE_FALSE }
sub LDAP_COMPARE_TRUE () { $OnLDAP::Basec::LDAP_COMPARE_TRUE }
sub LDAP_AUTH_METHOD_NOT_SUPPORTED () { $OnLDAP::Basec::LDAP_AUTH_METHOD_NOT_SUPPORTED }
sub LDAP_STRONG_AUTH_NOT_SUPPORTED () { $OnLDAP::Basec::LDAP_STRONG_AUTH_NOT_SUPPORTED }
sub LDAP_STRONG_AUTH_REQUIRED () { $OnLDAP::Basec::LDAP_STRONG_AUTH_REQUIRED }
sub LDAP_PARTIAL_RESULTS () { $OnLDAP::Basec::LDAP_PARTIAL_RESULTS }
sub LDAP_REFERRAL () { $OnLDAP::Basec::LDAP_REFERRAL }
sub LDAP_ADMINLIMIT_EXCEEDED () { $OnLDAP::Basec::LDAP_ADMINLIMIT_EXCEEDED }
sub LDAP_UNAVAILABLE_CRITICAL_EXTENSION () { $OnLDAP::Basec::LDAP_UNAVAILABLE_CRITICAL_EXTENSION }
sub LDAP_CONFIDENTIALITY_REQUIRED () { $OnLDAP::Basec::LDAP_CONFIDENTIALITY_REQUIRED }
sub LDAP_SASL_BIND_IN_PROGRESS () { $OnLDAP::Basec::LDAP_SASL_BIND_IN_PROGRESS }
sub LDAP_NO_SUCH_ATTRIBUTE () { $OnLDAP::Basec::LDAP_NO_SUCH_ATTRIBUTE }
sub LDAP_UNDEFINED_TYPE () { $OnLDAP::Basec::LDAP_UNDEFINED_TYPE }
sub LDAP_INAPPROPRIATE_MATCHING () { $OnLDAP::Basec::LDAP_INAPPROPRIATE_MATCHING }
sub LDAP_CONSTRAINT_VIOLATION () { $OnLDAP::Basec::LDAP_CONSTRAINT_VIOLATION }
sub LDAP_TYPE_OR_VALUE_EXISTS () { $OnLDAP::Basec::LDAP_TYPE_OR_VALUE_EXISTS }
sub LDAP_INVALID_SYNTAX () { $OnLDAP::Basec::LDAP_INVALID_SYNTAX }
sub LDAP_NO_SUCH_OBJECT () { $OnLDAP::Basec::LDAP_NO_SUCH_OBJECT }
sub LDAP_ALIAS_PROBLEM () { $OnLDAP::Basec::LDAP_ALIAS_PROBLEM }
sub LDAP_INVALID_DN_SYNTAX () { $OnLDAP::Basec::LDAP_INVALID_DN_SYNTAX }
sub LDAP_IS_LEAF () { $OnLDAP::Basec::LDAP_IS_LEAF }
sub LDAP_ALIAS_DEREF_PROBLEM () { $OnLDAP::Basec::LDAP_ALIAS_DEREF_PROBLEM }
sub LDAP_PROXY_AUTHZ_FAILURE () { $OnLDAP::Basec::LDAP_PROXY_AUTHZ_FAILURE }
sub LDAP_INAPPROPRIATE_AUTH () { $OnLDAP::Basec::LDAP_INAPPROPRIATE_AUTH }
sub LDAP_INVALID_CREDENTIALS () { $OnLDAP::Basec::LDAP_INVALID_CREDENTIALS }
sub LDAP_INSUFFICIENT_ACCESS () { $OnLDAP::Basec::LDAP_INSUFFICIENT_ACCESS }
sub LDAP_BUSY () { $OnLDAP::Basec::LDAP_BUSY }
sub LDAP_UNAVAILABLE () { $OnLDAP::Basec::LDAP_UNAVAILABLE }
sub LDAP_UNWILLING_TO_PERFORM () { $OnLDAP::Basec::LDAP_UNWILLING_TO_PERFORM }
sub LDAP_LOOP_DETECT () { $OnLDAP::Basec::LDAP_LOOP_DETECT }
sub LDAP_NAMING_VIOLATION () { $OnLDAP::Basec::LDAP_NAMING_VIOLATION }
sub LDAP_OBJECT_CLASS_VIOLATION () { $OnLDAP::Basec::LDAP_OBJECT_CLASS_VIOLATION }
sub LDAP_NOT_ALLOWED_ON_NONLEAF () { $OnLDAP::Basec::LDAP_NOT_ALLOWED_ON_NONLEAF }
sub LDAP_NOT_ALLOWED_ON_RDN () { $OnLDAP::Basec::LDAP_NOT_ALLOWED_ON_RDN }
sub LDAP_ALREADY_EXISTS () { $OnLDAP::Basec::LDAP_ALREADY_EXISTS }
sub LDAP_NO_OBJECT_CLASS_MODS () { $OnLDAP::Basec::LDAP_NO_OBJECT_CLASS_MODS }
sub LDAP_RESULTS_TOO_LARGE () { $OnLDAP::Basec::LDAP_RESULTS_TOO_LARGE }
sub LDAP_AFFECTS_MULTIPLE_DSAS () { $OnLDAP::Basec::LDAP_AFFECTS_MULTIPLE_DSAS }
sub LDAP_OTHER () { $OnLDAP::Basec::LDAP_OTHER }
sub LDAP_SERVER_DOWN () { $OnLDAP::Basec::LDAP_SERVER_DOWN }
sub LDAP_LOCAL_ERROR () { $OnLDAP::Basec::LDAP_LOCAL_ERROR }
sub LDAP_ENCODING_ERROR () { $OnLDAP::Basec::LDAP_ENCODING_ERROR }
sub LDAP_DECODING_ERROR () { $OnLDAP::Basec::LDAP_DECODING_ERROR }
sub LDAP_TIMEOUT () { $OnLDAP::Basec::LDAP_TIMEOUT }
sub LDAP_AUTH_UNKNOWN () { $OnLDAP::Basec::LDAP_AUTH_UNKNOWN }
sub LDAP_FILTER_ERROR () { $OnLDAP::Basec::LDAP_FILTER_ERROR }
sub LDAP_USER_CANCELLED () { $OnLDAP::Basec::LDAP_USER_CANCELLED }
sub LDAP_PARAM_ERROR () { $OnLDAP::Basec::LDAP_PARAM_ERROR }
sub LDAP_NO_MEMORY () { $OnLDAP::Basec::LDAP_NO_MEMORY }
sub LDAP_CONNECT_ERROR () { $OnLDAP::Basec::LDAP_CONNECT_ERROR }
sub LDAP_NOT_SUPPORTED () { $OnLDAP::Basec::LDAP_NOT_SUPPORTED }
sub LDAP_CONTROL_NOT_FOUND () { $OnLDAP::Basec::LDAP_CONTROL_NOT_FOUND }
sub LDAP_NO_RESULTS_RETURNED () { $OnLDAP::Basec::LDAP_NO_RESULTS_RETURNED }
sub LDAP_MORE_RESULTS_TO_RETURN () { $OnLDAP::Basec::LDAP_MORE_RESULTS_TO_RETURN }
sub LDAP_CLIENT_LOOP () { $OnLDAP::Basec::LDAP_CLIENT_LOOP }
sub LDAP_REFERRAL_LIMIT_EXCEEDED () { $OnLDAP::Basec::LDAP_REFERRAL_LIMIT_EXCEEDED }
sub LDAP_MOD_ADD () { $OnLDAP::Basec::LDAP_MOD_ADD }
sub LDAP_MOD_DELETE () { $OnLDAP::Basec::LDAP_MOD_DELETE }
sub LDAP_MOD_REPLACE () { $OnLDAP::Basec::LDAP_MOD_REPLACE }
sub LDAP_MOD_BVALUES () { $OnLDAP::Basec::LDAP_MOD_BVALUES }
sub LDAP_DEREF_NEVER () { $OnLDAP::Basec::LDAP_DEREF_NEVER }
sub LDAP_DEREF_SEARCHING () { $OnLDAP::Basec::LDAP_DEREF_SEARCHING }
sub LDAP_DEREF_FINDING () { $OnLDAP::Basec::LDAP_DEREF_FINDING }
sub LDAP_DEREF_ALWAYS () { $OnLDAP::Basec::LDAP_DEREF_ALWAYS }
sub LDAP_NO_LIMIT () { $OnLDAP::Basec::LDAP_NO_LIMIT }
sub LDAP_MSG_ONE () { $OnLDAP::Basec::LDAP_MSG_ONE }
sub LDAP_MSG_ALL () { $OnLDAP::Basec::LDAP_MSG_ALL }
sub LDAP_MSG_RECEIVED () { $OnLDAP::Basec::LDAP_MSG_RECEIVED }
sub LDAP_URL_SUCCESS () { $OnLDAP::Basec::LDAP_URL_SUCCESS }
sub LDAP_URL_ERR_MEM () { $OnLDAP::Basec::LDAP_URL_ERR_MEM }
sub LDAP_URL_ERR_PARAM () { $OnLDAP::Basec::LDAP_URL_ERR_PARAM }
sub LDAP_URL_ERR_BADSCHEME () { $OnLDAP::Basec::LDAP_URL_ERR_BADSCHEME }
sub LDAP_URL_ERR_BADENCLOSURE () { $OnLDAP::Basec::LDAP_URL_ERR_BADENCLOSURE }
sub LDAP_URL_ERR_BADURL () { $OnLDAP::Basec::LDAP_URL_ERR_BADURL }
sub LDAP_URL_ERR_BADHOST () { $OnLDAP::Basec::LDAP_URL_ERR_BADHOST }
sub LDAP_URL_ERR_BADATTRS () { $OnLDAP::Basec::LDAP_URL_ERR_BADATTRS }
sub LDAP_URL_ERR_BADSCOPE () { $OnLDAP::Basec::LDAP_URL_ERR_BADSCOPE }
sub LDAP_URL_ERR_BADFILTER () { $OnLDAP::Basec::LDAP_URL_ERR_BADFILTER }
sub LDAP_URL_ERR_BADEXTS () { $OnLDAP::Basec::LDAP_URL_ERR_BADEXTS }
sub LDAP_SASL_AUTOMATIC () { $OnLDAP::Basec::LDAP_SASL_AUTOMATIC }
sub LDAP_SASL_INTERACTIVE () { $OnLDAP::Basec::LDAP_SASL_INTERACTIVE }
sub LDAP_SASL_QUIET () { $OnLDAP::Basec::LDAP_SASL_QUIET }
sub LDAP_AVA_STRING () { $OnLDAP::Basec::LDAP_AVA_STRING }
sub LDAP_AVA_BINARY () { $OnLDAP::Basec::LDAP_AVA_BINARY }
sub LDAP_AVA_NONPRINTABLE () { $OnLDAP::Basec::LDAP_AVA_NONPRINTABLE }
sub LDAP_DN_FORMAT_LDAP () { $OnLDAP::Basec::LDAP_DN_FORMAT_LDAP }
sub LDAP_DN_FORMAT_LDAPV3 () { $OnLDAP::Basec::LDAP_DN_FORMAT_LDAPV3 }
sub LDAP_DN_FORMAT_LDAPV2 () { $OnLDAP::Basec::LDAP_DN_FORMAT_LDAPV2 }
sub LDAP_DN_FORMAT_DCE () { $OnLDAP::Basec::LDAP_DN_FORMAT_DCE }
sub LDAP_DN_FORMAT_UFN () { $OnLDAP::Basec::LDAP_DN_FORMAT_UFN }
sub LDAP_DN_FORMAT_AD_CANONICAL () { $OnLDAP::Basec::LDAP_DN_FORMAT_AD_CANONICAL }
sub LDAP_DN_FORMAT_LBER () { $OnLDAP::Basec::LDAP_DN_FORMAT_LBER }
sub LDAP_DN_FORMAT_MASK () { $OnLDAP::Basec::LDAP_DN_FORMAT_MASK }
sub LDAP_DN_PRETTY () { $OnLDAP::Basec::LDAP_DN_PRETTY }
sub LDAP_DN_SKIP () { $OnLDAP::Basec::LDAP_DN_SKIP }
sub LDAP_DN_P_NOLEADTRAILSPACES () { $OnLDAP::Basec::LDAP_DN_P_NOLEADTRAILSPACES }
sub LDAP_DN_P_NOSPACEAFTERRDN () { $OnLDAP::Basec::LDAP_DN_P_NOSPACEAFTERRDN }
sub LDAP_DN_PEDANTIC () { $OnLDAP::Basec::LDAP_DN_PEDANTIC }
sub LDAP_OPT_RESULT_CODE () { $OnLDAP::Basec::LDAP_OPT_RESULT_CODE }

# ------- VARIABLE STUBS --------

package OnLDAP::Base;

1;
