Back to index

openldap  2.4.31
proto-ndb.h
Go to the documentation of this file.
00001 /* $OpenLDAP$ */
00002 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
00003  *
00004  * Copyright 2008-2012 The OpenLDAP Foundation.
00005  * All rights reserved.
00006  *
00007  * Redistribution and use in source and binary forms, with or without
00008  * modification, are permitted only as authorized by the OpenLDAP
00009  * Public License.
00010  *
00011  * A copy of this license is available in the file LICENSE in the
00012  * top-level directory of the distribution or, alternatively, at
00013  * <http://www.OpenLDAP.org/license.html>.
00014  */
00015 /* ACKNOWLEDGEMENTS:
00016  * This work was initially developed by Howard Chu for inclusion
00017  * in OpenLDAP Software. This work was sponsored by MySQL.
00018  */
00019 
00020 #ifndef _PROTO_NDB_H
00021 #define _PROTO_NDB_H
00022 
00023 LDAP_BEGIN_DECL
00024 
00025 extern BI_init              ndb_back_initialize;
00026 
00027 extern BI_open              ndb_back_open;
00028 extern BI_close             ndb_back_close;
00029 extern BI_destroy    ndb_back_destroy;
00030 
00031 extern BI_db_init    ndb_back_db_init;
00032 extern BI_db_destroy ndb_back_db_destroy;
00033 
00034 extern BI_op_bind    ndb_back_bind;
00035 extern BI_op_unbind  ndb_back_unbind;
00036 extern BI_op_search  ndb_back_search;
00037 extern BI_op_compare ndb_back_compare;
00038 extern BI_op_modify  ndb_back_modify;
00039 extern BI_op_modrdn  ndb_back_modrdn;
00040 extern BI_op_add     ndb_back_add;
00041 extern BI_op_delete  ndb_back_delete;
00042 
00043 extern BI_operational       ndb_operational;
00044 extern BI_has_subordinates  ndb_has_subordinates;
00045 extern BI_entry_get_rw      ndb_entry_get;
00046 
00047 extern BI_tool_entry_open   ndb_tool_entry_open;
00048 extern BI_tool_entry_close  ndb_tool_entry_close;
00049 extern BI_tool_entry_first  ndb_tool_entry_first;
00050 extern BI_tool_entry_next   ndb_tool_entry_next;
00051 extern BI_tool_entry_get    ndb_tool_entry_get;
00052 extern BI_tool_entry_put    ndb_tool_entry_put;
00053 extern BI_tool_dn2id_get    ndb_tool_dn2id_get;
00054 
00055 extern int ndb_modify_internal(
00056        Operation *op,
00057        NdbArgs *NA,
00058        const char **text,
00059        char *textbuf,
00060        size_t textlen );
00061 
00062 extern int
00063 ndb_entry_get_data(
00064        Operation *op,
00065        NdbArgs *args,
00066        int update );
00067 
00068 extern int
00069 ndb_entry_put_data(
00070        BackendDB *be,
00071        NdbArgs *args );
00072 
00073 extern int
00074 ndb_entry_del_data(
00075        BackendDB *be,
00076        NdbArgs *args );
00077 
00078 extern int
00079 ndb_entry_put_info(
00080        BackendDB *be,
00081        NdbArgs *args,
00082        int update );
00083 
00084 extern int
00085 ndb_entry_get_info(
00086        Operation *op,
00087        NdbArgs *args,
00088        int update,
00089        struct berval *matched );
00090 
00091 extern "C" int
00092 ndb_entry_del_info(
00093        BackendDB *be,
00094        NdbArgs *args );
00095 
00096 extern int
00097 ndb_dn2rdns(
00098        struct berval *dn,
00099        NdbRdns *buf );
00100 
00101 extern NdbAttrInfo *
00102 ndb_ai_find( struct ndb_info *ni, AttributeType *at );
00103 
00104 extern NdbAttrInfo *
00105 ndb_ai_get( struct ndb_info *ni, struct berval *at );
00106 
00107 extern int
00108 ndb_aset_get( struct ndb_info *ni, struct berval *sname, struct berval *attrs, NdbOcInfo **ret );
00109 
00110 extern int
00111 ndb_aset_create( struct ndb_info *ni, NdbOcInfo *oci );
00112 
00113 extern int
00114 ndb_oc_read( struct ndb_info *ni, const NdbDictionary::Dictionary *dict );
00115 
00116 extern int
00117 ndb_oc_attrs(
00118        NdbTransaction *txn,
00119        const NdbDictionary::Table *myTable,
00120        Entry *e,
00121        NdbOcInfo *no,
00122        NdbAttrInfo **attrs,
00123        int nattrs,
00124        Attribute *old );
00125 
00126 extern int
00127 ndb_has_children(
00128        NdbArgs *NA,
00129        int *hasChildren );
00130 
00131 extern struct berval *
00132 ndb_str2bvarray(
00133        char *str,
00134        int len,
00135        char delim,
00136        void *ctx );
00137 
00138 extern struct berval *
00139 ndb_ref2oclist(
00140        const char *ref,
00141        void *ctx );
00142 
00143 extern int
00144 ndb_next_id(
00145        BackendDB *be,
00146        Ndb *ndb,
00147        ID *id );
00148 
00149 extern int
00150 ndb_thread_handle(
00151        Operation *op,
00152        Ndb **ndb );
00153 
00154 extern int
00155 ndb_back_init_cf(
00156        BackendInfo *bi );
00157 
00158 extern "C" void
00159 ndb_trans_backoff( int num_retries );
00160 
00161 extern "C" void
00162 ndb_check_referral( Operation *op, SlapReply *rs, NdbArgs *NA );
00163 
00164 LDAP_END_DECL
00165 
00166 #endif /* _PROTO_NDB_H */