Codebase list ocamldap / 719336b
Imported Upstream version 2.1.5 Sylvain Le Gall 18 years ago
106 changed file(s) with 3215 addition(s) and 733 deletion(s). Raw diff Collapse all Expand all
._.DS_Store less more
Binary diff not shown
0 2.1.5
1 * Fixed a bug in the delete method of ldapentry, it would not
2 correctly process a list of deleteions in a certian case
3 * Added two new functions to ldif_oo, read_ldif_file, and
4 write_ldif_file. The former reads all the entries in an ldif file
5 into a list of entries, while the latter writes all the entries in
6 the given list to an ldif file.
7 * Added an object locking table to ldap_mutex, which allows
8 individual objects to be locked (advisory locking like POSIX flock)
9 * Applied a patch which makes the toplevel printers to pass all
10 data through String.escaped, and which adds a close bracket which
11 was missing in some cases.Thanks to Victor Seletsky for this patch.
12 * Changed the toplevel printer to print a max of 50 entries, to
13 avoid overwhelming emacs. At some point I want to make this
14 configurable.
15 * Added a function to return the canonical dn to Ldap_dn.
16 * Improved (drastically) the ldap_strerror, and ldap_perror functions,
17 they now print out something which looks exactly like the string
18 representation of an LDAP_Failure exception in the toplevel. Avid users
19 of the toplevel will hopefully appreciate this as much as I do.
020 2.1.4
121 * Changed the type of the result of the low level ldif parser
222 (Ldif_parser) to produce search_result_entry instead of its own
1010 * To uninstall the library
1111
1212 make uninstall
13
14 * To build Documentation
15
16 make documentation
00 requires="netstring str ssl"
1 version="2.0"
1 version="2.1.5"
22 archive(byte)="ocamldap.cma"
33 archive(native)="ocamldap.cmxa"
44 ldap_urllexer.mll ldap_url.mli ldap_url.ml ldap_filterparser.mly \
55 ldap_filterlexer.mll ldap_filter.mli ldap_filter.ml ldap_funclient.mli \
66 ldap_funclient.ml ldap_schemalexer.mll ldap_schemaparser.mli \
7 ldap_schemaparser.ml ldap_ooclient.mli ldap_ooclient.ml ldif_parser.ml \
7 ldap_schemaparser.ml ldap_dnparser.mly ldap_dnlexer.mll ldap_dn.mli \
8 ldap_dn.ml ldap_ooclient.mli ldap_ooclient.ml ldap_mutex.mli \
9 ldap_mutex.ml ldap_txooclient.mli ldap_txooclient.ml ldif_parser.ml \
810 ldif_oo.ml ldif_oo.mli ldap_funserver.mli ldap_funserver.ml \
9 ldap_dnparser.mly ldap_dnlexer.mll ldap_dn.mli ldap_dn.ml \
1011 ldif_changerec_parser.mly ldif_changerec_lexer.mll \
11 ldif_changerec_oo.mli ldif_changerec_oo.ml ldap_mutex.mli \
12 ldap_mutex.ml ldap_toplevel.ml
12 ldif_changerec_oo.mli ldif_changerec_oo.ml ldap_toplevel.ml
1313 RESULT=ocamldap
1414 PACKS=netstring str ssl
15 #OCAMLFLAGS=-rectypes
1516
1617 LIBINSTALL_FILES=$(wildcard *.mli *.cmi *.cma *.cmxa *.a *.so *.o *.cmx ldap_toplevel.cmo)
1718 OCAMLDOCFLAGS=-colorize-code
2324 uninstall: libuninstall
2425
2526 documentation:
26 ocamlfind ocamldoc -d doc/ocamldap/html -colorize-code -html -package netstring,str,ssl lber.mli ldap_types.mli ldap_error.mli ldap_protocol.mli ldap_url.mli ldap_filter.mli ldap_dn.mli ldap_funclient.mli ldap_ooclient.mli ldap_schemaparser.mli ldap_funserver.mli ldif_oo.mli ldap_toplevel.mli ldap_mutex.mli ldif_changerec_oo.mli
27 ocamlfind ocamldoc -d doc/ocamldap/html -colorize-code -html -package netstring,str,ssl lber.mli ldap_types.mli ldap_error.mli ldap_protocol.mli ldap_url.mli ldap_filter.mli ldap_dn.mli ldap_funclient.mli ldap_ooclient.mli ldap_schemaparser.mli ldap_funserver.mli ldif_oo.mli ldap_toplevel.mli ldap_mutex.mli ldif_changerec_oo.mli ldap_txooclient.mli
2728
2829 -include OCamlMakefile
22 ---------------------------------------------------------------------------
33
44 Ocamldap is an ldap toolkit. It can be used by ocaml programs to
5 communicate with ldap servers, and to build your own ldap servers
5 communicate with ldap servers, and to build your own ldap servers.
66
77 ---------------------------------------------------------------------------
88 Contents
2929 Such as, nice data structures for local ldap entries which
3030 record local modifications and can sync them with the server, fewer
3131 arguments needed to perform simple tasks, and transparent reconnection
32 of dropped connections. see ooldap.mli
32 of dropped connections.
3333 * Ocamldap includes an ldif parser, which allows you to read ldif files into
34 entry objects. (ldif content files only). see ooldif.mli
34 entry objects. It also supports ldif change records.
3535 * Ocamldap has a method call to grab the schema of an ldapv3 server
3636 * Basic ldap server functionality (ldap_funserver) allows you to easily
3737 construct your own ldap servers. Perfect for meta directories,
2424 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2525 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2626 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Lber</title>
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
28 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Lber</title>
2829 </head>
2930 <body>
3031 <div class="navbar">&nbsp;<a href="index.html">Up</a>
5556 <td align="left" valign="top" >
5657 <code><span class="keyword">|</span></code></td>
5758 <td align="left" valign="top" >
59 <code><span class="constructor">Peek_error</span></code></td>
60
61 </tr>
62 <tr>
63 <td align="left" valign="top" >
64 <code><span class="keyword">|</span></code></td>
65 <td align="left" valign="top" >
66 <code><span class="constructor">Request_too_large</span></code></td>
67
68 </tr>
69 <tr>
70 <td align="left" valign="top" >
71 <code><span class="keyword">|</span></code></td>
72 <td align="left" valign="top" >
5873 <code><span class="constructor">Not_implemented</span></code></td>
5974
6075 </tr></table>
6176
6277
6378 <pre><span class="keyword">exception</span> <a name="EXCEPTIONReadbyte_error"></a>Readbyte_error <span class="keyword">of</span> <code class="type"><a href="Lber.html#TYPEreadbyte_error">readbyte_error</a></code></pre>
64 <pre><span class="keyword">type</span> <a name="TYPEreadbyte"></a><code class="type"></code>readbyte = <code class="type">?peek:bool -> unit -> char</code> </pre>
79 <pre><span class="keyword">type</span> <a name="TYPEreadbyte"></a><code class="type"></code>readbyte = <code class="type">?peek:bool -> int -> string</code> </pre>
6580
6681 <pre><span class="keyword">type</span> <a name="TYPEwritebyte"></a><code class="type"></code>writebyte = <code class="type">char -> unit</code> </pre>
6782
145160 }
146161
147162
148 <br><code><span class="keyword">type</span> <a name="TYPEberval"></a><code class="type"></code>berval = </code><table class="typetable">
149 <tr>
150 <td align="left" valign="top" >
151 <code><span class="keyword">|</span></code></td>
152 <td align="left" valign="top" >
153 <code><span class="constructor">Boolean</span> <span class="keyword">of</span> <code class="type">bool</code></code></td>
154
155 </tr>
156 <tr>
157 <td align="left" valign="top" >
158 <code><span class="keyword">|</span></code></td>
159 <td align="left" valign="top" >
160 <code><span class="constructor">Int</span> <span class="keyword">of</span> <code class="type">Int32.t</code></code></td>
161
162 </tr>
163 <tr>
164 <td align="left" valign="top" >
165 <code><span class="keyword">|</span></code></td>
166 <td align="left" valign="top" >
167 <code><span class="constructor">Bitstring</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
168
169 </tr>
170 <tr>
171 <td align="left" valign="top" >
172 <code><span class="keyword">|</span></code></td>
173 <td align="left" valign="top" >
174 <code><span class="constructor">Octetstring</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
175
176 </tr>
177 <tr>
178 <td align="left" valign="top" >
179 <code><span class="keyword">|</span></code></td>
180 <td align="left" valign="top" >
181 <code><span class="constructor">Null</span></code></td>
182
183 </tr>
184 <tr>
185 <td align="left" valign="top" >
186 <code><span class="keyword">|</span></code></td>
187 <td align="left" valign="top" >
188 <code><span class="constructor">Oid</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
189
190 </tr>
191 <tr>
192 <td align="left" valign="top" >
193 <code><span class="keyword">|</span></code></td>
194 <td align="left" valign="top" >
195 <code><span class="constructor">Odt</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
196
197 </tr>
198 <tr>
199 <td align="left" valign="top" >
200 <code><span class="keyword">|</span></code></td>
201 <td align="left" valign="top" >
202 <code><span class="constructor">Real</span> <span class="keyword">of</span> <code class="type">float</code></code></td>
203
204 </tr>
205 <tr>
206 <td align="left" valign="top" >
207 <code><span class="keyword">|</span></code></td>
208 <td align="left" valign="top" >
209 <code><span class="constructor">Enum</span> <span class="keyword">of</span> <code class="type">int32</code></code></td>
210
211 </tr>
212 <tr>
213 <td align="left" valign="top" >
214 <code><span class="keyword">|</span></code></td>
215 <td align="left" valign="top" >
216 <code><span class="constructor">Utf8string</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
217
218 </tr>
219 <tr>
220 <td align="left" valign="top" >
221 <code><span class="keyword">|</span></code></td>
222 <td align="left" valign="top" >
223 <code><span class="constructor">RelativeOid</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
224
225 </tr>
226 <tr>
227 <td align="left" valign="top" >
228 <code><span class="keyword">|</span></code></td>
229 <td align="left" valign="top" >
230 <code><span class="constructor">Sequence</span> <span class="keyword">of</span> <code class="type"><a href="Lber.html#TYPEberval">berval</a> list</code></code></td>
231
232 </tr>
233 <tr>
234 <td align="left" valign="top" >
235 <code><span class="keyword">|</span></code></td>
236 <td align="left" valign="top" >
237 <code><span class="constructor">Set</span> <span class="keyword">of</span> <code class="type"><a href="Lber.html#TYPEberval">berval</a> list</code></code></td>
238
239 </tr>
240 <tr>
241 <td align="left" valign="top" >
242 <code><span class="keyword">|</span></code></td>
243 <td align="left" valign="top" >
244 <code><span class="constructor">Charstring</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
245
246 </tr>
247 <tr>
248 <td align="left" valign="top" >
249 <code><span class="keyword">|</span></code></td>
250 <td align="left" valign="top" >
251 <code><span class="constructor">Time</span> <span class="keyword">of</span> <code class="type">string</code></code></td>
252
253 </tr></table>
254
255
256163 <pre><span class="keyword">val</span> <a name="VALreadbyte_of_string"></a>readbyte_of_string : <code class="type">string -> <a href="Lber.html#TYPEreadbyte">readbyte</a></code></pre><div class="info">
257 return a readbyte function for a string<br>
164 return a readbyte function for a string, currently not implemented<br>
258165 </div>
259166 <pre><span class="keyword">val</span> <a name="VALreadbyte_of_ber_element"></a>readbyte_of_ber_element : <code class="type"><a href="Lber.html#TYPEber_length">ber_length</a> -> <a href="Lber.html#TYPEreadbyte">readbyte</a> -> <a href="Lber.html#TYPEreadbyte">readbyte</a></code></pre><div class="info">
260167 return a readbyte implementation which uses another readbyte, but
261168 allows setting a read boundry. Useful for constructing views of the
262169 octet stream which end at the end of a ber structure. This is
263 essential for reading certian structures because lenght is only
264 encoded in the toplevel in order to save space.<br>
170 essential for reading certian structures because length is only
171 encoded in the toplevel in order to save space. Currently only
172 implemented for definite lengths.<br>
265173 <b>Raises</b> <code>Readbyte_error</code> in the event of a an io error, or the end of file<br>
266174 </div>
267175 <pre><span class="keyword">val</span> <a name="VALreadbyte_of_fd"></a>readbyte_of_fd : <code class="type">Unix.file_descr -> <a href="Lber.html#TYPEreadbyte">readbyte</a></code></pre><div class="info">
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_dn</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_dn</title>
2930 </head>
3031 <body>
3132 <div class="navbar"><a href="Ldap_filter.html">Previous</a>
5758 <pre><span class="keyword">val</span> <a name="VALescape_value"></a>escape_value : <code class="type">string -> string</code></pre><div class="info">
5859 Escape a string which you intend to be part of a VALUE in the
5960 dn. Do not use on the whole dn, just an attribute value. It is NOT
60 necessary to use this if you intent to call to_string on your
61 necessary to use this if you intend to call to_string on your
6162 dn. It will be done for you as part of the conversion
6263 process. This function is exposed for the case where you find it
6364 easier to manipulate the dn via a regular expression, or other
6465 string based means, and you find it necessary to escape values.<br>
6566 </div>
67 <pre><span class="keyword">val</span> <a name="VALcanonical_dn"></a>canonical_dn : <code class="type">string -> string</code></pre><div class="info">
68 returns the canonical dn. A simple string compare can tell you
69 accurately whether two canonical dns are equal or not.<br>
70 </div>
6671 </body></html>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_error</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_error</title>
2930 </head>
3031 <body>
3132 <div class="navbar"><a href="Ldap_types.html">Previous</a>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_filter</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_filter</title>
2930 </head>
3031 <body>
3132 <div class="navbar"><a href="Ldap_url.html">Previous</a>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_funclient</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_funclient</title>
2930 </head>
3031 <body>
3132 <div class="navbar"><a href="Ldap_dn.html">Previous</a>
6667 raise various lexer errors under the same conditions.</li>
6768 </ul>
6869 </div>
69 <br><div class="info"><code class="code">version</code> : the protocol version to use to
70 <div class="param_info"><code class="code">version</code> : the protocol version to use to
7071 connect, default is version 3. And actually, version 2 will probably
7172 not work correctly without some tweaking.</div>
7273 <pre><span class="keyword">val</span> <a name="VALunbind"></a>unbind : <code class="type"><a href="Ldap_funclient.html#TYPEconn">conn</a> -> unit</code></pre><div class="info">
8384 <li><code>Encoding_error</code> for encoder errors (unlikely, probably a bug)</li>
8485 </ul>
8586 </div>
86 <br><div class="info"><code class="code">who</code> : the dn to bind as</div>
87 <div class="info"><code class="code">cred</code> : the credentials to authenticate with. For `SIMPLE binds
87 <div class="param_info"><code class="code">who</code> : the dn to bind as</div>
88 <div class="param_info"><code class="code">cred</code> : the credentials to authenticate with. For `SIMPLE binds
8889 this is a password, but for `SASL binds it can be nearly
8990 anything. Perhaps a hash of the thumb print of your first born is
9091 sufficent.</div>
91 <div class="info"><code class="code">auth_method</code> : either `SIMPLE (the default) or `SASL</div>
92 <div class="param_info"><code class="code">auth_method</code> : either `SIMPLE (the default) or `SASL</div>
9293 <pre><span class="keyword">val</span> <a name="VALsearch"></a>search : <code class="type">?base:string -><br> ?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?aliasderef:<a href="Ldap_types.html#TYPEalias_deref">Ldap_types.alias_deref</a> -><br> ?sizelimit:int32 -><br> ?timelimit:int32 -><br> ?attrs:string list -><br> ?attrsonly:bool -> <a href="Ldap_funclient.html#TYPEconn">conn</a> -> string -> <a href="Ldap_funclient.html#TYPEmsgid">msgid</a></code></pre><div class="info">
9394 Search for the given entry with the specified base node and search
9495 scope, optionally limiting the returned attributes to those listed in
104105 <li><code>Encoding_error</code> for encoder errors (unlikely, probably a bug)</li>
105106 </ul>
106107 </div>
107 <br><div class="info"><code class="code">base</code> : The dn of the object in the tree to use as the base
108 <div class="param_info"><code class="code">base</code> : The dn of the object in the tree to use as the base
108109 object, the search will only cover children of this object, and will
109110 be further governed by scope.</div>
110 <div class="info"><code class="code">scope</code> : The depth in the tree to look for the requested
111 <div class="param_info"><code class="code">scope</code> : The depth in the tree to look for the requested
111112 object. There are three possible values, `BASE, `ONELEVEL, and
112113 `SUBTREE. `BASE means to only search the base object, the search
113114 will return exactly 1 or 0 objects. `ONELEVEL means to search one
114115 level under the base, only immediate children of the base object
115116 will be considered. `SUBTREE means to search the entire tree under
116117 the base object.</div>
117 <div class="info"><code class="code">aliasderef</code> : Controls when aliases are dereferenced.</div>
118 <div class="info"><code class="code">sizelimit</code> : The maximum number of objects to return</div>
119 <div class="info"><code class="code">timelimit</code> : The maximum time, in seconds, that the search will
118 <div class="param_info"><code class="code">aliasderef</code> : Controls when aliases are dereferenced.</div>
119 <div class="param_info"><code class="code">sizelimit</code> : The maximum number of objects to return</div>
120 <div class="param_info"><code class="code">timelimit</code> : The maximum time, in seconds, that the search will
120121 be allowed to run before terminateing.</div>
121 <div class="info"><code class="code">attrs</code> : The list of attribute types (names) to include <code class="code">[]</code>
122 <div class="param_info"><code class="code">attrs</code> : The list of attribute types (names) to include <code class="code">[]</code>
122123 (the default) means all.</div>
123 <div class="info"><code class="code">attrsonly</code> : return only attribute types (names), not any of the
124 <div class="param_info"><code class="code">attrsonly</code> : return only attribute types (names), not any of the
124125 values</div>
125126 <pre><span class="keyword">val</span> <a name="VALget_search_entry"></a>get_search_entry : <code class="type"><a href="Ldap_funclient.html#TYPEconn">conn</a> -><br> <a href="Ldap_funclient.html#TYPEmsgid">msgid</a> -><br> [> `Entry of <a href="Ldap_types.html#TYPEsearch_result_entry">Ldap_types.search_result_entry</a> | `Referral of string list ]</code></pre><div class="info">
126127 fetch a search entry from the wire using the given msgid. The
160161 <li><code>Encoding_error</code> for encoder errors (unlikely, probably a bug)</li>
161162 </ul>
162163 </div>
163 <br><div class="info"><code class="code">dn</code> : The dn of the object to modify</div>
164 <div class="info"><code class="code">mods</code> : The list of modifications to apply</div>
164 <div class="param_info"><code class="code">dn</code> : The dn of the object to modify</div>
165 <div class="param_info"><code class="code">mods</code> : The list of modifications to apply</div>
165166 <pre><span class="keyword">val</span> <a name="VALmodrdn_s"></a>modrdn_s : <code class="type">?deleteoldrdn:bool -><br> ?newsup:'a option -> <a href="Ldap_funclient.html#TYPEconn">conn</a> -> dn:string -> newdn:string -> unit</code></pre><div class="info">
166167 change the rdn, and optionally the superior entry of dn<br>
167168 <b>Raises</b><ul><li><code>LDAP_Failure</code> for all results other than `SUCCESS</li>
169170 <li><code>Encoding_error</code> for encoder errors (unlikely, probably a bug)</li>
170171 </ul>
171172 </div>
172 <br><div class="info"><code class="code">deleteoldrdn</code> : Delete the old rdn value, (default true)</div>
173 <div class="info"><code class="code">newsup</code> : The new superior dn of the object (default None)</div>
174 <div class="info"><code class="code">dn</code> : The dn of the object to modify</div>
173 <div class="param_info"><code class="code">deleteoldrdn</code> : Delete the old rdn value, (default true)</div>
174 <div class="param_info"><code class="code">newsup</code> : The new superior dn of the object (default None)</div>
175 <div class="param_info"><code class="code">dn</code> : The dn of the object to modify</div>
175176 </body></html>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_funserver</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_funserver</title>
2930 </head>
3031 <body>
3132 <div class="navbar"><a href="Ldap_schemaparser.html">Previous</a>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_mutex</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex</title>
2930 </head>
3031 <body>
3132 <div class="navbar"><a href="Ldap_toplevel.html">Previous</a>
3435 </div>
3536 <center><h1>Module <a href="type_Ldap_mutex.html">Ldap_mutex</a></h1></center>
3637 <br>
37 <pre><span class="keyword">module</span> Ldap_mutex: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_mutex.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>A library for implementing mutexes on top of LDAP's built in test
38 <pre><span class="keyword">module</span> Ldap_mutex: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_mutex.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>functions for implementing mutexes on top of LDAP's built in test
3839 and set mechanism. In order to use this module you must load
39 mutex.schema, which is an rfc2252 format schema file.<br>
40 mutex.schema, which is an rfc2252 format schema file. raised when
41 a mutex operation fails. The string argument contains the name of
42 the method which failed, and the exception contains details about
43 what failed.<br>
4044 <hr width="100%">
4145 <pre><span class="keyword">exception</span> <a name="EXCEPTIONLdap_mutex"></a>Ldap_mutex <span class="keyword">of</span> <code class="type">string * exn</code></pre>
4246 <div class="info">
43 raised when a mutex operation fails. The string argument contains
44 the name of the method which failed, and the exception contains
45 details about what failed.<br>
47 functions for implementing mutexes on top of LDAP's built in test
48 and set mechanism. In order to use this module you must load
49 mutex.schema, which is an rfc2252 format schema file. raised when
50 a mutex operation fails. The string argument contains the name of
51 the method which failed, and the exception contains details about
52 what failed.<br>
4653 </div>
47 <pre><span class="keyword">class type</span> <a name="TYPEmutex_t"></a><a href="Ldap_mutex.mutex_t.html">mutex_t</a> = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><pre><span class="keyword">class</span> <a name="TYPEmutex"></a><a href="Ldap_mutex.mutex.html">mutex</a> : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info">
54 <pre><span class="keyword">class type</span> <a name="TYPEmutex_t"></a><a href="Ldap_mutex.mutex_t.html">mutex_t</a> = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info">
55 the class type of a single mutex, used for performing
56 advisory locking of some action
57 </div>
58 <pre><span class="keyword">class type</span> <a name="TYPEobject_lock_table_t"></a><a href="Ldap_mutex.object_lock_table_t.html">object_lock_table_t</a> = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.object_lock_table_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info">
59 the class type of an object lock table which allows for advisory
60 locking of objects by dn
61 </div>
62 <pre><span class="keyword">class</span> <a name="TYPEmutex"></a><a href="Ldap_mutex.mutex.html">mutex</a> : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info">
4863 new mutex ldapurls binddn bindpw mutexdn
4964 </div>
65 <pre><span class="keyword">val</span> <a name="VALapply_with_mutex"></a>apply_with_mutex : <code class="type"><a href="Ldap_mutex.mutex.html">mutex</a> -> (unit -> 'a) -> 'a</code></pre><div class="info">
66 used to apply some function, first locking the mutex, unlocking it
67 only after the function has been applied. If the function
68 generates any exception, this wrapper catches that exception, and
69 unlocks the mutex before reraising the exception. Generally
70 garentees that the mutex will always be used consistantly when
71 performing an action.<br>
72 </div>
73 <pre><span class="keyword">class</span> <a name="TYPEobject_lock_table"></a><a href="Ldap_mutex.object_lock_table.html">object_lock_table</a> : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.object_lock_table.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info">
74 new object_lock_table ldapurls binddn bindpw mutexdn
75 </div>
5076 </body></html>
11 <head>
22 <link rel="stylesheet" href="style.css" type="text/css">
33 <link rel="Start" href="index.html">
4 <link rel="next" href="Ldap_mutex.object_lock_table.html">
45 <link rel="Up" href="Ldap_mutex.html">
56 <link title="Index of types" rel=Appendix href="index_types.html">
67 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
2324 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2425 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2526 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
26 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_mutex.mutex</title>
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
28 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.mutex</title>
2729 </head>
2830 <body>
2931 <div class="navbar">&nbsp;<a href="Ldap_mutex.html">Up</a>
30 &nbsp;</div>
32 &nbsp;<a href="Ldap_mutex.object_lock_table.html">Next</a>
33 </div>
3134 <center><h1>Class <a href="type_Ldap_mutex.mutex.html">Ldap_mutex.mutex</a></h1></center>
3235 <br>
3336 <pre><span class="keyword">class</span> <a name="TYPEmutex"></a>mutex : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>new mutex ldapurls binddn bindpw mutexdn<br>
11 <head>
22 <link rel="stylesheet" href="style.css" type="text/css">
33 <link rel="Start" href="index.html">
4 <link rel="next" href="Ldap_mutex.object_lock_table_t.html">
45 <link rel="Up" href="Ldap_mutex.html">
56 <link title="Index of types" rel=Appendix href="index_types.html">
67 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
2324 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2425 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2526 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
26 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_mutex.mutex_t</title>
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
28 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.mutex_t</title>
2729 </head>
2830 <body>
2931 <div class="navbar">&nbsp;<a href="Ldap_mutex.html">Up</a>
30 &nbsp;</div>
32 &nbsp;<a href="Ldap_mutex.object_lock_table_t.html">Next</a>
33 </div>
3134 <center><h1>Class type <a href="type_Ldap_mutex.mutex_t.html">Ldap_mutex.mutex_t</a></h1></center>
3235 <br>
33 <pre><span class="keyword">class type</span> <a name="TYPEmutex_t"></a>mutex_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%">
36 <pre><span class="keyword">class type</span> <a name="TYPEmutex_t"></a>mutex_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.mutex_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>the class type of a single mutex, used for performing
37 advisory locking of some action<br>
38 <hr width="100%">
3439 <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type">unit</code></pre></body></html>
0 <html>
1 <head>
2 <link rel="stylesheet" href="style.css" type="text/css">
3 <link rel="Start" href="index.html">
4 <link rel="previous" href="Ldap_mutex.mutex.html">
5 <link rel="Up" href="Ldap_mutex.html">
6 <link title="Index of types" rel=Appendix href="index_types.html">
7 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
8 <link title="Index of values" rel=Appendix href="index_values.html">
9 <link title="Index of class methods" rel=Appendix href="index_methods.html">
10 <link title="Index of classes" rel=Appendix href="index_classes.html">
11 <link title="Index of class types" rel=Appendix href="index_class_types.html">
12 <link title="Index of modules" rel=Appendix href="index_modules.html">
13 <link title="Lber" rel="Chapter" href="Lber.html">
14 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
15 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
16 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
17 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
18 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
19 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
20 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
21 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
22 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
23 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
24 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
25 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
26 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
28 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.object_lock_table</title>
29 </head>
30 <body>
31 <div class="navbar"><a href="Ldap_mutex.mutex.html">Previous</a>
32 &nbsp;<a href="Ldap_mutex.html">Up</a>
33 &nbsp;</div>
34 <center><h1>Class <a href="type_Ldap_mutex.object_lock_table.html">Ldap_mutex.object_lock_table</a></h1></center>
35 <br>
36 <pre><span class="keyword">class</span> <a name="TYPEobject_lock_table"></a>object_lock_table : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.object_lock_table.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>new object_lock_table ldapurls binddn bindpw mutexdn<br>
37 <hr width="100%">
38 <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre><div class="info">
39 lock the specified dn, if it is already locked, then block until the lock can be aquired
40 <p>
41 unlock the specified dn, if it is not locked do nothing<br>
42 </div>
43 <pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre></body></html>
0 <html>
1 <head>
2 <link rel="stylesheet" href="style.css" type="text/css">
3 <link rel="Start" href="index.html">
4 <link rel="previous" href="Ldap_mutex.mutex_t.html">
5 <link rel="Up" href="Ldap_mutex.html">
6 <link title="Index of types" rel=Appendix href="index_types.html">
7 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
8 <link title="Index of values" rel=Appendix href="index_values.html">
9 <link title="Index of class methods" rel=Appendix href="index_methods.html">
10 <link title="Index of classes" rel=Appendix href="index_classes.html">
11 <link title="Index of class types" rel=Appendix href="index_class_types.html">
12 <link title="Index of modules" rel=Appendix href="index_modules.html">
13 <link title="Lber" rel="Chapter" href="Lber.html">
14 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
15 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
16 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
17 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
18 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
19 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
20 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
21 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
22 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
23 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
24 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
25 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
26 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
28 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.object_lock_table_t</title>
29 </head>
30 <body>
31 <div class="navbar"><a href="Ldap_mutex.mutex_t.html">Previous</a>
32 &nbsp;<a href="Ldap_mutex.html">Up</a>
33 &nbsp;</div>
34 <center><h1>Class type <a href="type_Ldap_mutex.object_lock_table_t.html">Ldap_mutex.object_lock_table_t</a></h1></center>
35 <br>
36 <pre><span class="keyword">class type</span> <a name="TYPEobject_lock_table_t"></a>object_lock_table_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_mutex.object_lock_table_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>the class type of an object lock table which allows for advisory
37 locking of objects by dn<br>
38 <hr width="100%">
39 <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre></body></html>
2424 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2525 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2626 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.OrdOid</title>
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
28 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.OrdOid</title>
2829 </head>
2930 <body>
3031 <div class="navbar">&nbsp;<a href="Ldap_ooclient.html">Up</a>
3233 </div>
3334 <center><h1>Module <a href="type_Ldap_ooclient.OrdOid.html">Ldap_ooclient.OrdOid</a></h1></center>
3435 <br>
35 <pre><span class="keyword">module</span> OrdOid: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.OrdOid.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%">
36 <pre><span class="keyword">module</span> OrdOid: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.OrdOid.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>an ordered oid type, for placing oids in sets<br>
37 <hr width="100%">
3638 <pre><span class="keyword">type</span> <a name="TYPEt"></a><code class="type"></code>t = <code class="type"><a href="Ldap_schemaparser.Oid.html#TYPEt">Ldap_schemaparser.Oid.t</a></code> </pre>
3739
3840 <pre><span class="keyword">val</span> <a name="VALcompare"></a>compare : <code class="type"><a href="Ldap_ooclient.OrdOid.html#TYPEt">t</a> -> <a href="Ldap_ooclient.OrdOid.html#TYPEt">t</a> -> int</code></pre></body></html>
2424 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2525 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2626 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.Setstr</title>
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
28 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.Setstr</title>
2829 </head>
2930 <body>
3031 <div class="navbar"><a href="Ldap_ooclient.OrdOid.html">Previous</a>
3233 &nbsp;</div>
3334 <center><h1>Module <a href="type_Ldap_ooclient.Setstr.html">Ldap_ooclient.Setstr</a></h1></center>
3435 <br>
35 <pre><span class="keyword">module</span> Setstr: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.Setstr.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%">
36 <pre><span class="keyword">module</span> Setstr: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.Setstr.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><span class="warning">Deprecated.</span>the name is historical, and may be changed<br>
37 A set of Oids<br>
38 <hr width="100%">
3639 <pre><span class="keyword">type</span> <a name="TYPEelt"></a><code class="type"></code>elt = <code class="type"><a href="Ldap_ooclient.OrdOid.html#TYPEt">Ldap_ooclient.OrdOid.t</a></code> </pre>
3740
3841 <pre><span class="keyword">type</span> <a name="TYPEt"></a><code class="type"></code>t = <code class="type">Set.Make(OrdOid).t</code> </pre>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><link title="Communication With Ldap_funclient" rel="Section" href="#0_CommunicationWithLdapfunclient">
30 <link title="Miscallaneous" rel="Subsection" href="#1_Miscallaneous">
31 <link title="Iterators Over Streams of ldapentry Objects" rel="Subsection" href="#1_IteratorsOverStreamsofldapentryObjects">
32 <link title="General Schema Aware Entry" rel="Subsection" href="#1_GeneralSchemaAwareEntry">
33 <link title="Schema Aware Entry for Account Managment" rel="Subsection" href="#1_SchemaAwareEntryforAccountManagment">
34 <title>Ldap_ooclient</title>
2935 </head>
3036 <body>
3137 <div class="navbar"><a href="Ldap_funclient.html">Previous</a>
3642 <br>
3743 <pre><span class="keyword">module</span> Ldap_ooclient: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>an object oriented ldap client interface<br>
3844 <hr width="100%">
45 <br>
46 <a name="2_BasicDataTypes"></a>
47 <h2>Basic Data Types</h2><br>
3948 <pre><span class="keyword">type</span> <a name="TYPEop"></a><code class="type"></code>op = <code class="type">string * string list</code> </pre>
49 <div class="info">
50 the type of an operation, eg. <code class="code">(<span class="string">"cn"</span>, [<span class="string">"foo"</span>;<span class="string">"bar"</span>])</code><br>
51 </div>
4052
4153 <pre><span class="keyword">type</span> <a name="TYPEop_lst"></a><code class="type"></code>op_lst = <code class="type"><a href="Ldap_ooclient.html#TYPEop">op</a> list</code> </pre>
4254
4355 <pre><span class="keyword">type</span> <a name="TYPEreferral_policy"></a><code class="type"></code>referral_policy = <code class="type">[ `FOLLOW | `RETURN ]</code> </pre>
56 <div class="info">
57 The policy the client should take when it encounteres a
58 referral. This is currently not used<br>
59 </div>
4460
4561 <pre><span class="keyword">type</span> <a name="TYPEchangetype"></a><code class="type"></code>changetype = <code class="type">[ `ADD | `DELETE | `MODDN | `MODIFY | `MODRDN ]</code> </pre>
46
47 <pre><span class="keyword">class type</span> <a name="TYPEldapentry_t"></a><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><pre><span class="keyword">val</span> <a name="VALformat_entry"></a>format_entry : <code class="type">< attributes : string list; dn : string; get_value : string -> string list;<br> .. > -><br> unit</code></pre><pre><span class="keyword">val</span> <a name="VALformat_entries"></a>format_entries : <code class="type">< attributes : string list; dn : string; get_value : string -> string list;<br> .. ><br> list -> unit</code></pre><pre><span class="keyword">class</span> <a name="TYPEldapentry"></a><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> : <code class="type"></code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info">
62 <div class="info">
63 The change type of an ldapentry. This controls some aspects of
64 it's behavior<br>
65 </div>
66
67 <br>
68 <a name="2_LocalRepresentationofLDAPObjects"></a>
69 <h2>Local Representation of LDAP Objects</h2><br>
70 <pre><span class="keyword">class type</span> <a name="TYPEldapentry_t"></a><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info">
71 The base type of an ldap entry represented in memory.
72 </div>
73 <pre><span class="keyword">class</span> <a name="TYPEldapentry"></a><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> : <code class="type"></code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info">
4874 this object represents a remote object within local memory.
4975 </div>
76 <br>
77 <a name="1_Miscallaneous"></a>
78 <h1>Miscallaneous</h1><br>
79 <pre><span class="keyword">val</span> <a name="VALformat_entry"></a>format_entry : <code class="type">< attributes : string list; dn : string; get_value : string -> string list;<br> .. > -><br> unit</code></pre><div class="info">
80 toplevel formatter for ldapentry, prints the whole entry with a
81 nice structure. Each attribute is in the correct syntax to be
82 copied and pasted into a modify operation.<br>
83 </div>
84 <pre><span class="keyword">val</span> <a name="VALformat_entries"></a>format_entries : <code class="type">< attributes : string list; dn : string; get_value : string -> string list;<br> .. ><br> list -> unit</code></pre><div class="info">
85 format lists of entries, in this case only print the dn<br>
86 </div>
5087 <pre><span class="keyword">type</span> <a name="TYPEchangerec"></a><code class="type"></code>changerec = <code class="type">[ `Addition of <a href="Ldap_ooclient.ldapentry.html">ldapentry</a><br> | `Delete of string<br> | `Modification of<br> string * (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list<br> | `Modrdn of string * int * string ]</code> </pre>
51
88 <div class="info">
89 The type of an ldap change record, used by extended LDIF<br>
90 </div>
91
92 <br>
93 <a name="0_CommunicationWithLdapfunclient"></a>
94 <h0>Communication With <a href="Ldap_funclient.html"><code class="code"><span class="constructor">Ldap_funclient</span></code></a></h0><br>
5295 <pre><span class="keyword">val</span> <a name="VALto_entry"></a>to_entry : <code class="type">[< `Entry of <a href="Ldap_types.html#TYPEsearch_result_entry">Ldap_types.search_result_entry</a> | `Referral of string list ] -><br> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><div class="info">
5396 given a search_result_entry as returned by ldap_funclient, produce an
5497 ldapentry containing either the entry, or the referral object<br>
58101 produce a search_result_entry suitable for ldap_funclient, or
59102 ldap_funserver.<br>
60103 </div>
104 <br>
105 <a name="2_InteractingwithLDAPServers"></a>
106 <h2>Interacting with LDAP Servers</h2><br>
107 <pre><span class="keyword">class</span> <a name="TYPEldapcon"></a><a href="Ldap_ooclient.ldapcon.html">ldapcon</a> : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info">
108 This class abstracts a connection to an LDAP server (or servers),
109 an instance will be connected to the server you specify and can be
110 used to perform operations on that server.
111 </div>
112 <br>
113 <a name="1_IteratorsOverStreamsofldapentryObjects"></a>
114 <h1>Iterators Over Streams of ldapentry Objects</h1><br>
61115 <pre><span class="keyword">val</span> <a name="VALiter"></a>iter : <code class="type">(<a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit) -><br> (?abandon:bool -> unit -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a>) -> unit</code></pre><div class="info">
62116 given a source of ldapentry objects (unit -&gt; ldapentry), such as
63 the return value of ldapcon#search_a apply f (first arg) to each entry
117 the return value of ldapcon#search_a, apply f (first arg) to each entry
64118 See List.iter<br>
65119 </div>
66120 <pre><span class="keyword">val</span> <a name="VALrev_map"></a>rev_map : <code class="type">(<a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> 'a) -><br> (?abandon:bool -> unit -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a>) -> 'a list</code></pre><div class="info">
77131 the return value of ldapcon#search_a compute (f eN ... (f e2 (f e1
78132 intial))) see List.fold_right.<br>
79133 </div>
80 <pre><span class="keyword">class</span> <a name="TYPEldapcon"></a><a href="Ldap_ooclient.ldapcon.html">ldapcon</a> : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><pre><span class="keyword">module</span> <a href="Ldap_ooclient.OrdOid.html">OrdOid</a>: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.OrdOid.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><pre><span class="keyword">module</span> <a href="Ldap_ooclient.Setstr.html">Setstr</a>: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.Setstr.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><br><code><span class="keyword">type</span> <a name="TYPEscflavor"></a><code class="type"></code>scflavor = </code><table class="typetable">
134 <br>
135 <a name="2_SchemaAwareldapentryDerivatives"></a>
136 <h2>Schema Aware ldapentry Derivatives</h2><br>
137 <br>
138 <a name="1_GeneralSchemaAwareEntry"></a>
139 <h1>General Schema Aware Entry</h1> <a href="Ldap_ooclient.scldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.scldapentry</code></a>, A
140 schema aware derivative of <a href="Ldap_ooclient.ldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry</code></a>. It contains
141 an rfc2252 schema checker, and given the database schema, it can
142 be used to garentee that operations performed in memory are valid
143 against a standards compliant database. It has numerious uses,
144 translation between two databases with different schemas an
145 example of where it finds natural usage. For an example
146 application<br>
147 <pre><span class="keyword">module</span> <a href="Ldap_ooclient.OrdOid.html">OrdOid</a>: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.OrdOid.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info">
148 an ordered oid type, for placing oids in sets
149 </div>
150 <pre><span class="keyword">module</span> <a href="Ldap_ooclient.Setstr.html">Setstr</a>: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_ooclient.Setstr.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info">
151 <font color="#CCCCCC">A set of Oids
152 </font></div>
153 <br><code><span class="keyword">type</span> <a name="TYPEscflavor"></a><code class="type"></code>scflavor = </code><table class="typetable">
81154 <tr>
82155 <td align="left" valign="top" >
83156 <code><span class="keyword">|</span></code></td>
84157 <td align="left" valign="top" >
85158 <code><span class="constructor">Optimistic</span></code></td>
86
159 <td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Add missing attributes to make the object consistant, or add
160 objectclasses in order to make illegal attribues legal</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
87161 </tr>
88162 <tr>
89163 <td align="left" valign="top" >
90164 <code><span class="keyword">|</span></code></td>
91165 <td align="left" valign="top" >
92166 <code><span class="constructor">Pessimistic</span></code></td>
93
167 <td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Delete objectclasses which must attributes which are
168 missing, and delete illegal attributes.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
94169 </tr></table>
95170
171 <div class="info">
172 The type of schema checking to perform in
173 <a href="Ldap_ooclient.scldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.scldapentry</code></a>. Normally this is picked
174 automatically, however it can be overridden in some cases.<br>
175 </div>
96176
97177 <pre><span class="keyword">val</span> <a name="VALattrToOid"></a>attrToOid : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -><br> <a href="Ldap_schemaparser.Lcstring.html#TYPEt">Ldap_schemaparser.Lcstring.t</a> -> <a href="Ldap_schemaparser.Oid.html#TYPEt">Ldap_schemaparser.Oid.t</a></code></pre><div class="info">
98 given a name of an attribute, return its oid<br>
178 given a name of an attribute name (canonical or otherwise), return
179 its oid<br>
180 <b>Raises</b> <code>Invalid_attribute</code> If the attribute is not found in the schema.<br>
99181 </div>
100182 <pre><span class="keyword">val</span> <a name="VALoidToAttr"></a>oidToAttr : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> <a href="Ldap_schemaparser.Oid.html#TYPEt">Ldap_schemaparser.Oid.t</a> -> string</code></pre><div class="info">
101183 given the oid of an attribute, return its canonical name<br>
184 <b>Raises</b> <code>Invalid_attribute</code> If the attribute is not found in the schema.<br>
102185 </div>
103186 <pre><span class="keyword">val</span> <a name="VALocToOid"></a>ocToOid : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -><br> <a href="Ldap_schemaparser.Lcstring.html#TYPEt">Ldap_schemaparser.Lcstring.t</a> -> <a href="Ldap_schemaparser.Oid.html#TYPEt">Ldap_schemaparser.Oid.t</a></code></pre><div class="info">
104 given a name of an objectclass, return its oid<br>
187 given a name of an objectclass (canonical or otherwise), return
188 its oid.<br>
189 <b>Raises</b> <code>Invalid_objectclass</code> If the objectclass is not
190 found in the schema.<br>
105191 </div>
106192 <pre><span class="keyword">val</span> <a name="VALoidToOc"></a>oidToOc : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> <a href="Ldap_schemaparser.Oid.html#TYPEt">Ldap_schemaparser.Oid.t</a> -> string</code></pre><div class="info">
107193 given the oid of an objectclass, return its canonical name<br>
194 <b>Raises</b> <code>Invalid_objectclass</code> If the objectclass is not found in the
195 schema.<br>
108196 </div>
109197 <pre><span class="keyword">val</span> <a name="VALgetOc"></a>getOc : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -><br> <a href="Ldap_schemaparser.Lcstring.html#TYPEt">Ldap_schemaparser.Lcstring.t</a> -> <a href="Ldap_schemaparser.html#TYPEobjectclass">Ldap_schemaparser.objectclass</a></code></pre><div class="info">
110 get an objectclass structure by one of its names<br>
198 get an objectclass structure by one of its names (canonical or
199 otherwise, however getting it by canonical name is currently much
200 faster)<br>
201 <b>Raises</b> <code>Invalid_objectclass</code> If the objectclass is not found
202 in the schema.<br>
111203 </div>
112204 <pre><span class="keyword">val</span> <a name="VALgetAttr"></a>getAttr : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -><br> <a href="Ldap_schemaparser.Lcstring.html#TYPEt">Ldap_schemaparser.Lcstring.t</a> -> <a href="Ldap_schemaparser.html#TYPEattribute">Ldap_schemaparser.attribute</a></code></pre><div class="info">
113 get an attr structure by one of its names<br>
205 get an attr structure by one of its names (canonical or otherwise,
206 however getting it by canonical name is currently much faster)<br>
207 <b>Raises</b> <code>Invalid_attribute</code> If the attribute is not found in the
208 schema.<br>
114209 </div>
115210 <pre><span class="keyword">val</span> <a name="VALequateAttrs"></a>equateAttrs : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -><br> <a href="Ldap_schemaparser.Lcstring.html#TYPEt">Ldap_schemaparser.Lcstring.t</a> -> <a href="Ldap_schemaparser.Lcstring.html#TYPEt">Ldap_schemaparser.Lcstring.t</a> -> bool</code></pre><div class="info">
116 equate attributes by oid. This allows aliases to be handled
117 correctly, for example "uid" and "userID" are actually the same
118 attribute.<br>
211 equate attributes by oid. This allows non canonical names to be
212 handled correctly, for example "uid" and "userID" are actually the
213 same attribute.<br>
214 <b>Raises</b> <code>Invalid_attribute</code> If either attribute is
215 not found in the schema.<br>
119216 </div>
120217 <pre><span class="keyword">exception</span> <a name="EXCEPTIONInvalid_objectclass"></a>Invalid_objectclass <span class="keyword">of</span> <code class="type">string</code></pre>
121218 <pre><span class="keyword">exception</span> <a name="EXCEPTIONInvalid_attribute"></a>Invalid_attribute <span class="keyword">of</span> <code class="type">string</code></pre>
122219 <pre><span class="keyword">exception</span> <a name="EXCEPTIONSingle_value"></a>Single_value <span class="keyword">of</span> <code class="type">string</code></pre>
123220 <pre><span class="keyword">exception</span> <a name="EXCEPTIONObjectclass_is_required"></a>Objectclass_is_required</pre>
124 <pre><span class="keyword">class</span> <a name="TYPEscldapentry"></a><a href="Ldap_ooclient.scldapentry.html">scldapentry</a> : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.scldapentry.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><br><code><span class="keyword">type</span> <a name="TYPEgenerator"></a><code class="type"></code>generator = {</code><table class="typetable">
221 <pre><span class="keyword">class</span> <a name="TYPEscldapentry"></a><a href="Ldap_ooclient.scldapentry.html">scldapentry</a> : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.scldapentry.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><br>
222 <a name="1_SchemaAwareEntryforAccountManagment"></a>
223 <h1>Schema Aware Entry for Account Managment</h1> A derivative of
224 <a href="Ldap_ooclient.scldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.scldapentry</code></a> which includes abstractions for
225 managing user accounts in the directory. This class is
226 experimantal, and may be drastically changed in the next version.
227 As with all experimental code, use with caution. A few of its features.
228 <p>
229
230 <ul>
231 <li>Loosely dependant attributes: Many attributes are derived
232 from others via a function. ldapaccount allows you to codify
233 that relationship by providing an attribute generator
234 (<a href="Ldap_ooclient.html#TYPEgenerator"><code class="code"><span class="constructor">Ldap_ooclient</span>.generator</code></a>) for the attribute, which will
235 be used to derive it's value except in the case that it is
236 specified explicitly</li>
237 <li>Attribute and Generator Grouping: via the service abstraction.
238 Allows you to group attributes together with generators and
239 default values in interesting ways. You can then assign the
240 whole grouping a name, and refer to it by that name. See
241 <a href="Ldap_ooclient.html#TYPEservice"><code class="code"><span class="constructor">Ldap_ooclient</span>.service</code></a></li>
242 <li>Difference Based: Service operations are difference based,
243 all applications of service operations compute the delta between
244 the current object, and what the service requires. The minumum set
245 of changes necessary to satisfy the service are applied to the object.</li>
246 <li>Idempotentcy: As a result of being difference based,
247 Service operations are itempotent. For example,
248 adding a service twice has no effect on the object. It will
249 not queue changes for modification to the directory, and it
250 will not change the object in memory. Deleting a service
251 twice has no effect...etc</li>
252 </ul>
253 <br>
254 <br><code><span class="keyword">type</span> <a name="TYPEgenerator"></a><code class="type"></code>generator = {</code><table class="typetable">
125255 <tr>
126256 <td align="left" valign="top" >
127257 <code>&nbsp;&nbsp;</code></td>
145275 </tr></table>
146276 }
147277
278 <div class="info">
279 The structure of a generator<br>
280 </div>
148281
149282 <br><code><span class="keyword">type</span> <a name="TYPEservice"></a><code class="type"></code>service = {</code><table class="typetable">
150283 <tr>
177310 </tr></table>
178311 }
179312
313 <div class="info">
314 The structure of a service<br>
315 </div>
180316
181317 <br><code><span class="keyword">type</span> <a name="TYPEgeneration_error"></a><code class="type"></code>generation_error = </code><table class="typetable">
182318 <tr>
194330
195331 </tr></table>
196332
333 <div class="info">
334 The type of error raised by attribute generators<br>
335 </div>
197336
198337 <pre><span class="keyword">exception</span> <a name="EXCEPTIONNo_generator"></a>No_generator <span class="keyword">of</span> <code class="type">string</code></pre>
338 <div class="info">
339 You've asked it to generate an attribute (in a service) which
340 doesn't have a generator<br>
341 </div>
199342 <pre><span class="keyword">exception</span> <a name="EXCEPTIONGeneration_failed"></a>Generation_failed <span class="keyword">of</span> <code class="type"><a href="Ldap_ooclient.html#TYPEgeneration_error">generation_error</a></code></pre>
343 <div class="info">
344 Generator has failed because of some kind of error<br>
345 </div>
200346 <pre><span class="keyword">exception</span> <a name="EXCEPTIONNo_service"></a>No_service <span class="keyword">of</span> <code class="type">string</code></pre>
347 <div class="info">
348 The service you're talking about doesn't exist<br>
349 </div>
201350 <pre><span class="keyword">exception</span> <a name="EXCEPTIONService_dep_unsatisfiable"></a>Service_dep_unsatisfiable <span class="keyword">of</span> <code class="type">string</code></pre>
351 <div class="info">
352 A service which the one you tried to add depends on doesn't exists<br>
353 </div>
202354 <pre><span class="keyword">exception</span> <a name="EXCEPTIONGenerator_dep_unsatisfiable"></a>Generator_dep_unsatisfiable <span class="keyword">of</span> <code class="type">string * string</code></pre>
355 <div class="info">
356 Your generator depends on an attribute which isn't in the schema<br>
357 </div>
203358 <pre><span class="keyword">exception</span> <a name="EXCEPTIONCannot_sort_dependancies"></a>Cannot_sort_dependancies <span class="keyword">of</span> <code class="type">string list</code></pre>
359 <div class="info">
360 You have detached cycles in your generator dependancy lists<br>
361 </div>
204362 <pre><span class="keyword">class</span> <a name="TYPEldapaccount"></a><a href="Ldap_ooclient.ldapaccount.html">ldapaccount</a> : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> (string, <a href="Ldap_ooclient.html#TYPEgenerator">generator</a>) Hashtbl.t -> (string, <a href="Ldap_ooclient.html#TYPEservice">service</a>) Hashtbl.t -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapaccount.html">..</a> <code class="code"><span class="keyword">end</span></code></pre></body></html>
2424 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2525 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2626 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapaccount</title>
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
28 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><link title="Account Manipulation Methods" rel="Section" href="#2_AccountManipulationMethods">
29 <link title="Inherited Methods" rel="Section" href="#2_InheritedMethods">
30 <title>Ldap_ooclient.ldapaccount</title>
2831 </head>
2932 <body>
3033 <div class="navbar"><a href="Ldap_ooclient.scldapentry.html">Previous</a>
3336 <center><h1>Class <a href="type_Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a></h1></center>
3437 <br>
3538 <pre><span class="keyword">class</span> <a name="TYPEldapaccount"></a>ldapaccount : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> (string, <a href="Ldap_ooclient.html#TYPEgenerator">generator</a>) Hashtbl.t -> (string, <a href="Ldap_ooclient.html#TYPEservice">service</a>) Hashtbl.t -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapaccount.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%">
36 <pre><span class="keyword">method</span> <a name="METHODadapt_service"></a>adapt_service : <code class="type"><a href="Ldap_ooclient.html#TYPEservice">service</a> -> <a href="Ldap_ooclient.html#TYPEservice">service</a></code></pre><pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODadd_generate"></a>add_generate : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODadd_service"></a>add_service : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODattributes"></a>attributes : <code class="type">string list</code></pre><pre><span class="keyword">method</span> <a name="METHODchanges"></a>changes : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODchangetype"></a>changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a></code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdelete_generate"></a>delete_generate : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdelete_service"></a>delete_service : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdn"></a>dn : <code class="type">string</code></pre><pre><span class="keyword">method</span> <a name="METHODdiff"></a>diff : <code class="type"><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -><br> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODexists"></a>exists : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODflush_changes"></a>flush_changes : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODgenerate"></a>generate : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODget_value"></a>get_value : <code class="type">string -> string list</code></pre><pre><span class="keyword">method</span> <a name="METHODis_allowed"></a>is_allowed : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODis_missing"></a>is_missing : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_allowed"></a>list_allowed : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_missing"></a>list_missing : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_present"></a>list_present : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODof_entry"></a>of_entry : <code class="type">?scflavor:<a href="Ldap_ooclient.html#TYPEscflavor">scflavor</a> -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODprint"></a>print : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODreplace"></a>replace : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODservice_exists"></a>service_exists : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODservices_present"></a>services_present : <code class="type">string list</code></pre><pre><span class="keyword">method</span> <a name="METHODset_changetype"></a>set_changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_dn"></a>set_dn : <code class="type">string -> unit</code></pre></body></html>
39 <a name="2_AccountManipulationMethods"></a>
40 <h2>Account Manipulation Methods</h2><pre><span class="keyword">method</span> <a name="METHODadd_service"></a>add_service : <code class="type">string -> unit</code></pre><div class="info">
41 add the named service to the object, this also adds all the
42 services depended upon by the named service.<br>
43 </div>
44 <pre><span class="keyword">method</span> <a name="METHODdelete_service"></a>delete_service : <code class="type">string -> unit</code></pre><div class="info">
45 Delete the named service. This will also delete all services
46 which depend on it, either directly or indirectly<br>
47 </div>
48 <pre><span class="keyword">method</span> <a name="METHODadapt_service"></a>adapt_service : <code class="type"><a href="Ldap_ooclient.html#TYPEservice">service</a> -> <a href="Ldap_ooclient.html#TYPEservice">service</a></code></pre><div class="info">
49 Run service through the delta engine to find out what changes
50 would actually be applied to this object<br>
51 </div>
52 <pre><span class="keyword">method</span> <a name="METHODservice_exists"></a>service_exists : <code class="type">string -> bool</code></pre><div class="info">
53 Tests whether the named service is satisfied by the current
54 entry. A service is satisfied if no changes would result from
55 adding it to the entry.<br>
56 </div>
57 <pre><span class="keyword">method</span> <a name="METHODservices_present"></a>services_present : <code class="type">string list</code></pre><div class="info">
58 Return a list of all the named services which are satisfied by
59 the current entry.<br>
60 </div>
61 <pre><span class="keyword">method</span> <a name="METHODadd_generate"></a>add_generate : <code class="type">string -> unit</code></pre><div class="info">
62 add the named attribute to the list of attributes to be generated<br>
63 </div>
64 <pre><span class="keyword">method</span> <a name="METHODdelete_generate"></a>delete_generate : <code class="type">string -> unit</code></pre><div class="info">
65 Delete the named attribute from the list of attributes to generate<br>
66 </div>
67 <pre><span class="keyword">method</span> <a name="METHODgenerate"></a>generate : <code class="type">unit</code></pre><div class="info">
68 Run the generation functions on the list of attributes to be
69 generated, saving the results in the entry. You must run this
70 method in order to run any generators at all.<br>
71 </div>
72 <a name="2_InheritedMethods"></a>
73 <h2>Inherited Methods</h2> Unless explicitly stated, these methods
74 do exactly the same thing as in <a href="Ldap_ooclient.scldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.scldapentry</code></a><pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><div class="info">
75 Missing attributes may be marked for generation.<br>
76 </div>
77 <pre><span class="keyword">method</span> <a name="METHODattributes"></a>attributes : <code class="type">string list</code></pre><pre><span class="keyword">method</span> <a name="METHODchanges"></a>changes : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODchangetype"></a>changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a></code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdn"></a>dn : <code class="type">string</code></pre><pre><span class="keyword">method</span> <a name="METHODdiff"></a>diff : <code class="type"><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -><br> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODexists"></a>exists : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODflush_changes"></a>flush_changes : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODget_value"></a>get_value : <code class="type">string -> string list</code></pre><div class="info">
78 If a missing attribute is marked for generation its value will
79 be <code class="code"><span class="string">"generate"</span></code> instead of <code class="code"><span class="string">"required"</span></code><br>
80 </div>
81 <pre><span class="keyword">method</span> <a name="METHODis_allowed"></a>is_allowed : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODis_missing"></a>is_missing : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_allowed"></a>list_allowed : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_missing"></a>list_missing : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_present"></a>list_present : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODof_entry"></a>of_entry : <code class="type">?scflavor:<a href="Ldap_ooclient.html#TYPEscflavor">scflavor</a> -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODprint"></a>print : <code class="type">unit</code></pre><div class="info">
82 <span class="warning">Deprecated.</span>Missing required attributes which will be
83 generated are shown as "attrname: generate" instead of
84 "attrname: required"<br>
85 </div>
86 <pre><span class="keyword">method</span> <a name="METHODreplace"></a>replace : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_changetype"></a>set_changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_dn"></a>set_dn : <code class="type">string -> unit</code></pre></body></html>
0 <html>
1 <head>
2 <link rel="stylesheet" href="style.css" type="text/css">
3 <link rel="Start" href="index.html">
4 <link rel="previous" href="Ldap_ooclient.object_lock_table.html">
5 <link rel="next" href="Ldap_ooclient.scldapentry.html">
6 <link rel="Up" href="Ldap_ooclient.html">
7 <link title="Index of types" rel=Appendix href="index_types.html">
8 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
9 <link title="Index of values" rel=Appendix href="index_values.html">
10 <link title="Index of class methods" rel=Appendix href="index_methods.html">
11 <link title="Index of classes" rel=Appendix href="index_classes.html">
12 <link title="Index of class types" rel=Appendix href="index_class_types.html">
13 <link title="Index of modules" rel=Appendix href="index_modules.html">
14 <link title="Lber" rel="Chapter" href="Lber.html">
15 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
16 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
17 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
18 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
19 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
20 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
21 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
22 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
23 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
24 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
25 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
26 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
27 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapadvisorytxcon</title>
29 </head>
30 <body>
31 <div class="navbar"><a href="Ldap_ooclient.object_lock_table.html">Previous</a>
32 &nbsp;<a href="Ldap_ooclient.html">Up</a>
33 &nbsp;<a href="Ldap_ooclient.scldapentry.html">Next</a>
34 </div>
35 <center><h1>Class <a href="type_Ldap_ooclient.ldapadvisorytxcon.html">Ldap_ooclient.ldapadvisorytxcon</a></h1></center>
36 <br>
37 <pre><span class="keyword">class</span> <a name="TYPEldapadvisorytxcon"></a>ldapadvisorytxcon : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapadvisorytxcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>A subclass of ldapcon which implements an experimental interface
38 to draft_zeilenga_ldap_txn. A draft standard for multi object
39 transactions over the ldap protocol. This class can only implement
40 advisory transactions because it must depend on the advisory
41 locking mechanisms for the transactions to be consistant. You use
42 this class by calling begin_txn to get a transaction id, and then
43 associating a set of ldapentry objects with the transaction by
44 calling associate_entry_with_txn. You are then free to modify
45 those entries in any way you like, and when you are done, you can
46 either call commit_txn, or rollback_txn. Commit will commit the
47 changes of all the entries associated with the transaction to the
48 database. For other writers which obey advisory locking the commit
49 operation is atomic. For readers which are willing to obey
50 advisory locking is atomic. If the commit fails, a full rollback
51 occurrs, including all changes made to the directory. For example
52 in a set of N entries in a transaction, if the modificiation of
53 the nth entry fails to commit, then the modifications to all the
54 previous entries, which have already been made in the directory,
55 are undone. It is important to note that if advisory locking is
56 not obeyed, rollback may not be successful. Rollback undoes all
57 the changes you've made in memory, and unlocks all the objects in
58 the transaction. After a transaction object has been commited or
59 rolled back it is considered "dead", and cannot be used again.<br>
60 <hr width="100%">
61 <pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODbind"></a>bind : <code class="type">?cred:string -> ?meth:<a href="Ldap_funclient.html#TYPEauthmethod">Ldap_funclient.authmethod</a> -> string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">string -> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODmodrdn"></a>modrdn : <code class="type">string -> ?deleteoldrdn:bool -> ?newsup:string option -> string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODrawschema"></a>rawschema : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><pre><span class="keyword">method</span> <a name="METHODschema"></a>schema : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a></code></pre><pre><span class="keyword">method</span> <a name="METHODsearch"></a>search : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -> ?base:string -> string -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODsearch_a"></a>search_a : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -><br> ?base:string -> string -> ?abandon:bool -> unit -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><pre><span class="keyword">method</span> <a name="METHODunbind"></a>unbind : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODupdate_entry"></a>update_entry : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODbegin_txn"></a>begin_txn : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a></code></pre><pre><span class="keyword">method</span> <a name="METHODassociate_entry"></a>associate_entry : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODassociate_entries"></a>associate_entries : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdisassociate_entry"></a>disassociate_entry : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdisassociate_entries"></a>disassociate_entries : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODcommit_txn"></a>commit_txn : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODrollback_txn"></a>rollback_txn : <code class="type"><a href="Ldap_ooclient.html#TYPEtxn">txn</a> -> unit</code></pre></body></html>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapcon</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><link title="Authentication" rel="Section" href="#2_Authentication">
30 <link title="Searching" rel="Section" href="#2_Searching">
31 <link title="Making Modifications" rel="Section" href="#2_MakingModifications">
32 <title>Ldap_ooclient.ldapcon</title>
2933 </head>
3034 <body>
3135 <div class="navbar"><a href="Ldap_ooclient.ldapentry.html">Previous</a>
3438 </div>
3539 <center><h1>Class <a href="type_Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a></h1></center>
3640 <br>
37 <pre><span class="keyword">class</span> <a name="TYPEldapcon"></a>ldapcon : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%">
38 <pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODbind"></a>bind : <code class="type">?cred:string -> ?meth:<a href="Ldap_funclient.html#TYPEauthmethod">Ldap_funclient.authmethod</a> -> string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">string -> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODmodrdn"></a>modrdn : <code class="type">string -> ?deleteoldrdn:bool -> string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODrawschema"></a>rawschema : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><pre><span class="keyword">method</span> <a name="METHODschema"></a>schema : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a></code></pre><pre><span class="keyword">method</span> <a name="METHODsearch"></a>search : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -> ?base:string -> string -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODsearch_a"></a>search_a : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -><br> ?base:string -> string -> ?abandon:bool -> unit -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><pre><span class="keyword">method</span> <a name="METHODunbind"></a>unbind : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODupdate_entry"></a>update_entry : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre></body></html>
41 <pre><span class="keyword">class</span> <a name="TYPEldapcon"></a>ldapcon : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>This class abstracts a connection to an LDAP server (or servers),
42 an instance will be connected to the server you specify and can be
43 used to perform operations on that server.
44 <p>
45
46 <a name="0_Example"></a>
47 <h0>Example</h0>
48 <p>
49
50 <code class="code"><span class="keyword">new</span> ldapcon ~connect_timeout:5 ~version:3
51 [<span class="string">"ldap://first.ldap.server"</span>;<span class="string">"ldap://second.ldap.server"</span>]</code>.
52 <p>
53
54 In addition to specifying multiple urls, if DNS names are given,
55 and those names are bound to multiple addresses, then all possible
56 addresses will be tried.
57 <p>
58
59 <a name="0_Example"></a>
60 <h0>Example</h0>
61 <p>
62
63 <code class="code"><span class="keyword">new</span> ldapcon [<span class="string">"ldaps://rrldap.csun.edu"</span>]</code>
64 <p>
65
66 is equivelant to
67 <p>
68
69 <code class="code"><span class="keyword">new</span> ldapcon [<span class="string">"ldap://130.166.1.30"</span>;<span class="string">"ldap://130.166.1.31"</span>;<span class="string">"ldap://130.166.1.32"</span>]</code>
70 <p>
71
72 This means that if any host in the rr fails, the ldapcon will
73 transparently move on to the next host, and you will never know
74 the difference.<br>
75 <b>Raises</b> <code>LDAP_Failure</code> All methods raise <a href="Ldap_types.html#EXCEPTIONLDAP_Failure"><code class="code"><span class="constructor">Ldap_types</span>.<span class="constructor">LDAP_Failure</span></code></a> on error<br>
76 <div class="param_info"><code class="code">connect_timeout</code> : Default <code class="code">1</code>, an integer which specifies how
77 long to wait for any given server in the list to respond before
78 trying the next one. After all the servers have been tried for
79 <code class="code">connect_timeout</code> seconds <code class="code"><span class="constructor">LDAP_Failure</span> (<span class="keywordsign">`</span><span class="constructor">SERVER_DOWN</span>, ...)</code> will
80 be raised.</div>
81 <div class="param_info"><code class="code">referral_policy</code> : In a future version of ocamldap this will
82 be used to specify what you would like to do in the event of a
83 referral. Currently it does nothing and is ignored see
84 <a href="Ldap_ooclient.html#TYPEreferral_policy"><code class="code"><span class="constructor">Ldap_ooclient</span>.referral_policy</code></a>.</div>
85 <div class="param_info"><code class="code">version</code> : The protocol version to use, the default is <code class="code">3</code>,
86 the other recognized value is <code class="code">2</code>.</div>
87 <hr width="100%">
88 <a name="2_Authentication"></a>
89 <h2>Authentication</h2><pre><span class="keyword">method</span> <a name="METHODbind"></a>bind : <code class="type">?cred:string -> ?meth:<a href="Ldap_funclient.html#TYPEauthmethod">Ldap_funclient.authmethod</a> -> string -> unit</code></pre><div class="info">
90 bind to the database using dn.
91 <p>
92
93 <a name="0_SimpleBindExample"></a>
94 <h0>Simple Bind Example</h0>
95 <p>
96
97 <code class="code">ldap<span class="keywordsign">#</span>bind ~cred:<span class="string">"password"</span> <span class="string">"cn=foo,ou=people,ou=auth,o=bar"</span></code>
98 <p>
99
100 To bind anonymously, omit ~cred, and leave dn blank eg.
101 <p>
102
103 <a name="0_Example"></a>
104 <h0>Example</h0>
105 <p>
106
107 <code class="code">ldap<span class="keywordsign">#</span>bind <span class="string">""</span></code><br>
108 </div>
109 <div class="param_info"><code class="code">cred</code> : The credentials to provide for binding. Default <code class="code"><span class="string">""</span></code>.</div>
110 <div class="param_info"><code class="code">meth</code> : The method to use when binding See
111 <a href="Ldap_funclient.html#TYPEauthmethod"><code class="code"><span class="constructor">Ldap_funclient</span>.authmethod</code></a> the default is <code class="code"><span class="keywordsign">`</span><span class="constructor">SIMPLE</span></code>. If
112 <code class="code"><span class="keywordsign">`</span><span class="constructor">SASL</span></code> is used then <code class="code">dn</code> and <code class="code">~cred</code> Are interperted according
113 to the chosen SASL mechanism. SASL binds have not been tested
114 extensively.</div>
115 <pre><span class="keyword">method</span> <a name="METHODunbind"></a>unbind : <code class="type">unit</code></pre><div class="info">
116 Deauthenticate and close the connection to the server<br>
117 </div>
118 <a name="2_Searching"></a>
119 <h2>Searching</h2><pre><span class="keyword">method</span> <a name="METHODsearch"></a>search : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -> ?base:string -> string -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> list</code></pre><div class="info">
120 Search the directory syncronously for an entry which matches the
121 search criteria.
122 <p>
123
124 <a name="0_Example"></a>
125 <h0>Example</h0>
126 <p>
127
128 <code class="code">ldap<span class="keywordsign">#</span>search ~base:<span class="string">"dc=foo,dc=bar"</span> ~attrs:[<span class="string">"cn"</span>] <span class="string">"uid=*"</span></code><br>
129 </div>
130 <div class="param_info"><code class="code">scope</code> : Default <code class="code"><span class="keywordsign">`</span><span class="constructor">SUBTREE</span></code>, defines the scope of the
131 search. see <a href="Ldap_types.html#TYPEsearch_scope"><code class="code"><span class="constructor">Ldap_types</span>.search_scope</code></a></div>
132 <div class="param_info"><code class="code">attrs</code> : Default <code class="code">[]</code> (means all attributes)</div>
133 <div class="param_info"><code class="code">attrsonly</code> : Default <code class="code"><span class="keyword">false</span></code> If true, asks the server to return
134 only the attribute names, not their values.</div>
135 <div class="param_info"><code class="code">base</code> : Default <code class="code"><span class="string">""</span></code>, The search base, which is the dn of the
136 object from which you want to start your search. Only that
137 object, and it's children will be included in the
138 search. Further controlled by <code class="code">~scope</code>.</div>
139 <pre><span class="keyword">method</span> <a name="METHODsearch_a"></a>search_a : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -><br> ?base:string -> string -> ?abandon:bool -> unit -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><div class="info">
140 Search the directory asyncronously, otherwise the same as
141 search.<br>
142 </div>
143 <pre><span class="keyword">method</span> <a name="METHODrawschema"></a>rawschema : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a></code></pre><div class="info">
144 Fetch the raw (unparsed) schema from the directory using the
145 standard mechanism (requires protocol version 3)<br>
146 </div>
147 <pre><span class="keyword">method</span> <a name="METHODschema"></a>schema : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a></code></pre><div class="info">
148 Fetch and parse the schema from the directory via the standard
149 mechanism (requires version 3). Return a structured
150 representation of the schema indexed by canonical name, and oid.<br>
151 </div>
152 <a name="2_MakingModifications"></a>
153 <h2>Making Modifications</h2><pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><div class="info">
154 add an entry to the database<br>
155 </div>
156 <pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type">string -> unit</code></pre><div class="info">
157 Delete the object named by dn from the database<br>
158 </div>
159 <pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">string -> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><div class="info">
160 Modify the entry named by dn, applying mods
161 <p>
162
163 <a name="0_Example"></a>
164 <h0>Example</h0>
165 <p>
166
167 <code class="code">ldap<span class="keywordsign">#</span>modify <span class="string">"uid=foo,ou=people,dc=bar,dc=baz"</span> [(<span class="keywordsign">`</span><span class="constructor">DELETE</span>, <span class="string">"cn"</span>, [<span class="string">"foo"</span>;<span class="string">"bar"</span>])]</code><br>
168 </div>
169 <pre><span class="keyword">method</span> <a name="METHODupdate_entry"></a>update_entry : <code class="type"><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><div class="info">
170 Syncronize changes made locally to an ldapentry with the
171 directory.<br>
172 </div>
173 <pre><span class="keyword">method</span> <a name="METHODmodrdn"></a>modrdn : <code class="type">string -> ?deleteoldrdn:bool -> ?newsup:string option -> string -> unit</code></pre><div class="info">
174 Modify the rdn of the object named by dn, if the protocol
175 version is 3 you may additionally change the superior, the rdn
176 will be changed to the attribute represented (as a string) by
177 newrdn,
178 <p>
179
180 <a name="0_ExampleWithNewSuperior"></a>
181 <h0>Example With New Superior</h0>
182 <p>
183
184 <code class="code">ldap<span class="keywordsign">#</span>modrdn ~newsup:(<span class="constructor">Some</span> <span class="string">"o=csun"</span>) <span class="string">"cn=bob,ou=people,o=org"</span> <span class="string">"uid=bperson"</span></code>
185 <p>
186
187 After this example "cn=bob,ou=people,o=org" will end up as "uid=bperson,o=csun".<br>
188 </div>
189 <div class="param_info"><code class="code">deleteoldrdn</code> : Default <code class="code"><span class="keyword">true</span></code>, delete
190 the old rdn value as part of the modrdn.</div>
191 <div class="param_info"><code class="code">newsup</code> : Default <code class="code"><span class="constructor">None</span></code>, only valid when the protocol
192 version is 3, change the object's location in the tree, making
193 its superior equal to the specified object.</div>
194 </body></html>
2424 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2525 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2626 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapentry</title>
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
28 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.ldapentry</title>
2829 </head>
2930 <body>
3031 <div class="navbar">&nbsp;<a href="Ldap_ooclient.html">Up</a>
3334 <center><h1>Class <a href="type_Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a></h1></center>
3435 <br>
3536 <pre><span class="keyword">class</span> <a name="TYPEldapentry"></a>ldapentry : <code class="type"></code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>this object represents a remote object within local memory. It
36 records all local changes made to it (if it's changetype is set to
37 `MODIFY), and can commit them to the server at a later time. This
38 can significantly improve performance by reducing traffic to the
39 server.<br>
37 records all local changes made to it (if it's changetype is set to
38 `MODIFY), and can commit them to the server at a later time via
39 <a href="Ldap_ooclient.ldapcon.html#METHODupdate_entry"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapcon.update_entry</code></a>.<br>
4040 <hr width="100%">
4141 <pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><div class="info">
4242 add values to an attribute (or create a new attribute). Does
4747 on the object<br>
4848 </div>
4949 <pre><span class="keyword">method</span> <a name="METHODchanges"></a>changes : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><div class="info">
50 return a list of changes made to the object in a format suitable for
51 sending directly to modify_s<br>
50 return a list of changes made to the object in a the format of
51 a modify operation. For example, you can apply the changes to another
52 ldapentry object using the <a href="Ldap_ooclient.ldapentry.html#METHODmodify"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.modify</code></a>
53 method<br>
5254 </div>
5355 <pre><span class="keyword">method</span> <a name="METHODchangetype"></a>changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a></code></pre><div class="info">
5456 return the changetype of the object<br>
6264 </div>
6365 <pre><span class="keyword">method</span> <a name="METHODdiff"></a>diff : <code class="type"><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -><br> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><div class="info">
6466 given an ldapentry, return the differences between the current
65 entry and the specified entry<br>
67 entry and the specified entry in the form of a modify
68 operation which would make the specified entry the same as the
69 current entry.<br>
6670 </div>
6771 <pre><span class="keyword">method</span> <a name="METHODexists"></a>exists : <code class="type">string -> bool</code></pre><div class="info">
6872 query whether the attribute type (name) exists in the object<br>
7276 </div>
7377 <pre><span class="keyword">method</span> <a name="METHODget_value"></a>get_value : <code class="type">string -> string list</code></pre><div class="info">
7478 get the value of an attribute<br>
79 <b>Raises</b> <code>Not_found</code> If the
80 attribute does not exist.<br>
7581 </div>
7682 <pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><div class="info">
77 modify the object (same as modify_s), does not change the
78 database until you update<br>
83 Apply modifications to object in memory, does not change the
84 database until you update using
85 <a href="Ldap_ooclient.ldapcon.html#METHODupdate_entry"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapcon.update_entry</code></a><br>
7986 </div>
8087 <pre><span class="keyword">method</span> <a name="METHODprint"></a>print : <code class="type">unit</code></pre><div class="info">
81 print an ldif like representation of the object to stdout, see
82 Ldif_oo for standards compliant ldif. Usefull for toplevel
83 sessions.<br>
88 <span class="warning">Deprecated.</span>print an ldif like representation of the object to stdout, see
89 Ldif_oo for standards compliant ldif. Usefull for toplevel
90 sessions.<br>
8491 </div>
8592 <pre><span class="keyword">method</span> <a name="METHODreplace"></a>replace : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><div class="info">
8693 replace values in the object, does not change the database
2323 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2424 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2525 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
26 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapentry_t</title>
26 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
27 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.ldapentry_t</title>
2728 </head>
2829 <body>
2930 <div class="navbar">&nbsp;<a href="Ldap_ooclient.html">Up</a>
3031 &nbsp;</div>
3132 <center><h1>Class type <a href="type_Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a></h1></center>
3233 <br>
33 <pre><span class="keyword">class type</span> <a name="TYPEldapentry_t"></a>ldapentry_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%">
34 <pre><span class="keyword">class type</span> <a name="TYPEldapentry_t"></a>ldapentry_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.ldapentry_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>The base type of an ldap entry represented in memory.<br>
35 <hr width="100%">
3436 <pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODattributes"></a>attributes : <code class="type">string list</code></pre><pre><span class="keyword">method</span> <a name="METHODchanges"></a>changes : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODchangetype"></a>changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a></code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdn"></a>dn : <code class="type">string</code></pre><pre><span class="keyword">method</span> <a name="METHODdiff"></a>diff : <code class="type"><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -><br> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODexists"></a>exists : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODflush_changes"></a>flush_changes : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODget_value"></a>get_value : <code class="type">string -> string list</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODprint"></a>print : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODreplace"></a>replace : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_changetype"></a>set_changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_dn"></a>set_dn : <code class="type">string -> unit</code></pre></body></html>
0 <html>
1 <head>
2 <link rel="stylesheet" href="style.css" type="text/css">
3 <link rel="Start" href="index.html">
4 <link rel="previous" href="Ldap_ooclient.ldapcon.html">
5 <link rel="next" href="Ldap_ooclient.object_lock_table.html">
6 <link rel="Up" href="Ldap_ooclient.html">
7 <link title="Index of types" rel=Appendix href="index_types.html">
8 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
9 <link title="Index of values" rel=Appendix href="index_values.html">
10 <link title="Index of class methods" rel=Appendix href="index_methods.html">
11 <link title="Index of classes" rel=Appendix href="index_classes.html">
12 <link title="Index of class types" rel=Appendix href="index_class_types.html">
13 <link title="Index of modules" rel=Appendix href="index_modules.html">
14 <link title="Lber" rel="Chapter" href="Lber.html">
15 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
16 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
17 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
18 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
19 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
20 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
21 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
22 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
23 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
24 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
25 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
26 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
27 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.mutex</title>
29 </head>
30 <body>
31 <div class="navbar"><a href="Ldap_ooclient.ldapcon.html">Previous</a>
32 &nbsp;<a href="Ldap_ooclient.html">Up</a>
33 &nbsp;<a href="Ldap_ooclient.object_lock_table.html">Next</a>
34 </div>
35 <center><h1>Class <a href="type_Ldap_ooclient.mutex.html">Ldap_ooclient.mutex</a></h1></center>
36 <br>
37 <pre><span class="keyword">class</span> <a name="TYPEmutex"></a>mutex : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.mutex.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>new mutex ldapurls binddn bindpw mutexdn<br>
38 <hr width="100%">
39 <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type">unit</code></pre><div class="info">
40 lock the mutex. This WILL block if the mutex is already locked
41 <p>
42 unlock the mutex<br>
43 </div>
44 <pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type">unit</code></pre></body></html>
0 <html>
1 <head>
2 <link rel="stylesheet" href="style.css" type="text/css">
3 <link rel="Start" href="index.html">
4 <link rel="previous" href="Ldap_ooclient.ldapentry_t.html">
5 <link rel="next" href="Ldap_ooclient.object_lock_table_t.html">
6 <link rel="Up" href="Ldap_ooclient.html">
7 <link title="Index of types" rel=Appendix href="index_types.html">
8 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
9 <link title="Index of values" rel=Appendix href="index_values.html">
10 <link title="Index of class methods" rel=Appendix href="index_methods.html">
11 <link title="Index of classes" rel=Appendix href="index_classes.html">
12 <link title="Index of class types" rel=Appendix href="index_class_types.html">
13 <link title="Index of modules" rel=Appendix href="index_modules.html">
14 <link title="Lber" rel="Chapter" href="Lber.html">
15 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
16 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
17 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
18 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
19 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
20 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
21 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
22 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
23 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
24 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
25 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
26 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
27 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.mutex_t</title>
29 </head>
30 <body>
31 <div class="navbar"><a href="Ldap_ooclient.ldapentry_t.html">Previous</a>
32 &nbsp;<a href="Ldap_ooclient.html">Up</a>
33 &nbsp;<a href="Ldap_ooclient.object_lock_table_t.html">Next</a>
34 </div>
35 <center><h1>Class type <a href="type_Ldap_ooclient.mutex_t.html">Ldap_ooclient.mutex_t</a></h1></center>
36 <br>
37 <pre><span class="keyword">class type</span> <a name="TYPEmutex_t"></a>mutex_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.mutex_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>the class type of a single mutex, used for performing
38 advisory locking of some action<br>
39 <hr width="100%">
40 <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type">unit</code></pre></body></html>
0 <html>
1 <head>
2 <link rel="stylesheet" href="style.css" type="text/css">
3 <link rel="Start" href="index.html">
4 <link rel="previous" href="Ldap_ooclient.mutex.html">
5 <link rel="next" href="Ldap_ooclient.ldapadvisorytxcon.html">
6 <link rel="Up" href="Ldap_ooclient.html">
7 <link title="Index of types" rel=Appendix href="index_types.html">
8 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
9 <link title="Index of values" rel=Appendix href="index_values.html">
10 <link title="Index of class methods" rel=Appendix href="index_methods.html">
11 <link title="Index of classes" rel=Appendix href="index_classes.html">
12 <link title="Index of class types" rel=Appendix href="index_class_types.html">
13 <link title="Index of modules" rel=Appendix href="index_modules.html">
14 <link title="Lber" rel="Chapter" href="Lber.html">
15 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
16 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
17 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
18 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
19 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
20 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
21 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
22 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
23 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
24 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
25 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
26 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
27 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.object_lock_table</title>
29 </head>
30 <body>
31 <div class="navbar"><a href="Ldap_ooclient.mutex.html">Previous</a>
32 &nbsp;<a href="Ldap_ooclient.html">Up</a>
33 &nbsp;<a href="Ldap_ooclient.ldapadvisorytxcon.html">Next</a>
34 </div>
35 <center><h1>Class <a href="type_Ldap_ooclient.object_lock_table.html">Ldap_ooclient.object_lock_table</a></h1></center>
36 <br>
37 <pre><span class="keyword">class</span> <a name="TYPEobject_lock_table"></a>object_lock_table : <code class="type">string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.object_lock_table.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>new object_lock_table ldapurls binddn bindpw mutexdn<br>
38 <hr width="100%">
39 <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre><div class="info">
40 lock the specified dn, if it is already locked, then block until the lock can be aquired
41 <p>
42 unlock the specified dn, if it is not locked do nothing<br>
43 </div>
44 <pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre></body></html>
0 <html>
1 <head>
2 <link rel="stylesheet" href="style.css" type="text/css">
3 <link rel="Start" href="index.html">
4 <link rel="previous" href="Ldap_ooclient.mutex_t.html">
5 <link rel="Up" href="Ldap_ooclient.html">
6 <link title="Index of types" rel=Appendix href="index_types.html">
7 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
8 <link title="Index of values" rel=Appendix href="index_values.html">
9 <link title="Index of class methods" rel=Appendix href="index_methods.html">
10 <link title="Index of classes" rel=Appendix href="index_classes.html">
11 <link title="Index of class types" rel=Appendix href="index_class_types.html">
12 <link title="Index of modules" rel=Appendix href="index_modules.html">
13 <link title="Lber" rel="Chapter" href="Lber.html">
14 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
15 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
16 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
17 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
18 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
19 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
20 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
21 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
22 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
23 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
24 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
25 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
26 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.object_lock_table_t</title>
28 </head>
29 <body>
30 <div class="navbar"><a href="Ldap_ooclient.mutex_t.html">Previous</a>
31 &nbsp;<a href="Ldap_ooclient.html">Up</a>
32 &nbsp;</div>
33 <center><h1>Class type <a href="type_Ldap_ooclient.object_lock_table_t.html">Ldap_ooclient.object_lock_table_t</a></h1></center>
34 <br>
35 <pre><span class="keyword">class type</span> <a name="TYPEobject_lock_table_t"></a>object_lock_table_t = <code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.object_lock_table_t.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>the class type of an object lock table which allows for advisory
36 locking of objects by dn<br>
37 <hr width="100%">
38 <pre><span class="keyword">method</span> <a name="METHODlock"></a>lock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODunlock"></a>unlock : <code class="type"><a href="Ldap_types.html#TYPEdn">Ldap_types.dn</a> -> unit</code></pre></body></html>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.scldapentry</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><link title="New Methods" rel="Section" href="#2_NewMethods">
30 <link title="Inherited Methods" rel="Section" href="#2_InheritedMethods">
31 <title>Ldap_ooclient.scldapentry</title>
2932 </head>
3033 <body>
3134 <div class="navbar"><a href="Ldap_ooclient.ldapcon.html">Previous</a>
3538 <center><h1>Class <a href="type_Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a></h1></center>
3639 <br>
3740 <pre><span class="keyword">class</span> <a name="TYPEscldapentry"></a>scldapentry : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a> -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_ooclient.scldapentry.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><hr width="100%">
38 <pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODattributes"></a>attributes : <code class="type">string list</code></pre><pre><span class="keyword">method</span> <a name="METHODchanges"></a>changes : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODchangetype"></a>changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a></code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdn"></a>dn : <code class="type">string</code></pre><pre><span class="keyword">method</span> <a name="METHODexists"></a>exists : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODflush_changes"></a>flush_changes : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODget_value"></a>get_value : <code class="type">string -> string list</code></pre><pre><span class="keyword">method</span> <a name="METHODdiff"></a>diff : <code class="type"><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -><br> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><pre><span class="keyword">method</span> <a name="METHODis_allowed"></a>is_allowed : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODis_missing"></a>is_missing : <code class="type">string -> bool</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_allowed"></a>list_allowed : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_missing"></a>list_missing : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODlist_present"></a>list_present : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODof_entry"></a>of_entry : <code class="type">?scflavor:<a href="Ldap_ooclient.html#TYPEscflavor">scflavor</a> -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODprint"></a>print : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODreplace"></a>replace : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_changetype"></a>set_changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODset_dn"></a>set_dn : <code class="type">string -> unit</code></pre></body></html>
41 <a name="2_NewMethods"></a>
42 <h2>New Methods</h2><pre><span class="keyword">method</span> <a name="METHODis_allowed"></a>is_allowed : <code class="type">string -> bool</code></pre><div class="info">
43 Returns true if the attributed specified is allowed by the
44 current set of objectclasses present on the entry.<br>
45 </div>
46 <pre><span class="keyword">method</span> <a name="METHODis_missing"></a>is_missing : <code class="type">string -> bool</code></pre><div class="info">
47 Returns true if the attribute specified is a must, but is not
48 currently present.<br>
49 </div>
50 <pre><span class="keyword">method</span> <a name="METHODlist_allowed"></a>list_allowed : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><div class="info">
51 Return a list of all attributes allowed on the entry (by oid)<br>
52 </div>
53 <pre><span class="keyword">method</span> <a name="METHODlist_missing"></a>list_missing : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><div class="info">
54 Return a list of all missing attributes (by oid)<br>
55 </div>
56 <pre><span class="keyword">method</span> <a name="METHODlist_present"></a>list_present : <code class="type"><a href="Ldap_ooclient.Setstr.html#TYPEelt">Setstr.elt</a> list</code></pre><div class="info">
57 Return a list of all present attributes. In contrast to the
58 <code class="code">attributes</code> method, this method ignores missing required
59 attributes and just returns those attributes which are actually
60 present.<br>
61 </div>
62 <pre><span class="keyword">method</span> <a name="METHODof_entry"></a>of_entry : <code class="type">?scflavor:<a href="Ldap_ooclient.html#TYPEscflavor">scflavor</a> -> <a href="Ldap_ooclient.ldapentry.html">ldapentry</a> -> unit</code></pre><div class="info">
63 Given an <a href="Ldap_ooclient.ldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry</code></a> copy all of it's data into
64 the current object, and perform a schema check.<br>
65 </div>
66 <div class="param_info"><code class="code">scflavor</code> : Default <code class="code"><span class="constructor">Pessimistic</span></code> The schema checking
67 bias, see <a href="Ldap_ooclient.html#TYPEscflavor"><code class="code"><span class="constructor">Ldap_ooclient</span>.scflavor</code></a></div>
68 <a name="2_InheritedMethods"></a>
69 <h2>Inherited Methods</h2><pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><div class="info">
70 Add values to the entry, just as
71 <a href="Ldap_ooclient.ldapentry.html#METHODadd"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.add</code></a>, However, after the add is
72 complete the schema checker is run in <code class="code"><span class="constructor">Optimistic</span></code> mode. see
73 <a href="Ldap_ooclient.html#TYPEscflavor"><code class="code"><span class="constructor">Ldap_ooclient</span>.scflavor</code></a><br>
74 </div>
75 <pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><div class="info">
76 Same as <a href="Ldap_ooclient.ldapentry.html#METHODadd"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.add</code></a>, except that the schema
77 checker is run in <code class="code"><span class="constructor">Pessimistic</span></code> mode after the operation is
78 complete. see <a href="Ldap_ooclient.html#TYPEscflavor"><code class="code"><span class="constructor">Ldap_ooclient</span>.scflavor</code></a><br>
79 </div>
80 <pre><span class="keyword">method</span> <a name="METHODreplace"></a>replace : <code class="type"><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> -> unit</code></pre><div class="info">
81 Same as <a href="Ldap_ooclient.ldapentry.html#METHODreplace"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.replace</code></a> except that once
82 the replace has completed the schema checker is run again in
83 <code class="code"><span class="constructor">Optimistic</span></code> mode. See <a href="Ldap_ooclient.html#TYPEscflavor"><code class="code"><span class="constructor">Ldap_ooclient</span>.scflavor</code></a><br>
84 </div>
85 <pre><span class="keyword">method</span> <a name="METHODattributes"></a>attributes : <code class="type">string list</code></pre><div class="info">
86 Same as <a href="Ldap_ooclient.ldapentry.html#METHODattributes"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.attributes</code></a>, except that the
87 returned list contains attributes which may not yet exist on
88 the entry. For example musts which are not yet present will be
89 listed.<br>
90 </div>
91 <pre><span class="keyword">method</span> <a name="METHODexists"></a>exists : <code class="type">string -> bool</code></pre><div class="info">
92 Same as <a href="Ldap_ooclient.ldapentry.html#METHODexists"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.exists</code></a> except that it
93 refrences attributes which may not yet exist. For example musts
94 which are not yet present.<br>
95 </div>
96 <pre><span class="keyword">method</span> <a name="METHODget_value"></a>get_value : <code class="type">string -> string list</code></pre><div class="info">
97 Same as <a href="Ldap_ooclient.ldapentry.html#METHODget_value"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.get_value</code></a>, except that
98 attributes which do not yet exists may be referenced. For example
99 a must which has not yet been satisfied will return <code class="code">[<span class="string">"required"</span>]</code>
100 when <code class="code">get_value</code> is called on it.<br>
101 </div>
102 <pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><div class="info">
103 Same as <a href="Ldap_ooclient.ldapentry.html#METHODmodify"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.modify</code></a> except that the
104 schema checker is run in <code class="code"><span class="constructor">Pessimistic</span></code> mode after the
105 modification is applied. see <a href="Ldap_ooclient.html#TYPEscflavor"><code class="code"><span class="constructor">Ldap_ooclient</span>.scflavor</code></a>.<br>
106 </div>
107 <pre><span class="keyword">method</span> <a name="METHODchanges"></a>changes : <code class="type">(<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><div class="info">
108 Same as <a href="Ldap_ooclient.ldapentry.html#METHODchanges"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.changes</code></a> except that changes
109 made by the schema checker may also be listed.<br>
110 </div>
111 <pre><span class="keyword">method</span> <a name="METHODchangetype"></a>changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a></code></pre><div class="info">
112 Same as <a href="Ldap_ooclient.ldapentry.html#METHODchangetype"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.changetype</code></a><br>
113 </div>
114 <pre><span class="keyword">method</span> <a name="METHODdn"></a>dn : <code class="type">string</code></pre><div class="info">
115 Same as <a href="Ldap_ooclient.ldapentry.html#METHODdn"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.dn</code></a><br>
116 </div>
117 <pre><span class="keyword">method</span> <a name="METHODflush_changes"></a>flush_changes : <code class="type">unit</code></pre><div class="info">
118 Same as <a href="Ldap_ooclient.ldapentry.html#METHODflush_changes"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.flush_changes</code></a><br>
119 </div>
120 <pre><span class="keyword">method</span> <a name="METHODdiff"></a>diff : <code class="type"><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> -><br> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list</code></pre><div class="info">
121 Same as <a href="Ldap_ooclient.ldapentry.html#METHODdiff"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.diff</code></a><br>
122 </div>
123 <pre><span class="keyword">method</span> <a name="METHODprint"></a>print : <code class="type">unit</code></pre><div class="info">
124 <span class="warning">Deprecated.</span>Same as <a href="Ldap_ooclient.ldapentry.html#METHODprint"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.print</code></a>, except
125 that it prints attributes which may not yet be present on the
126 object. For example, if the object has unsatisfied musts, it will
127 print "attrname: required" for that attribute.<br>
128 </div>
129 <pre><span class="keyword">method</span> <a name="METHODset_changetype"></a>set_changetype : <code class="type"><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a> -> unit</code></pre><div class="info">
130 Same as <a href="Ldap_ooclient.ldapentry.html#METHODset_changetype"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.set_changetype</code></a><br>
131 </div>
132 <pre><span class="keyword">method</span> <a name="METHODset_dn"></a>set_dn : <code class="type">string -> unit</code></pre><div class="info">
133 Same as <a href="Ldap_ooclient.ldapentry.html#METHODset_dn"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.set_dn</code></a><br>
134 </div>
135 </body></html>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_protocol</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_protocol</title>
2930 </head>
3031 <body>
3132 <div class="navbar"><a href="Ldap_error.html">Previous</a>
2424 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2525 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2626 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_schemaparser.Lcstring</title>
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
28 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_schemaparser.Lcstring</title>
2829 </head>
2930 <body>
3031 <div class="navbar"><a href="Ldap_schemaparser.Oid.html">Previous</a>
2424 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2525 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2626 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_schemaparser.Oid</title>
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
28 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_schemaparser.Oid</title>
2829 </head>
2930 <body>
3031 <div class="navbar">&nbsp;<a href="Ldap_schemaparser.html">Up</a>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_schemaparser</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_schemaparser</title>
2930 </head>
3031 <body>
3132 <div class="navbar"><a href="Ldap_ooclient.html">Previous</a>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_toplevel</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_toplevel</title>
2930 </head>
3031 <body>
3132 <div class="navbar"><a href="Ldif_oo.html">Previous</a>
4041 <pre><span class="keyword">val</span> <a name="VALldapsearch"></a>ldapsearch : <code class="type">?s:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?a:string list -><br> ?b:string -><br> ?d:string -> ?w:string -> h:string -> string -> <a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> list</code></pre><div class="info">
4142 connect to the specified host and perform a search.<br>
4243 </div>
43 <br><div class="info"><code class="code">s</code> : The scope of the search, default `SUBTREE</div>
44 <div class="info"><code class="code">b</code> : The base of the search
44 <div class="param_info"><code class="code">s</code> : The scope of the search, default `SUBTREE</div>
45 <div class="param_info"><code class="code">b</code> : The base of the search
4546 The final argument is the search filter</div>
46 <div class="info"><code class="code">d</code> : The dn of the object you with to bind as, default anonymous</div>
47 <div class="info"><code class="code">w</code> : The credentials of the object you wish to bind as, default anonymous</div>
48 <div class="info"><code class="code">h</code> : The ldapurl which names the host and port to connect to</div>
47 <div class="param_info"><code class="code">d</code> : The dn of the object you with to bind as, default anonymous</div>
48 <div class="param_info"><code class="code">w</code> : The credentials of the object you wish to bind as, default anonymous</div>
49 <div class="param_info"><code class="code">h</code> : The ldapurl which names the host and port to connect to</div>
4950 <pre><span class="keyword">val</span> <a name="VALldapmodify"></a>ldapmodify : <code class="type">h:string -><br> d:string -><br> w:string -><br> (string * (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list) list -><br> unit</code></pre><div class="info">
5051 connect to the specified host and perform one or more modifications.<br>
5152 </div>
52 <br><div class="info"><code class="code">h</code> : The ldapurl which names the host and port to connect to</div>
53 <div class="info"><code class="code">d</code> : The dn of the object you with to bind as, default anonymous</div>
54 <div class="info"><code class="code">w</code> : The credentials of the object you wish to bind as, default anonymous
53 <div class="param_info"><code class="code">h</code> : The ldapurl which names the host and port to connect to</div>
54 <div class="param_info"><code class="code">d</code> : The dn of the object you with to bind as, default anonymous</div>
55 <div class="param_info"><code class="code">w</code> : The credentials of the object you wish to bind as, default anonymous
5556 The final argument is a list of (dn, modification) pairs which you want to apply</div>
5657 <pre><span class="keyword">val</span> <a name="VALldapadd"></a>ldapadd : <code class="type">h:string -> d:string -> w:string -> <a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> list -> unit</code></pre><div class="info">
5758 connect to the specified host and add the specified objects.<br>
5859 </div>
59 <br><div class="info"><code class="code">h</code> : The ldapurl which names the host and port to connect to</div>
60 <div class="info"><code class="code">d</code> : The dn of the object you with to bind as, default anonymous</div>
61 <div class="info"><code class="code">w</code> : The credentials of the object you wish to bind as, default anonymous
60 <div class="param_info"><code class="code">h</code> : The ldapurl which names the host and port to connect to</div>
61 <div class="param_info"><code class="code">d</code> : The dn of the object you with to bind as, default anonymous</div>
62 <div class="param_info"><code class="code">w</code> : The credentials of the object you wish to bind as, default anonymous
6263 The final argument is a list of objects you wish to add</div>
6364 </body></html>
0 <html>
1 <head>
2 <link rel="stylesheet" href="style.css" type="text/css">
3 <link rel="Start" href="index.html">
4 <link rel="previous" href="Ldif_changerec_oo.html">
5 <link rel="Up" href="index.html">
6 <link title="Index of types" rel=Appendix href="index_types.html">
7 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
8 <link title="Index of values" rel=Appendix href="index_values.html">
9 <link title="Index of class methods" rel=Appendix href="index_methods.html">
10 <link title="Index of classes" rel=Appendix href="index_classes.html">
11 <link title="Index of class types" rel=Appendix href="index_class_types.html">
12 <link title="Index of modules" rel=Appendix href="index_modules.html">
13 <link title="Lber" rel="Chapter" href="Lber.html">
14 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
15 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
16 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
17 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
18 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
19 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
20 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
21 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
22 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
23 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
24 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
25 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
26 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
28 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_txooclient</title>
29 </head>
30 <body>
31 <div class="navbar"><a href="Ldif_changerec_oo.html">Previous</a>
32 &nbsp;<a href="index.html">Up</a>
33 &nbsp;</div>
34 <center><h1>Module <a href="type_Ldap_txooclient.html">Ldap_txooclient</a></h1></center>
35 <br>
36 <pre><span class="keyword">module</span> Ldap_txooclient: <code class="code"><span class="keyword">sig</span></code> <a href="Ldap_txooclient.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>the abstract type of a transaction<br>
37 <hr width="100%">
38 <pre><span class="keyword">type</span> <a name="TYPEtxn"></a><code class="type"></code>txn </pre>
39 <div class="info">
40 the abstract type of a transaction<br>
41 </div>
42
43 <pre><span class="keyword">exception</span> <a name="EXCEPTIONTxn_commit_failure"></a>Txn_commit_failure <span class="keyword">of</span> <code class="type">string * exn * <a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a> list option</code></pre>
44 <div class="info">
45 raised when a commit fails, contains a list of entries which were
46 not rolled back successfully only if rollback failed as well,
47 otherwise None<br>
48 </div>
49 <pre><span class="keyword">exception</span> <a name="EXCEPTIONTxn_rollback_failure"></a>Txn_rollback_failure <span class="keyword">of</span> <code class="type">string * exn</code></pre>
50 <div class="info">
51 raised when an explicit rollback fails<br>
52 </div>
53 <pre><span class="keyword">class</span> <a name="TYPEldapadvisorytxcon"></a><a href="Ldap_txooclient.ldapadvisorytxcon.html">ldapadvisorytxcon</a> : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_txooclient.ldapadvisorytxcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info">
54 A subclass of ldapcon which implements an experimental interface
55 to draft_zeilenga_ldap_txn.
56 </div>
57 </body></html>
0 <html>
1 <head>
2 <link rel="stylesheet" href="style.css" type="text/css">
3 <link rel="Start" href="index.html">
4 <link rel="Up" href="Ldap_txooclient.html">
5 <link title="Index of types" rel=Appendix href="index_types.html">
6 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
7 <link title="Index of values" rel=Appendix href="index_values.html">
8 <link title="Index of class methods" rel=Appendix href="index_methods.html">
9 <link title="Index of classes" rel=Appendix href="index_classes.html">
10 <link title="Index of class types" rel=Appendix href="index_class_types.html">
11 <link title="Index of modules" rel=Appendix href="index_modules.html">
12 <link title="Lber" rel="Chapter" href="Lber.html">
13 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
14 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
15 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
16 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
17 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
18 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
19 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
20 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
21 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
22 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
23 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
24 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
25 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
26 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
27 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_txooclient.ldapadvisorytxcon</title>
28 </head>
29 <body>
30 <div class="navbar">&nbsp;<a href="Ldap_txooclient.html">Up</a>
31 &nbsp;</div>
32 <center><h1>Class <a href="type_Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a></h1></center>
33 <br>
34 <pre><span class="keyword">class</span> <a name="TYPEldapadvisorytxcon"></a>ldapadvisorytxcon : <code class="type">?connect_timeout:int -> ?referral_policy:[> `RETURN ] -> ?version:int -> string list -> string -> string -> string -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldap_txooclient.ldapadvisorytxcon.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>A subclass of ldapcon which implements an experimental interface
35 to draft_zeilenga_ldap_txn. A draft standard for multi object
36 transactions over the ldap protocol. This class can only implement
37 advisory transactions because it must depend on the advisory
38 locking mechanisms for the transactions to be consistant. You use
39 this class by calling begin_txn to get a transaction id, and then
40 associating a set of ldapentry objects with the transaction by
41 calling associate_entry_with_txn. You are then free to modify
42 those entries in any way you like, and when you are done, you can
43 either call commit_txn, or rollback_txn. Commit will commit the
44 changes of all the entries associated with the transaction to the
45 database. For other writers which obey advisory locking the commit
46 operation is atomic. For readers which are willing to obey
47 advisory locking is atomic. If the commit fails, a full rollback
48 occurrs, including all changes made to the directory. For example
49 in a set of N entries in a transaction, if the modificiation of
50 the nth entry fails to commit, then the modifications to all the
51 previous entries, which have already been made in the directory,
52 are undone. It is important to note that if advisory locking is
53 not obeyed, rollback may not be successful. Rollback undoes all
54 the changes you've made in memory, and unlocks all the objects in
55 the transaction. After a transaction object has been commited or
56 rolled back it is considered "dead", and cannot be used again.<br>
57 <hr width="100%">
58 <pre><span class="keyword">method</span> <a name="METHODadd"></a>add : <code class="type"><a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODbind"></a>bind : <code class="type">?cred:string -> ?meth:<a href="Ldap_funclient.html#TYPEauthmethod">Ldap_funclient.authmethod</a> -> string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdelete"></a>delete : <code class="type">string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODmodify"></a>modify : <code class="type">string -> (<a href="Ldap_types.html#TYPEmodify_optype">Ldap_types.modify_optype</a> * string * string list) list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODmodrdn"></a>modrdn : <code class="type">string -> ?deleteoldrdn:bool -> ?newsup:string option -> string -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODrawschema"></a>rawschema : <code class="type"><a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a></code></pre><pre><span class="keyword">method</span> <a name="METHODschema"></a>schema : <code class="type"><a href="Ldap_schemaparser.html#TYPEschema">Ldap_schemaparser.schema</a></code></pre><pre><span class="keyword">method</span> <a name="METHODsearch"></a>search : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -> ?base:string -> string -> <a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> list</code></pre><pre><span class="keyword">method</span> <a name="METHODsearch_a"></a>search_a : <code class="type">?scope:<a href="Ldap_types.html#TYPEsearch_scope">Ldap_types.search_scope</a> -><br> ?attrs:string list -><br> ?attrsonly:bool -><br> ?base:string -> string -> ?abandon:bool -> unit -> <a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a></code></pre><pre><span class="keyword">method</span> <a name="METHODunbind"></a>unbind : <code class="type">unit</code></pre><pre><span class="keyword">method</span> <a name="METHODupdate_entry"></a>update_entry : <code class="type"><a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODbegin_txn"></a>begin_txn : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a></code></pre><pre><span class="keyword">method</span> <a name="METHODassociate_entry"></a>associate_entry : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODassociate_entries"></a>associate_entries : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a> list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdisassociate_entry"></a>disassociate_entry : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODdisassociate_entries"></a>disassociate_entries : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a> -> <a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a> list -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODcommit_txn"></a>commit_txn : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a> -> unit</code></pre><pre><span class="keyword">method</span> <a name="METHODrollback_txn"></a>rollback_txn : <code class="type"><a href="Ldap_txooclient.html#TYPEtxn">txn</a> -> unit</code></pre></body></html>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_types</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_types</title>
2930 </head>
3031 <body>
3132 <div class="navbar"><a href="Lber.html">Previous</a>
788789 }
789790
790791
792 <pre><span class="keyword">type</span> <a name="TYPEldap_grouping_type"></a><code class="type"></code>ldap_grouping_type = <code class="type">[ `LDAP_GROUP_TXN ]</code> </pre>
793 <div class="info">
794 see draft-zeilenga-ldap-grouping-xx Ldap grouping is a way of
795 telling the server that a set of ldap operations is related, its most
796 interesting application is transactions across multiple objects.
797 This draft is not yet implemented by any present day ldap server<br>
798 </div>
799
800 <pre><span class="keyword">type</span> <a name="TYPEldap_grouping_cookie"></a><code class="type"></code>ldap_grouping_cookie </pre>
801 <div class="info">
802 a cookie that is sent with every ldap operation which is part of a
803 group<br>
804 </div>
805
791806 </body></html>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_url</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_url</title>
2930 </head>
3031 <body>
3132 <div class="navbar"><a href="Ldap_protocol.html">Previous</a>
2323 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2424 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2525 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
26 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_changerec_oo.change</title>
26 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
27 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_changerec_oo.change</title>
2728 </head>
2829 <body>
2930 <div class="navbar">&nbsp;<a href="Ldif_changerec_oo.html">Up</a>
22 <link rel="stylesheet" href="style.css" type="text/css">
33 <link rel="Start" href="index.html">
44 <link rel="previous" href="Ldap_mutex.html">
5 <link rel="next" href="Ldap_txooclient.html">
56 <link rel="Up" href="index.html">
67 <link title="Index of types" rel=Appendix href="index_types.html">
78 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
2425 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2526 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2627 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
27 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_changerec_oo</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_changerec_oo</title>
2830 </head>
2931 <body>
3032 <div class="navbar"><a href="Ldap_mutex.html">Previous</a>
3133 &nbsp;<a href="index.html">Up</a>
32 &nbsp;</div>
34 &nbsp;<a href="Ldap_txooclient.html">Next</a>
35 </div>
3336 <center><h1>Module <a href="type_Ldif_changerec_oo.html">Ldif_changerec_oo</a></h1></center>
3437 <br>
3538 <pre><span class="keyword">module</span> Ldif_changerec_oo: <code class="code"><span class="keyword">sig</span></code> <a href="Ldif_changerec_oo.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>an object oriented interface to the ldif parser<br>
2525 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2626 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2727 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_oo</title>
28 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
29 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_oo</title>
2930 </head>
3031 <body>
3132 <div class="navbar"><a href="Ldap_funserver.html">Previous</a>
5051 true (defaul false) will write extended ldif. Extended ldif should
5152 be parsed using the Ldif_changerec_oo module.<br>
5253 </div>
54 <pre><span class="keyword">val</span> <a name="VALread_ldif_file"></a>read_ldif_file : <code class="type">string -> <a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> list</code></pre><div class="info">
55 read all the entries in the named ldif file and return them in a list<br>
56 </div>
57 <pre><span class="keyword">val</span> <a name="VALwrite_ldif_file"></a>write_ldif_file : <code class="type">string -> <a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a> list -> unit</code></pre><div class="info">
58 write all the entries in the given list to the named file in ldif format<br>
59 </div>
5360 <pre><span class="keyword">class</span> <a name="TYPEldif"></a><a href="Ldif_oo.ldif.html">ldif</a> : <code class="type">?in_ch:Pervasives.in_channel -> ?out_ch:Pervasives.out_channel -> unit -> </code><code class="code"><span class="keyword">object</span></code> <a href="Ldif_oo.ldif.html">..</a> <code class="code"><span class="keyword">end</span></code></pre></body></html>
2323 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2424 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2525 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
26 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_oo.ldif</title>
26 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
27 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_oo.ldif</title>
2728 </head>
2829 <body>
2930 <div class="navbar">&nbsp;<a href="Ldif_oo.html">Up</a>
2222 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2323 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2424 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title></title>
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
26 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title></title>
2627 </head>
2728 <body>
2829 <center><h1></h1></center>
9091 </div>
9192 </td></tr>
9293 <tr><td><a href="Ldap_mutex.html">Ldap_mutex</a></td><td><div class="info">
93 A library for implementing mutexes on top of LDAP's built in test
94 functions for implementing mutexes on top of LDAP's built in test
9495 and set mechanism.
9596 </div>
9697 </td></tr>
9899 an object oriented interface to the ldif parser
99100 </div>
100101 </td></tr>
102 <tr><td><a href="Ldap_txooclient.html">Ldap_txooclient</a></td><td><div class="info">
103 the abstract type of a transaction
104 </div>
105 </td></tr>
101106 </table>
102107 </body>
103108 </html>
2222 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2323 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2424 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of class attributes</title>
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
26 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of class attributes</title>
2627 </head>
2728 <body>
2829 <center><h1>Index of class attributes</h1></center>
2222 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2323 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2424 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of class types</title>
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
26 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of class types</title>
2627 </head>
2728 <body>
2829 <center><h1>Index of class types</h1></center>
2930 <table>
3031 <tr><td align="left"><br>L</td></tr>
3132 <tr><td><a href="Ldap_ooclient.ldapentry_t.html">ldapentry_t</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
32 <td></td></tr>
33 <td><div class="info">
34 The base type of an ldap entry represented in memory.
35 </div>
36 </td></tr>
3337 <tr><td align="left"><br>M</td></tr>
3438 <tr><td><a href="Ldap_mutex.mutex_t.html">mutex_t</a> [<a href="Ldap_mutex.html">Ldap_mutex</a>]</td>
35 <td></td></tr>
39 <td><div class="info">
40 the class type of a single mutex, used for performing
41 advisory locking of some action
42 </div>
43 </td></tr>
44 <tr><td align="left"><br>O</td></tr>
45 <tr><td><a href="Ldap_mutex.object_lock_table_t.html">object_lock_table_t</a> [<a href="Ldap_mutex.html">Ldap_mutex</a>]</td>
46 <td><div class="info">
47 the class type of an object lock table which allows for advisory
48 locking of objects by dn
49 </div>
50 </td></tr>
3651 </table><br>
3752 </body>
3853 </html>
2222 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2323 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2424 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of classes</title>
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
26 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of classes</title>
2627 </head>
2728 <body>
2829 <center><h1>Index of classes</h1></center>
3334 <tr><td align="left"><br>L</td></tr>
3435 <tr><td><a href="Ldap_ooclient.ldapaccount.html">ldapaccount</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
3536 <td></td></tr>
37 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html">ldapadvisorytxcon</a> [<a href="Ldap_txooclient.html">Ldap_txooclient</a>]</td>
38 <td><div class="info">
39 A subclass of ldapcon which implements an experimental interface
40 to draft_zeilenga_ldap_txn.
41 </div>
42 </td></tr>
3643 <tr><td><a href="Ldap_ooclient.ldapcon.html">ldapcon</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
37 <td></td></tr>
44 <td><div class="info">
45 This class abstracts a connection to an LDAP server (or servers),
46 an instance will be connected to the server you specify and can be
47 used to perform operations on that server.
48 </div>
49 </td></tr>
3850 <tr><td><a href="Ldap_ooclient.ldapentry.html">ldapentry</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
3951 <td><div class="info">
4052 this object represents a remote object within local memory.
4860 new mutex ldapurls binddn bindpw mutexdn
4961 </div>
5062 </td></tr>
63 <tr><td align="left"><br>O</td></tr>
64 <tr><td><a href="Ldap_mutex.object_lock_table.html">object_lock_table</a> [<a href="Ldap_mutex.html">Ldap_mutex</a>]</td>
65 <td><div class="info">
66 new object_lock_table ldapurls binddn bindpw mutexdn
67 </div>
68 </td></tr>
5169 <tr><td align="left"><br>S</td></tr>
5270 <tr><td><a href="Ldap_ooclient.scldapentry.html">scldapentry</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
5371 <td></td></tr>
2222 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2323 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2424 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of exceptions</title>
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
26 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of exceptions</title>
2627 </head>
2728 <body>
2829 <center><h1>Index of exceptions</h1></center>
2930 <table>
3031 <tr><td align="left"><br>C</td></tr>
3132 <tr><td><a href="Ldap_ooclient.html#EXCEPTIONCannot_sort_dependancies">Cannot_sort_dependancies</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
32 <td></td></tr>
33 <td><div class="info">
34 You have detached cycles in your generator dependancy lists
35 </div>
36 </td></tr>
3337 <tr><td align="left"><br>D</td></tr>
3438 <tr><td><a href="Lber.html#EXCEPTIONDecoding_error">Decoding_error</a> [<a href="Lber.html">Lber</a>]</td>
3539 <td></td></tr>
4347 </td></tr>
4448 <tr><td align="left"><br>G</td></tr>
4549 <tr><td><a href="Ldap_ooclient.html#EXCEPTIONGeneration_failed">Generation_failed</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
46 <td></td></tr>
50 <td><div class="info">
51 Generator has failed because of some kind of error
52 </div>
53 </td></tr>
4754 <tr><td><a href="Ldap_ooclient.html#EXCEPTIONGenerator_dep_unsatisfiable">Generator_dep_unsatisfiable</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
48 <td></td></tr>
55 <td><div class="info">
56 Your generator depends on an attribute which isn't in the schema
57 </div>
58 </td></tr>
4959 <tr><td align="left"><br>I</td></tr>
5060 <tr><td><a href="Ldap_ooclient.html#EXCEPTIONInvalid_attribute">Invalid_attribute</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
5161 <td></td></tr>
94104 </td></tr>
95105 <tr><td><a href="Ldap_mutex.html#EXCEPTIONLdap_mutex">Ldap_mutex</a> </td>
96106 <td><div class="info">
97 raised when a mutex operation fails.
107 functions for implementing mutexes on top of LDAP's built in test
108 and set mechanism.
98109 </div>
99110 </td></tr>
100111 <tr><td align="left"><br>N</td></tr>
101112 <tr><td><a href="Ldap_ooclient.html#EXCEPTIONNo_generator">No_generator</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
102 <td></td></tr>
113 <td><div class="info">
114 You've asked it to generate an attribute (in a service) which
115 doesn't have a generator
116 </div>
117 </td></tr>
103118 <tr><td><a href="Ldap_ooclient.html#EXCEPTIONNo_service">No_service</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
104 <td></td></tr>
119 <td><div class="info">
120 The service you're talking about doesn't exist
121 </div>
122 </td></tr>
105123 <tr><td align="left"><br>O</td></tr>
106124 <tr><td><a href="Ldap_ooclient.html#EXCEPTIONObjectclass_is_required">Objectclass_is_required</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
107125 <td></td></tr>
120138 </div>
121139 </td></tr>
122140 <tr><td><a href="Ldap_ooclient.html#EXCEPTIONService_dep_unsatisfiable">Service_dep_unsatisfiable</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
123 <td></td></tr>
141 <td><div class="info">
142 A service which the one you tried to add depends on doesn't exists
143 </div>
144 </td></tr>
124145 <tr><td><a href="Ldap_ooclient.html#EXCEPTIONSingle_value">Single_value</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
125146 <td></td></tr>
126147 <tr><td><a href="Ldap_schemaparser.html#EXCEPTIONSyntax_error_at">Syntax_error_at</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td>
127148 <td></td></tr>
128149 <tr><td><a href="Ldap_schemaparser.html#EXCEPTIONSyntax_error_oc">Syntax_error_oc</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td>
129150 <td></td></tr>
151 <tr><td align="left"><br>T</td></tr>
152 <tr><td><a href="Ldap_txooclient.html#EXCEPTIONTxn_commit_failure">Txn_commit_failure</a> [<a href="Ldap_txooclient.html">Ldap_txooclient</a>]</td>
153 <td><div class="info">
154 raised when a commit fails, contains a list of entries which were
155 not rolled back successfully only if rollback failed as well,
156 otherwise None
157 </div>
158 </td></tr>
159 <tr><td><a href="Ldap_txooclient.html#EXCEPTIONTxn_rollback_failure">Txn_rollback_failure</a> [<a href="Ldap_txooclient.html">Ldap_txooclient</a>]</td>
160 <td><div class="info">
161 raised when an explicit rollback fails
162 </div>
163 </td></tr>
130164 </table><br>
131165 </body>
132166 </html>
2222 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2323 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2424 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of class methods</title>
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
26 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of class methods</title>
2627 </head>
2728 <body>
2829 <center><h1>Index of class methods</h1></center>
2930 <table>
3031 <tr><td align="left"><br>A</td></tr>
3132 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODadapt_service">adapt_service</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
33 <td><div class="info">
34 Run service through the delta engine to find out what changes
35 would actually be applied to this object
36 </div>
37 </td></tr>
38 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODadd">add</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
3239 <td></td></tr>
3340 <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODadd">add</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td>
3441 <td></td></tr>
3542 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODadd">add</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
36 <td></td></tr>
43 <td><div class="info">
44 Missing attributes may be marked for generation.
45 </div>
46 </td></tr>
3747 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODadd">add</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
38 <td></td></tr>
48 <td><div class="info">
49 Add values to the entry, just as
50 <a href="Ldap_ooclient.ldapentry.html#METHODadd"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.add</code></a>, However, after the add is
51 complete the schema checker is run in <code class="code"><span class="constructor">Optimistic</span></code> mode.
52 </div>
53 </td></tr>
3954 <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODadd">add</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td>
40 <td></td></tr>
55 <td><div class="info">
56 add an entry to the database
57 </div>
58 </td></tr>
4159 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODadd">add</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
4260 <td><div class="info">
4361 add values to an attribute (or create a new attribute).
4462 </div>
4563 </td></tr>
4664 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODadd_generate">add_generate</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
47 <td></td></tr>
65 <td><div class="info">
66 add the named attribute to the list of attributes to be generated
67 </div>
68 </td></tr>
4869 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODadd_service">add_service</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
70 <td><div class="info">
71 add the named service to the object, this also adds all the
72 services depended upon by the named service.
73 </div>
74 </td></tr>
75 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODassociate_entries">associate_entries</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
76 <td></td></tr>
77 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODassociate_entry">associate_entry</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
4978 <td></td></tr>
5079 <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODattributes">attributes</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td>
5180 <td></td></tr>
5281 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODattributes">attributes</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
5382 <td></td></tr>
5483 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODattributes">attributes</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
55 <td></td></tr>
84 <td><div class="info">
85 Same as <a href="Ldap_ooclient.ldapentry.html#METHODattributes"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.attributes</code></a>, except that the
86 returned list contains attributes which may not yet exist on
87 the entry.
88 </div>
89 </td></tr>
5690 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODattributes">attributes</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
5791 <td><div class="info">
5892 return a list of the type (name) of all the attributes present
6094 </div>
6195 </td></tr>
6296 <tr><td align="left"><br>B</td></tr>
97 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODbegin_txn">begin_txn</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
98 <td></td></tr>
99 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODbind">bind</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
100 <td></td></tr>
63101 <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODbind">bind</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td>
64 <td></td></tr>
102 <td><div class="info">
103 bind to the database using dn.
104 </div>
105 </td></tr>
65106 <tr><td align="left"><br>C</td></tr>
66107 <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODchanges">changes</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td>
67108 <td></td></tr>
68109 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODchanges">changes</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
69110 <td></td></tr>
70111 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODchanges">changes</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
71 <td></td></tr>
112 <td><div class="info">
113 Same as <a href="Ldap_ooclient.ldapentry.html#METHODchanges"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.changes</code></a> except that changes
114 made by the schema checker may also be listed.
115 </div>
116 </td></tr>
72117 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODchanges">changes</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
73118 <td><div class="info">
74 return a list of changes made to the object in a format suitable for
75 sending directly to modify_s
119 return a list of changes made to the object in a the format of
120 a modify operation.
76121 </div>
77122 </td></tr>
78123 <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODchangetype">changetype</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td>
80125 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODchangetype">changetype</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
81126 <td></td></tr>
82127 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODchangetype">changetype</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
83 <td></td></tr>
128 <td><div class="info">
129 Same as <a href="Ldap_ooclient.ldapentry.html#METHODchangetype"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.changetype</code></a>
130 </div>
131 </td></tr>
84132 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODchangetype">changetype</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
85133 <td><div class="info">
86134 return the changetype of the object
87135 </div>
88136 </td></tr>
137 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODcommit_txn">commit_txn</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
138 <td></td></tr>
89139 <tr><td align="left"><br>D</td></tr>
140 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODdelete">delete</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
141 <td></td></tr>
90142 <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODdelete">delete</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td>
91143 <td></td></tr>
92144 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODdelete">delete</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
93145 <td></td></tr>
94146 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODdelete">delete</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
95 <td></td></tr>
147 <td><div class="info">
148 Same as <a href="Ldap_ooclient.ldapentry.html#METHODadd"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.add</code></a>, except that the schema
149 checker is run in <code class="code"><span class="constructor">Pessimistic</span></code> mode after the operation is
150 complete.
151 </div>
152 </td></tr>
96153 <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODdelete">delete</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td>
97 <td></td></tr>
154 <td><div class="info">
155 Delete the object named by dn from the database
156 </div>
157 </td></tr>
98158 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODdelete">delete</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
99159 <td><div class="info">
100160 delete attributes from the object, does not change the
102162 </div>
103163 </td></tr>
104164 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODdelete_generate">delete_generate</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
105 <td></td></tr>
165 <td><div class="info">
166 Delete the named attribute from the list of attributes to generate
167 </div>
168 </td></tr>
106169 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODdelete_service">delete_service</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
107 <td></td></tr>
170 <td><div class="info">
171 Delete the named service.
172 </div>
173 </td></tr>
108174 <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODdiff">diff</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td>
109175 <td></td></tr>
110176 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODdiff">diff</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
111177 <td></td></tr>
112178 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODdiff">diff</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
113 <td></td></tr>
179 <td><div class="info">
180 Same as <a href="Ldap_ooclient.ldapentry.html#METHODdiff"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.diff</code></a>
181 </div>
182 </td></tr>
114183 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODdiff">diff</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
115184 <td><div class="info">
116185 given an ldapentry, return the differences between the current
117 entry and the specified entry
118 </div>
119 </td></tr>
186 entry and the specified entry in the form of a modify
187 operation which would make the specified entry the same as the
188 current entry.
189 </div>
190 </td></tr>
191 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODdisassociate_entries">disassociate_entries</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
192 <td></td></tr>
193 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODdisassociate_entry">disassociate_entry</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
194 <td></td></tr>
120195 <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODdn">dn</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td>
121196 <td></td></tr>
122197 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODdn">dn</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
123198 <td></td></tr>
124199 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODdn">dn</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
125 <td></td></tr>
200 <td><div class="info">
201 Same as <a href="Ldap_ooclient.ldapentry.html#METHODdn"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.dn</code></a>
202 </div>
203 </td></tr>
126204 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODdn">dn</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
127205 <td><div class="info">
128206 return the dn of the object
134212 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODexists">exists</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
135213 <td></td></tr>
136214 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODexists">exists</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
137 <td></td></tr>
215 <td><div class="info">
216 Same as <a href="Ldap_ooclient.ldapentry.html#METHODexists"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.exists</code></a> except that it
217 refrences attributes which may not yet exist.
218 </div>
219 </td></tr>
138220 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODexists">exists</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
139221 <td><div class="info">
140222 query whether the attribute type (name) exists in the object
146228 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODflush_changes">flush_changes</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
147229 <td></td></tr>
148230 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODflush_changes">flush_changes</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
149 <td></td></tr>
231 <td><div class="info">
232 Same as <a href="Ldap_ooclient.ldapentry.html#METHODflush_changes"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.flush_changes</code></a>
233 </div>
234 </td></tr>
150235 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODflush_changes">flush_changes</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
151236 <td><div class="info">
152237 clear all accumulated changes
154239 </td></tr>
155240 <tr><td align="left"><br>G</td></tr>
156241 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODgenerate">generate</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
157 <td></td></tr>
242 <td><div class="info">
243 Run the generation functions on the list of attributes to be
244 generated, saving the results in the entry.
245 </div>
246 </td></tr>
158247 <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODget_value">get_value</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td>
159248 <td></td></tr>
160249 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODget_value">get_value</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
161 <td></td></tr>
250 <td><div class="info">
251 If a missing attribute is marked for generation its value will
252 be <code class="code"><span class="string">"generate"</span></code> instead of <code class="code"><span class="string">"required"</span></code>
253 </div>
254 </td></tr>
162255 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODget_value">get_value</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
163 <td></td></tr>
256 <td><div class="info">
257 Same as <a href="Ldap_ooclient.ldapentry.html#METHODget_value"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.get_value</code></a>, except that
258 attributes which do not yet exists may be referenced.
259 </div>
260 </td></tr>
164261 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODget_value">get_value</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
165262 <td><div class="info">
166263 get the value of an attribute
170267 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODis_allowed">is_allowed</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
171268 <td></td></tr>
172269 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODis_allowed">is_allowed</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
173 <td></td></tr>
270 <td><div class="info">
271 Returns true if the attributed specified is allowed by the
272 current set of objectclasses present on the entry.
273 </div>
274 </td></tr>
174275 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODis_missing">is_missing</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
175276 <td></td></tr>
176277 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODis_missing">is_missing</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
177 <td></td></tr>
278 <td><div class="info">
279 Returns true if the attribute specified is a must, but is not
280 currently present.
281 </div>
282 </td></tr>
178283 <tr><td align="left"><br>L</td></tr>
179284 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODlist_allowed">list_allowed</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
180285 <td></td></tr>
181286 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODlist_allowed">list_allowed</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
182 <td></td></tr>
287 <td><div class="info">
288 Return a list of all attributes allowed on the entry (by oid)
289 </div>
290 </td></tr>
183291 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODlist_missing">list_missing</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
184292 <td></td></tr>
185293 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODlist_missing">list_missing</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
186 <td></td></tr>
294 <td><div class="info">
295 Return a list of all missing attributes (by oid)
296 </div>
297 </td></tr>
187298 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODlist_present">list_present</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
188299 <td></td></tr>
189300 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODlist_present">list_present</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
301 <td><div class="info">
302 Return a list of all present attributes.
303 </div>
304 </td></tr>
305 <tr><td><a href="Ldap_mutex.object_lock_table_t.html#METHODlock">lock</a> [<a href="Ldap_mutex.object_lock_table_t.html">Ldap_mutex.object_lock_table_t</a>]</td>
190306 <td></td></tr>
191307 <tr><td><a href="Ldap_mutex.mutex_t.html#METHODlock">lock</a> [<a href="Ldap_mutex.mutex_t.html">Ldap_mutex.mutex_t</a>]</td>
192308 <td></td></tr>
309 <tr><td><a href="Ldap_mutex.object_lock_table.html#METHODlock">lock</a> [<a href="Ldap_mutex.object_lock_table.html">Ldap_mutex.object_lock_table</a>]</td>
310 <td><div class="info">
311 lock the specified dn, if it is already locked, then block until the lock can be aquired
312 </div>
313 </td></tr>
193314 <tr><td><a href="Ldap_mutex.mutex.html#METHODlock">lock</a> [<a href="Ldap_mutex.mutex.html">Ldap_mutex.mutex</a>]</td>
194315 <td><div class="info">
195316 lock the mutex.
196317 </div>
197318 </td></tr>
198319 <tr><td align="left"><br>M</td></tr>
320 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODmodify">modify</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
321 <td></td></tr>
199322 <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODmodify">modify</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td>
200323 <td></td></tr>
201324 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODmodify">modify</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
202325 <td></td></tr>
203326 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODmodify">modify</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
204 <td></td></tr>
327 <td><div class="info">
328 Same as <a href="Ldap_ooclient.ldapentry.html#METHODmodify"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.modify</code></a> except that the
329 schema checker is run in <code class="code"><span class="constructor">Pessimistic</span></code> mode after the
330 modification is applied.
331 </div>
332 </td></tr>
205333 <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODmodify">modify</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td>
206 <td></td></tr>
334 <td><div class="info">
335 Modify the entry named by dn, applying mods
336 </div>
337 </td></tr>
207338 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODmodify">modify</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
208339 <td><div class="info">
209 modify the object (same as modify_s), does not change the
210 database until you update
211 </div>
212 </td></tr>
340 Apply modifications to object in memory, does not change the
341 database until you update using
342 <a href="Ldap_ooclient.ldapcon.html#METHODupdate_entry"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapcon.update_entry</code></a>
343 </div>
344 </td></tr>
345 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODmodrdn">modrdn</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
346 <td></td></tr>
213347 <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODmodrdn">modrdn</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td>
214 <td></td></tr>
348 <td><div class="info">
349 Modify the rdn of the object named by dn, if the protocol
350 version is 3 you may additionally change the superior, the rdn
351 will be changed to the attribute represented (as a string) by
352 newrdn,
353 </div>
354 </td></tr>
215355 <tr><td align="left"><br>O</td></tr>
216356 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODof_entry">of_entry</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
217357 <td></td></tr>
218358 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODof_entry">of_entry</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
219 <td></td></tr>
359 <td><div class="info">
360 Given an <a href="Ldap_ooclient.ldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry</code></a> copy all of it's data into
361 the current object, and perform a schema check.
362 </div>
363 </td></tr>
220364 <tr><td><a href="Ldif_changerec_oo.change.html#METHODof_string">of_string</a> [<a href="Ldif_changerec_oo.change.html">Ldif_changerec_oo.change</a>]</td>
221365 <td></td></tr>
222366 <tr><td><a href="Ldif_oo.ldif.html#METHODof_string">of_string</a> [<a href="Ldif_oo.ldif.html">Ldif_oo.ldif</a>]</td>
225369 <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODprint">print</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td>
226370 <td></td></tr>
227371 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODprint">print</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
228 <td></td></tr>
372 <td><div class="info">
373 <font color="#CCCCCC"></font></div>
374 </td></tr>
229375 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODprint">print</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
230 <td></td></tr>
376 <td><div class="info">
377 <font color="#CCCCCC"></font></div>
378 </td></tr>
231379 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODprint">print</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
232380 <td><div class="info">
233 print an ldif like representation of the object to stdout, see
234 Ldif_oo for standards compliant ldif.
235 </div>
381 <font color="#CCCCCC"></font></div>
236382 </td></tr>
237383 <tr><td align="left"><br>R</td></tr>
384 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODrawschema">rawschema</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
385 <td></td></tr>
238386 <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODrawschema">rawschema</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td>
239 <td></td></tr>
387 <td><div class="info">
388 Fetch the raw (unparsed) schema from the directory using the
389 standard mechanism (requires protocol version 3)
390 </div>
391 </td></tr>
240392 <tr><td><a href="Ldif_changerec_oo.change.html#METHODread_changerec">read_changerec</a> [<a href="Ldif_changerec_oo.change.html">Ldif_changerec_oo.change</a>]</td>
241393 <td></td></tr>
242394 <tr><td><a href="Ldif_oo.ldif.html#METHODread_entry">read_entry</a> [<a href="Ldif_oo.ldif.html">Ldif_oo.ldif</a>]</td>
246398 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODreplace">replace</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
247399 <td></td></tr>
248400 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODreplace">replace</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
249 <td></td></tr>
401 <td><div class="info">
402 Same as <a href="Ldap_ooclient.ldapentry.html#METHODreplace"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.replace</code></a> except that once
403 the replace has completed the schema checker is run again in
404 <code class="code"><span class="constructor">Optimistic</span></code> mode.
405 </div>
406 </td></tr>
250407 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODreplace">replace</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
251408 <td><div class="info">
252409 replace values in the object, does not change the database
253410 until you call update
254411 </div>
255412 </td></tr>
413 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODrollback_txn">rollback_txn</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
414 <td></td></tr>
256415 <tr><td align="left"><br>S</td></tr>
416 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODschema">schema</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
417 <td></td></tr>
257418 <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODschema">schema</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td>
419 <td><div class="info">
420 Fetch and parse the schema from the directory via the standard
421 mechanism (requires version 3).
422 </div>
423 </td></tr>
424 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODsearch">search</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
258425 <td></td></tr>
259426 <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODsearch">search</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td>
427 <td><div class="info">
428 Search the directory syncronously for an entry which matches the
429 search criteria.
430 </div>
431 </td></tr>
432 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODsearch_a">search_a</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
260433 <td></td></tr>
261434 <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODsearch_a">search_a</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td>
262 <td></td></tr>
435 <td><div class="info">
436 Search the directory asyncronously, otherwise the same as
437 search.
438 </div>
439 </td></tr>
263440 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODservice_exists">service_exists</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
264 <td></td></tr>
441 <td><div class="info">
442 Tests whether the named service is satisfied by the current
443 entry.
444 </div>
445 </td></tr>
265446 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODservices_present">services_present</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
266 <td></td></tr>
447 <td><div class="info">
448 Return a list of all the named services which are satisfied by
449 the current entry.
450 </div>
451 </td></tr>
267452 <tr><td><a href="Ldap_ooclient.ldapentry_t.html#METHODset_changetype">set_changetype</a> [<a href="Ldap_ooclient.ldapentry_t.html">Ldap_ooclient.ldapentry_t</a>]</td>
268453 <td></td></tr>
269454 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODset_changetype">set_changetype</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
270455 <td></td></tr>
271456 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODset_changetype">set_changetype</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
272 <td></td></tr>
457 <td><div class="info">
458 Same as <a href="Ldap_ooclient.ldapentry.html#METHODset_changetype"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.set_changetype</code></a>
459 </div>
460 </td></tr>
273461 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODset_changetype">set_changetype</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
274462 <td><div class="info">
275463 set the changetype of the object
280468 <tr><td><a href="Ldap_ooclient.ldapaccount.html#METHODset_dn">set_dn</a> [<a href="Ldap_ooclient.ldapaccount.html">Ldap_ooclient.ldapaccount</a>]</td>
281469 <td></td></tr>
282470 <tr><td><a href="Ldap_ooclient.scldapentry.html#METHODset_dn">set_dn</a> [<a href="Ldap_ooclient.scldapentry.html">Ldap_ooclient.scldapentry</a>]</td>
283 <td></td></tr>
471 <td><div class="info">
472 Same as <a href="Ldap_ooclient.ldapentry.html#METHODset_dn"><code class="code"><span class="constructor">Ldap_ooclient</span>.ldapentry.set_dn</code></a>
473 </div>
474 </td></tr>
284475 <tr><td><a href="Ldap_ooclient.ldapentry.html#METHODset_dn">set_dn</a> [<a href="Ldap_ooclient.ldapentry.html">Ldap_ooclient.ldapentry</a>]</td>
285476 <td><div class="info">
286477 set the dn of the object
292483 <tr><td><a href="Ldif_oo.ldif.html#METHODto_string">to_string</a> [<a href="Ldif_oo.ldif.html">Ldif_oo.ldif</a>]</td>
293484 <td></td></tr>
294485 <tr><td align="left"><br>U</td></tr>
486 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODunbind">unbind</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
487 <td></td></tr>
295488 <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODunbind">unbind</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td>
489 <td><div class="info">
490 Deauthenticate and close the connection to the server
491 </div>
492 </td></tr>
493 <tr><td><a href="Ldap_mutex.object_lock_table_t.html#METHODunlock">unlock</a> [<a href="Ldap_mutex.object_lock_table_t.html">Ldap_mutex.object_lock_table_t</a>]</td>
296494 <td></td></tr>
297495 <tr><td><a href="Ldap_mutex.mutex_t.html#METHODunlock">unlock</a> [<a href="Ldap_mutex.mutex_t.html">Ldap_mutex.mutex_t</a>]</td>
298496 <td></td></tr>
497 <tr><td><a href="Ldap_mutex.object_lock_table.html#METHODunlock">unlock</a> [<a href="Ldap_mutex.object_lock_table.html">Ldap_mutex.object_lock_table</a>]</td>
498 <td></td></tr>
299499 <tr><td><a href="Ldap_mutex.mutex.html#METHODunlock">unlock</a> [<a href="Ldap_mutex.mutex.html">Ldap_mutex.mutex</a>]</td>
300500 <td></td></tr>
501 <tr><td><a href="Ldap_txooclient.ldapadvisorytxcon.html#METHODupdate_entry">update_entry</a> [<a href="Ldap_txooclient.ldapadvisorytxcon.html">Ldap_txooclient.ldapadvisorytxcon</a>]</td>
502 <td></td></tr>
301503 <tr><td><a href="Ldap_ooclient.ldapcon.html#METHODupdate_entry">update_entry</a> [<a href="Ldap_ooclient.ldapcon.html">Ldap_ooclient.ldapcon</a>]</td>
302 <td></td></tr>
504 <td><div class="info">
505 Syncronize changes made locally to an ldapentry with the
506 directory.
507 </div>
508 </td></tr>
303509 <tr><td align="left"><br>W</td></tr>
304510 <tr><td><a href="Ldif_changerec_oo.change.html#METHODwrite_changerec">write_changerec</a> [<a href="Ldif_changerec_oo.change.html">Ldif_changerec_oo.change</a>]</td>
305511 <td></td></tr>
2222 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2323 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2424 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of module types</title>
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
26 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of module types</title>
2627 </head>
2728 <body>
2829 <center><h1>Index of module types</h1></center>
2222 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2323 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2424 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of modules</title>
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
26 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of modules</title>
2627 </head>
2728 <body>
2829 <center><h1>Index of modules</h1></center>
6263 </td></tr>
6364 <tr><td><a href="Ldap_mutex.html">Ldap_mutex</a> </td>
6465 <td><div class="info">
65 A library for implementing mutexes on top of LDAP's built in test
66 functions for implementing mutexes on top of LDAP's built in test
6667 and set mechanism.
6768 </div>
6869 </td></tr>
8687 <td><div class="info">
8788 Functions which resemble the command line tools which many users
8889 are familar with, useful in the interactive environment
90 </div>
91 </td></tr>
92 <tr><td><a href="Ldap_txooclient.html">Ldap_txooclient</a> </td>
93 <td><div class="info">
94 the abstract type of a transaction
8995 </div>
9096 </td></tr>
9197 <tr><td><a href="Ldap_types.html">Ldap_types</a> </td>
112118 <tr><td><a href="Ldap_schemaparser.Oid.html">Oid</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td>
113119 <td></td></tr>
114120 <tr><td><a href="Ldap_ooclient.OrdOid.html">OrdOid</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
115 <td></td></tr>
121 <td><div class="info">
122 an ordered oid type, for placing oids in sets
123 </div>
124 </td></tr>
116125 <tr><td align="left"><br>S</td></tr>
117126 <tr><td><a href="Ldap_ooclient.Setstr.html">Setstr</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
118 <td></td></tr>
127 <td><div class="info">
128 <font color="#CCCCCC">A set of Oids
129 </font></div>
130 </td></tr>
119131 </table><br>
120132 </body>
121133 </html>
2222 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2323 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2424 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of types</title>
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
26 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of types</title>
2627 </head>
2728 <body>
2829 <center><h1>Index of types</h1></center>
5556 <td></td></tr>
5657 <tr><td><a href="Lber.html#TYPEber_val_header">ber_val_header</a> [<a href="Lber.html">Lber</a>]</td>
5758 <td></td></tr>
58 <tr><td><a href="Lber.html#TYPEberval">berval</a> [<a href="Lber.html">Lber</a>]</td>
59 <td></td></tr>
6059 <tr><td><a href="Ldap_types.html#TYPEbind_request">bind_request</a> [<a href="Ldap_types.html">Ldap_types</a>]</td>
6160 <td></td></tr>
6261 <tr><td><a href="Ldap_types.html#TYPEbind_response">bind_response</a> [<a href="Ldap_types.html">Ldap_types</a>]</td>
6362 <td></td></tr>
6463 <tr><td align="left"><br>C</td></tr>
6564 <tr><td><a href="Ldap_ooclient.html#TYPEchangerec">changerec</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
66 <td></td></tr>
65 <td><div class="info">
66 The type of an ldap change record, used by extended LDIF
67 </div>
68 </td></tr>
6769 <tr><td><a href="Ldap_ooclient.html#TYPEchangetype">changetype</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
68 <td></td></tr>
70 <td><div class="info">
71 The change type of an ldapentry.
72 </div>
73 </td></tr>
6974 <tr><td><a href="Ldap_types.html#TYPEcompare_request">compare_request</a> [<a href="Ldap_types.html">Ldap_types</a>]</td>
7075 <td></td></tr>
7176 <tr><td><a href="Ldap_types.html#TYPEcon_mech">con_mech</a> [<a href="Ldap_types.html">Ldap_types</a>]</td>
9196 <td></td></tr>
9297 <tr><td align="left"><br>G</td></tr>
9398 <tr><td><a href="Ldap_ooclient.html#TYPEgeneration_error">generation_error</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
94 <td></td></tr>
99 <td><div class="info">
100 The type of error raised by attribute generators
101 </div>
102 </td></tr>
95103 <tr><td><a href="Ldap_ooclient.html#TYPEgenerator">generator</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
96 <td></td></tr>
104 <td><div class="info">
105 The structure of a generator
106 </div>
107 </td></tr>
97108 <tr><td align="left"><br>L</td></tr>
98109 <tr><td><a href="Ldap_types.html#TYPEldap_control">ldap_control</a> [<a href="Ldap_types.html">Ldap_types</a>]</td>
99110 <td></td></tr>
105116 exception.
106117 </div>
107118 </td></tr>
119 <tr><td><a href="Ldap_types.html#TYPEldap_grouping_cookie">ldap_grouping_cookie</a> [<a href="Ldap_types.html">Ldap_types</a>]</td>
120 <td><div class="info">
121 a cookie that is sent with every ldap operation which is part of a
122 group
123 </div>
124 </td></tr>
125 <tr><td><a href="Ldap_types.html#TYPEldap_grouping_type">ldap_grouping_type</a> [<a href="Ldap_types.html">Ldap_types</a>]</td>
126 <td><div class="info">
127 see draft-zeilenga-ldap-grouping-xx Ldap grouping is a way of
128 telling the server that a set of ldap operations is related, its most
129 interesting application is transactions across multiple objects.
130 </div>
131 </td></tr>
108132 <tr><td><a href="Ldap_types.html#TYPEldap_message">ldap_message</a> [<a href="Ldap_types.html">Ldap_types</a>]</td>
109133 <td></td></tr>
110134 <tr><td><a href="Ldap_types.html#TYPEldap_result">ldap_result</a> [<a href="Ldap_types.html">Ldap_types</a>]</td>
139163 <tr><td><a href="Ldap_schemaparser.html#TYPEoctype">octype</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td>
140164 <td></td></tr>
141165 <tr><td><a href="Ldap_ooclient.html#TYPEop">op</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
142 <td></td></tr>
166 <td><div class="info">
167 the type of an operation, eg.
168 </div>
169 </td></tr>
143170 <tr><td><a href="Ldap_ooclient.html#TYPEop_lst">op_lst</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
144171 <td></td></tr>
145172 <tr><td align="left"><br>P</td></tr>
151178 <tr><td><a href="Lber.html#TYPEreadbyte_error">readbyte_error</a> [<a href="Lber.html">Lber</a>]</td>
152179 <td></td></tr>
153180 <tr><td><a href="Ldap_ooclient.html#TYPEreferral_policy">referral_policy</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
154 <td></td></tr>
181 <td><div class="info">
182 The policy the client should take when it encounteres a
183 referral.
184 </div>
185 </td></tr>
155186 <tr><td><a href="Ldap_funclient.html#TYPEresult">result</a> [<a href="Ldap_funclient.html">Ldap_funclient</a>]</td>
156187 <td></td></tr>
157188 <tr><td align="left"><br>S</td></tr>
158189 <tr><td><a href="Ldap_types.html#TYPEsaslCredentials">saslCredentials</a> [<a href="Ldap_types.html">Ldap_types</a>]</td>
159190 <td></td></tr>
160191 <tr><td><a href="Ldap_ooclient.html#TYPEscflavor">scflavor</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
161 <td></td></tr>
192 <td><div class="info">
193 The type of schema checking to perform in
194 <a href="Ldap_ooclient.scldapentry.html"><code class="code"><span class="constructor">Ldap_ooclient</span>.scldapentry</code></a>.
195 </div>
196 </td></tr>
162197 <tr><td><a href="Ldap_schemaparser.html#TYPEschema">schema</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td>
163198 <td><div class="info">
164199 The type representing the whole schema.
181216 <tr><td><a href="Ldap_funserver.html#TYPEserver_info">server_info</a> [<a href="Ldap_funserver.html">Ldap_funserver</a>]</td>
182217 <td></td></tr>
183218 <tr><td><a href="Ldap_ooclient.html#TYPEservice">service</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
184 <td></td></tr>
219 <td><div class="info">
220 The structure of a service
221 </div>
222 </td></tr>
185223 <tr><td><a href="Ldap_types.html#TYPEsubstring_component">substring_component</a> [<a href="Ldap_types.html">Ldap_types</a>]</td>
186224 <td></td></tr>
187225 <tr><td><a href="Ldap_types.html#TYPEsubstring_filter">substring_filter</a> [<a href="Ldap_types.html">Ldap_types</a>]</td>
195233 <td></td></tr>
196234 <tr><td><a href="Ldap_ooclient.OrdOid.html#TYPEt">t</a> [<a href="Ldap_ooclient.OrdOid.html">Ldap_ooclient.OrdOid</a>]</td>
197235 <td></td></tr>
236 <tr><td><a href="Ldap_txooclient.html#TYPEtxn">txn</a> [<a href="Ldap_txooclient.html">Ldap_txooclient</a>]</td>
237 <td><div class="info">
238 the abstract type of a transaction
239 </div>
240 </td></tr>
198241 <tr><td align="left"><br>W</td></tr>
199242 <tr><td><a href="Lber.html#TYPEwritebyte">writebyte</a> [<a href="Lber.html">Lber</a>]</td>
200243 <td></td></tr>
2222 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2323 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2424 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Index of values</title>
25 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
26 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Index of values</title>
2627 </head>
2728 <body>
2829 <center><h1>Index of values</h1></center>
4041 add entry to the directory
4142 </div>
4243 </td></tr>
44 <tr><td><a href="Ldap_mutex.html#VALapply_with_mutex">apply_with_mutex</a> [<a href="Ldap_mutex.html">Ldap_mutex</a>]</td>
45 <td><div class="info">
46 used to apply some function, first locking the mutex, unlocking it
47 only after the function has been applied.
48 </div>
49 </td></tr>
4350 <tr><td><a href="Ldap_ooclient.html#VALattrToOid">attrToOid</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
4451 <td><div class="info">
45 given a name of an attribute, return its oid
52 given a name of an attribute name (canonical or otherwise), return
53 its oid
4654 </div>
4755 </td></tr>
4856 <tr><td align="left"><br>B</td></tr>
5260 </div>
5361 </td></tr>
5462 <tr><td align="left"><br>C</td></tr>
63 <tr><td><a href="Ldap_dn.html#VALcanonical_dn">canonical_dn</a> [<a href="Ldap_dn.html">Ldap_dn</a>]</td>
64 <td><div class="info">
65 returns the canonical dn.
66 </div>
67 </td></tr>
5568 <tr><td><a href="Ldap_ooclient.Setstr.html#VALcardinal">cardinal</a> [<a href="Ldap_ooclient.Setstr.html">Ldap_ooclient.Setstr</a>]</td>
5669 <td></td></tr>
5770 <tr><td><a href="Ldap_ooclient.Setstr.html#VALchoose">choose</a> [<a href="Ldap_ooclient.Setstr.html">Ldap_ooclient.Setstr</a>]</td>
214227 <tr><td><a href="Ldap_ooclient.Setstr.html#VALfor_all">for_all</a> [<a href="Ldap_ooclient.Setstr.html">Ldap_ooclient.Setstr</a>]</td>
215228 <td></td></tr>
216229 <tr><td><a href="Ldap_ooclient.html#VALformat_entries">format_entries</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
217 <td></td></tr>
230 <td><div class="info">
231 format lists of entries, in this case only print the dn
232 </div>
233 </td></tr>
218234 <tr><td><a href="Ldap_ooclient.html#VALformat_entry">format_entry</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
219 <td></td></tr>
235 <td><div class="info">
236 toplevel formatter for ldapentry, prints the whole entry with a
237 nice structure.
238 </div>
239 </td></tr>
220240 <tr><td><a href="Ldap_schemaparser.html#VALformat_lcstring">format_lcstring</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td>
221241 <td></td></tr>
222242 <tr><td><a href="Ldap_schemaparser.html#VALformat_oid">format_oid</a> [<a href="Ldap_schemaparser.html">Ldap_schemaparser</a>]</td>
230250 <tr><td align="left"><br>G</td></tr>
231251 <tr><td><a href="Ldap_ooclient.html#VALgetAttr">getAttr</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
232252 <td><div class="info">
233 get an attr structure by one of its names
253 get an attr structure by one of its names (canonical or otherwise,
254 however getting it by canonical name is currently much faster)
234255 </div>
235256 </td></tr>
236257 <tr><td><a href="Ldap_ooclient.html#VALgetOc">getOc</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
237258 <td><div class="info">
238 get an objectclass structure by one of its names
259 get an objectclass structure by one of its names (canonical or
260 otherwise, however getting it by canonical name is currently much
261 faster)
239262 </div>
240263 </td></tr>
241264 <tr><td><a href="Ldap_funclient.html#VALget_search_entry">get_search_entry</a> [<a href="Ldap_funclient.html">Ldap_funclient</a>]</td>
278301 <tr><td><a href="Ldap_ooclient.html#VALiter">iter</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
279302 <td><div class="info">
280303 given a source of ldapentry objects (unit -&gt; ldapentry), such as
281 the return value of ldapcon#search_a apply f (first arg) to each entry
304 the return value of ldapcon#search_a, apply f (first arg) to each entry
282305 See List.iter
283306 </div>
284307 </td></tr>
333356 <tr><td align="left"><br>O</td></tr>
334357 <tr><td><a href="Ldap_ooclient.html#VALocToOid">ocToOid</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
335358 <td><div class="info">
336 given a name of an objectclass, return its oid
359 given a name of an objectclass (canonical or otherwise), return
360 its oid.
337361 </div>
338362 </td></tr>
339363 <tr><td><a href="Ldap_ooclient.html#VALof_entry">of_entry</a> [<a href="Ldap_ooclient.html">Ldap_ooclient</a>]</td>
390414 reads the contents octets
391415 </div>
392416 </td></tr>
417 <tr><td><a href="Ldif_oo.html#VALread_ldif_file">read_ldif_file</a> [<a href="Ldif_oo.html">Ldif_oo</a>]</td>
418 <td><div class="info">
419 read all the entries in the named ldif file and return them in a list
420 </div>
421 </td></tr>
393422 <tr><td><a href="Lber.html#VALreadbyte_of_ber_element">readbyte_of_ber_element</a> [<a href="Lber.html">Lber</a>]</td>
394423 <td><div class="info">
395424 return a readbyte implementation which uses another readbyte, but
408437 </td></tr>
409438 <tr><td><a href="Lber.html#VALreadbyte_of_string">readbyte_of_string</a> [<a href="Lber.html">Lber</a>]</td>
410439 <td><div class="info">
411 return a readbyte function for a string
440 return a readbyte function for a string, currently not implemented
412441 </div>
413442 </td></tr>
414443 <tr><td><a href="Ldap_ooclient.Setstr.html#VALremove">remove</a> [<a href="Ldap_ooclient.Setstr.html">Ldap_ooclient.Setstr</a>]</td>
487516 </td></tr>
488517 <tr><td><a href="Ldap_ooclient.Setstr.html#VALunion">union</a> [<a href="Ldap_ooclient.Setstr.html">Ldap_ooclient.Setstr</a>]</td>
489518 <td></td></tr>
519 <tr><td align="left"><br>W</td></tr>
520 <tr><td><a href="Ldif_oo.html#VALwrite_ldif_file">write_ldif_file</a> [<a href="Ldif_oo.html">Ldif_oo</a>]</td>
521 <td><div class="info">
522 write all the entries in the given list to the named file in ldif format
523 </div>
524 </td></tr>
490525 </table><br>
491526 </body>
492527 </html>
1111 .string { color : Maroon }
1212 .warning { color : Red ; font-weight : bold }
1313 .info { margin-left : 3em; margin-right : 3em }
14 .param_info { margin-top: 4px; margin-left : 3em; margin-right : 3em }
1415 .code { color : #465F91 ; }
1516 h1 { font-size : 20pt ; text-align: center; }
1617 h2 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #90BDFF ;padding: 2px; }
2627 .paramstable { border-style : hidden ; padding: 5pt 5pt}
2728 body { background-color : White }
2829 tr { background-color : White }
29 td.typefieldcomment { background-color : #FFFFFF }
30 td.typefieldcomment { background-color : #FFFFFF ; font-size: smaller ;}
3031 pre { margin-bottom: 4px }
3132 div.sig_block {margin-left: 2em}
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Lber</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Lber</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2829 &nbsp;&nbsp;<span class="keyword">exception</span>&nbsp;<span class="constructor">Decoding_error</span>&nbsp;<span class="keyword">of</span>&nbsp;string<br>
2930 &nbsp;&nbsp;<span class="keyword">exception</span>&nbsp;<span class="constructor">Encoding_error</span>&nbsp;<span class="keyword">of</span>&nbsp;string<br>
30 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;readbyte_error&nbsp;=&nbsp;<span class="constructor">End_of_stream</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Transport_error</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Not_implemented</span><br>
31 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;readbyte_error&nbsp;=<br>
32 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">End_of_stream</span><br>
33 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Transport_error</span><br>
34 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Peek_error</span><br>
35 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Request_too_large</span><br>
36 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Not_implemented</span><br>
3137 &nbsp;&nbsp;<span class="keyword">exception</span>&nbsp;<span class="constructor">Readbyte_error</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">Lber</span>.readbyte_error<br>
32 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;readbyte&nbsp;=&nbsp;?peek:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;char<br>
38 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;readbyte&nbsp;=&nbsp;?peek:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string<br>
3339 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;writebyte&nbsp;=&nbsp;char&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
3440 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;ber_class&nbsp;=&nbsp;<span class="constructor">Universal</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Application</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Context_specific</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Private</span><br>
3541 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;ber_length&nbsp;=&nbsp;<span class="constructor">Definite</span>&nbsp;<span class="keyword">of</span>&nbsp;int&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Indefinite</span><br>
3945 &nbsp;&nbsp;&nbsp;&nbsp;ber_tag&nbsp;:&nbsp;int;<br>
4046 &nbsp;&nbsp;&nbsp;&nbsp;ber_length&nbsp;:&nbsp;<span class="constructor">Lber</span>.ber_length;<br>
4147 &nbsp;&nbsp;}<br>
42 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;berval&nbsp;=<br>
43 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Boolean</span>&nbsp;<span class="keyword">of</span>&nbsp;bool<br>
44 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Int</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">Int32</span>.t<br>
45 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Bitstring</span>&nbsp;<span class="keyword">of</span>&nbsp;string<br>
46 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Octetstring</span>&nbsp;<span class="keyword">of</span>&nbsp;string<br>
47 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Null</span><br>
48 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Oid</span>&nbsp;<span class="keyword">of</span>&nbsp;string<br>
49 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Odt</span>&nbsp;<span class="keyword">of</span>&nbsp;string<br>
50 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Real</span>&nbsp;<span class="keyword">of</span>&nbsp;float<br>
51 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Enum</span>&nbsp;<span class="keyword">of</span>&nbsp;int32<br>
52 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Utf8string</span>&nbsp;<span class="keyword">of</span>&nbsp;string<br>
53 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">RelativeOid</span>&nbsp;<span class="keyword">of</span>&nbsp;string<br>
54 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Sequence</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">Lber</span>.berval&nbsp;list<br>
55 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Set</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">Lber</span>.berval&nbsp;list<br>
56 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Charstring</span>&nbsp;<span class="keyword">of</span>&nbsp;string<br>
57 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">Time</span>&nbsp;<span class="keyword">of</span>&nbsp;string<br>
5848 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;readbyte_of_string&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Lber</span>.readbyte<br>
5949 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;readbyte_of_ber_element&nbsp;:<br>
6050 &nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Lber</span>.ber_length&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Lber</span>.readbyte&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Lber</span>.readbyte<br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_dn</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_dn</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2930 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;of_string&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_types</span>.dn<br>
3031 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;to_string&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.dn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string<br>
3132 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;escape_value&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string<br>
33 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;canonical_dn&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string<br>
3234 <span class="keyword">end</span></code></body></html>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_error</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_error</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_filter</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_filter</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_funclient</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_funclient</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_funserver</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_funserver</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_mutex</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2829 &nbsp;&nbsp;<span class="keyword">exception</span>&nbsp;<span class="constructor">Ldap_mutex</span>&nbsp;<span class="keyword">of</span>&nbsp;string&nbsp;*&nbsp;exn<br>
2930 &nbsp;&nbsp;<span class="keyword">class</span>&nbsp;<span class="keyword">type</span>&nbsp;mutex_t&nbsp;=&nbsp;<span class="keyword">object</span>&nbsp;<span class="keyword">method</span>&nbsp;lock&nbsp;:&nbsp;unit&nbsp;<span class="keyword">method</span>&nbsp;unlock&nbsp;:&nbsp;unit&nbsp;<span class="keyword">end</span><br>
31 &nbsp;&nbsp;<span class="keyword">class</span>&nbsp;<span class="keyword">type</span>&nbsp;object_lock_table_t&nbsp;=<br>
32 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">object</span><br>
33 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;lock&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.dn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
34 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;unlock&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.dn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
35 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
3036 &nbsp;&nbsp;<span class="keyword">class</span>&nbsp;mutex&nbsp;:<br>
3137 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
3238 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span><br>
3339 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keyword">object</span>&nbsp;<span class="keyword">method</span>&nbsp;lock&nbsp;:&nbsp;unit&nbsp;<span class="keyword">method</span>&nbsp;unlock&nbsp;:&nbsp;unit&nbsp;<span class="keyword">end</span><br>
40 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;apply_with_mutex&nbsp;:&nbsp;<span class="constructor">Ldap_mutex</span>.mutex&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;(unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a)&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a<br>
41 &nbsp;&nbsp;<span class="keyword">class</span>&nbsp;object_lock_table&nbsp;:<br>
42 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
43 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span><br>
44 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span><br>
45 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span><br>
46 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">object</span><br>
47 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;lock&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.dn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
48 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;unlock&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.dn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
49 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
3450 <span class="keyword">end</span></code></body></html>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_mutex.mutex</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.mutex</title>
2526 </head>
2627 <body>
2728 <code class="code">string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_mutex.mutex_t</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.mutex_t</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">object</span>&nbsp;<span class="keyword">method</span>&nbsp;lock&nbsp;:&nbsp;unit&nbsp;<span class="keyword">method</span>&nbsp;unlock&nbsp;:&nbsp;unit&nbsp;<span class="keyword">end</span></code></body></html>
0 <html><head>
1 <link rel="stylesheet" href="style.css" type="text/css">
2 <link rel="Start" href="index.html">
3 <link title="Index of types" rel=Appendix href="index_types.html">
4 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
5 <link title="Index of values" rel=Appendix href="index_values.html">
6 <link title="Index of class methods" rel=Appendix href="index_methods.html">
7 <link title="Index of classes" rel=Appendix href="index_classes.html">
8 <link title="Index of class types" rel=Appendix href="index_class_types.html">
9 <link title="Index of modules" rel=Appendix href="index_modules.html">
10 <link title="Lber" rel="Chapter" href="Lber.html">
11 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
12 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
13 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
14 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
15 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
16 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
17 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
18 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
19 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
20 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
21 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
22 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
23 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.object_lock_table</title>
26 </head>
27 <body>
28 <code class="code">string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
29 string&nbsp;<span class="keywordsign">-&gt;</span><br>
30 string&nbsp;<span class="keywordsign">-&gt;</span><br>
31 string&nbsp;<span class="keywordsign">-&gt;</span><br>
32 <span class="keyword">object</span><br>
33 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;lock&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.dn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
34 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;unlock&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.dn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
35 <span class="keyword">end</span></code></body></html>
0 <html><head>
1 <link rel="stylesheet" href="style.css" type="text/css">
2 <link rel="Start" href="index.html">
3 <link title="Index of types" rel=Appendix href="index_types.html">
4 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
5 <link title="Index of values" rel=Appendix href="index_values.html">
6 <link title="Index of class methods" rel=Appendix href="index_methods.html">
7 <link title="Index of classes" rel=Appendix href="index_classes.html">
8 <link title="Index of class types" rel=Appendix href="index_class_types.html">
9 <link title="Index of modules" rel=Appendix href="index_modules.html">
10 <link title="Lber" rel="Chapter" href="Lber.html">
11 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
12 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
13 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
14 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
15 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
16 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
17 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
18 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
19 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
20 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
21 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
22 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
23 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_mutex.object_lock_table_t</title>
26 </head>
27 <body>
28 <code class="code"><span class="keyword">object</span><br>
29 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;lock&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.dn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
30 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;unlock&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.dn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
31 <span class="keyword">end</span></code></body></html>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.OrdOid</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.OrdOid</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.Setstr</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.Setstr</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
5051 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;set_changetype&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.changetype&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
5152 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;set_dn&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
5253 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
53 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;format_entry&nbsp;:<br>
54 &nbsp;&nbsp;&nbsp;&nbsp;&lt;&nbsp;attributes&nbsp;:&nbsp;string&nbsp;list;&nbsp;dn&nbsp;:&nbsp;string;<br>
55 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_value&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;list;&nbsp;..&nbsp;&gt;&nbsp;<span class="keywordsign">-&gt;</span><br>
56 &nbsp;&nbsp;&nbsp;&nbsp;unit<br>
57 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;format_entries&nbsp;:<br>
58 &nbsp;&nbsp;&nbsp;&nbsp;&lt;&nbsp;attributes&nbsp;:&nbsp;string&nbsp;list;&nbsp;dn&nbsp;:&nbsp;string;<br>
59 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_value&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;list;&nbsp;..&nbsp;&gt;<br>
60 &nbsp;&nbsp;&nbsp;&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
6154 &nbsp;&nbsp;<span class="keyword">class</span>&nbsp;ldapentry&nbsp;:<br>
6255 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">object</span><br>
6356 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;add&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.op_lst&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
7972 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;set_changetype&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.changetype&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
8073 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;set_dn&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
8174 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
75 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;format_entry&nbsp;:<br>
76 &nbsp;&nbsp;&nbsp;&nbsp;&lt;&nbsp;attributes&nbsp;:&nbsp;string&nbsp;list;&nbsp;dn&nbsp;:&nbsp;string;<br>
77 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_value&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;list;&nbsp;..&nbsp;&gt;&nbsp;<span class="keywordsign">-&gt;</span><br>
78 &nbsp;&nbsp;&nbsp;&nbsp;unit<br>
79 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;format_entries&nbsp;:<br>
80 &nbsp;&nbsp;&nbsp;&nbsp;&lt;&nbsp;attributes&nbsp;:&nbsp;string&nbsp;list;&nbsp;dn&nbsp;:&nbsp;string;<br>
81 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_value&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;list;&nbsp;..&nbsp;&gt;<br>
82 &nbsp;&nbsp;&nbsp;&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
8283 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;changerec&nbsp;=<br>
8384 &nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Addition</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry<br>
8485 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Delete</span>&nbsp;<span class="keyword">of</span>&nbsp;string<br>
8990 &nbsp;&nbsp;&nbsp;&nbsp;[&lt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Entry</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">Ldap_types</span>.search_result_entry&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Referral</span>&nbsp;<span class="keyword">of</span>&nbsp;string&nbsp;list&nbsp;]&nbsp;<span class="keywordsign">-&gt;</span><br>
9091 &nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry<br>
9192 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;of_entry&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_types</span>.search_result_entry<br>
92 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;iter&nbsp;:<br>
93 &nbsp;&nbsp;&nbsp;&nbsp;(<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit)&nbsp;<span class="keywordsign">-&gt;</span><br>
94 &nbsp;&nbsp;&nbsp;&nbsp;(?abandon:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry)&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
95 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;rev_map&nbsp;:<br>
96 &nbsp;&nbsp;&nbsp;&nbsp;(<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a)&nbsp;<span class="keywordsign">-&gt;</span><br>
97 &nbsp;&nbsp;&nbsp;&nbsp;(?abandon:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry)&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a&nbsp;list<br>
98 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;map&nbsp;:<br>
99 &nbsp;&nbsp;&nbsp;&nbsp;(<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a)&nbsp;<span class="keywordsign">-&gt;</span><br>
100 &nbsp;&nbsp;&nbsp;&nbsp;(?abandon:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry)&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a&nbsp;list<br>
101 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;fold&nbsp;:<br>
102 &nbsp;&nbsp;&nbsp;&nbsp;(<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a)&nbsp;<span class="keywordsign">-&gt;</span><br>
103 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">'</span>a&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;(?abandon:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry)&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a<br>
10493 &nbsp;&nbsp;<span class="keyword">class</span>&nbsp;ldapcon&nbsp;:<br>
10594 &nbsp;&nbsp;&nbsp;&nbsp;?connect_timeout:int&nbsp;<span class="keywordsign">-&gt;</span><br>
10695 &nbsp;&nbsp;&nbsp;&nbsp;?referral_policy:[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">RETURN</span>&nbsp;]&nbsp;<span class="keywordsign">-&gt;</span><br>
114103 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;modify&nbsp;:<br>
115104 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span><br>
116105 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="constructor">Ldap_types</span>.modify_optype&nbsp;*&nbsp;string&nbsp;*&nbsp;string&nbsp;list)&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
117 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;modrdn&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?deleteoldrdn:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
106 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;modrdn&nbsp;:<br>
107 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span><br>
108 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?deleteoldrdn:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?newsup:string&nbsp;option&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
118109 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;rawschema&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry<br>
119110 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;schema&nbsp;:&nbsp;<span class="constructor">Ldap_schemaparser</span>.schema<br>
120111 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;search&nbsp;:<br>
131122 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;unbind&nbsp;:&nbsp;unit<br>
132123 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;update_entry&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
133124 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
125 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;iter&nbsp;:<br>
126 &nbsp;&nbsp;&nbsp;&nbsp;(<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit)&nbsp;<span class="keywordsign">-&gt;</span><br>
127 &nbsp;&nbsp;&nbsp;&nbsp;(?abandon:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry)&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
128 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;rev_map&nbsp;:<br>
129 &nbsp;&nbsp;&nbsp;&nbsp;(<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a)&nbsp;<span class="keywordsign">-&gt;</span><br>
130 &nbsp;&nbsp;&nbsp;&nbsp;(?abandon:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry)&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a&nbsp;list<br>
131 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;map&nbsp;:<br>
132 &nbsp;&nbsp;&nbsp;&nbsp;(<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a)&nbsp;<span class="keywordsign">-&gt;</span><br>
133 &nbsp;&nbsp;&nbsp;&nbsp;(?abandon:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry)&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a&nbsp;list<br>
134 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;fold&nbsp;:<br>
135 &nbsp;&nbsp;&nbsp;&nbsp;(<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a)&nbsp;<span class="keywordsign">-&gt;</span><br>
136 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">'</span>a&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;(?abandon:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry)&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a<br>
134137 &nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">OrdOid</span>&nbsp;:<br>
135138 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
136139 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;t&nbsp;=&nbsp;<span class="constructor">Ldap_schemaparser</span>.<span class="constructor">Oid</span>.t<br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapaccount</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.ldapaccount</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="constructor">Ldap_schemaparser</span>.schema&nbsp;<span class="keywordsign">-&gt;</span><br>
0 <html><head>
1 <link rel="stylesheet" href="style.css" type="text/css">
2 <link rel="Start" href="index.html">
3 <link title="Index of types" rel=Appendix href="index_types.html">
4 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
5 <link title="Index of values" rel=Appendix href="index_values.html">
6 <link title="Index of class methods" rel=Appendix href="index_methods.html">
7 <link title="Index of classes" rel=Appendix href="index_classes.html">
8 <link title="Index of class types" rel=Appendix href="index_class_types.html">
9 <link title="Index of modules" rel=Appendix href="index_modules.html">
10 <link title="Lber" rel="Chapter" href="Lber.html">
11 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
12 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
13 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
14 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
15 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
16 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
17 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
18 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
19 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
20 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
21 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
22 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
23 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapadvisorytxcon</title>
25 </head>
26 <body>
27 <code class="code">?connect_timeout:int&nbsp;<span class="keywordsign">-&gt;</span><br>
28 ?referral_policy:[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">RETURN</span>&nbsp;]&nbsp;<span class="keywordsign">-&gt;</span><br>
29 ?version:int&nbsp;<span class="keywordsign">-&gt;</span><br>
30 string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
31 string&nbsp;<span class="keywordsign">-&gt;</span><br>
32 string&nbsp;<span class="keywordsign">-&gt;</span><br>
33 string&nbsp;<span class="keywordsign">-&gt;</span><br>
34 <span class="keyword">object</span><br>
35 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;add&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
36 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;associate_entries&nbsp;:<br>
37 &nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_ooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry_t&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
38 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;associate_entry&nbsp;:<br>
39 &nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_ooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry_t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
40 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;begin_txn&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.txn<br>
41 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;bind&nbsp;:<br>
42 &nbsp;&nbsp;&nbsp;&nbsp;?cred:string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?meth:<span class="constructor">Ldap_funclient</span>.authmethod&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
43 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;commit_txn&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
44 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;delete&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
45 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;disassociate_entries&nbsp;:<br>
46 &nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_ooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry_t&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
47 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;disassociate_entry&nbsp;:<br>
48 &nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_ooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry_t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
49 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;modify&nbsp;:<br>
50 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;(<span class="constructor">Ldap_types</span>.modify_optype&nbsp;*&nbsp;string&nbsp;*&nbsp;string&nbsp;list)&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
51 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;modrdn&nbsp;:<br>
52 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?deleteoldrdn:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?newsup:string&nbsp;option&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
53 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;rawschema&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry<br>
54 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;rollback_txn&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
55 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;schema&nbsp;:&nbsp;<span class="constructor">Ldap_schemaparser</span>.schema<br>
56 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;search&nbsp;:<br>
57 &nbsp;&nbsp;&nbsp;&nbsp;?scope:<span class="constructor">Ldap_types</span>.search_scope&nbsp;<span class="keywordsign">-&gt;</span><br>
58 &nbsp;&nbsp;&nbsp;&nbsp;?attrs:string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
59 &nbsp;&nbsp;&nbsp;&nbsp;?attrsonly:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?base:string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;list<br>
60 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;search_a&nbsp;:<br>
61 &nbsp;&nbsp;&nbsp;&nbsp;?scope:<span class="constructor">Ldap_types</span>.search_scope&nbsp;<span class="keywordsign">-&gt;</span><br>
62 &nbsp;&nbsp;&nbsp;&nbsp;?attrs:string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
63 &nbsp;&nbsp;&nbsp;&nbsp;?attrsonly:bool&nbsp;<span class="keywordsign">-&gt;</span><br>
64 &nbsp;&nbsp;&nbsp;&nbsp;?base:string&nbsp;<span class="keywordsign">-&gt;</span><br>
65 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?abandon:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry<br>
66 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;unbind&nbsp;:&nbsp;unit<br>
67 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;update_entry&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
68 <span class="keyword">end</span></code></body></html>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapcon</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.ldapcon</title>
2526 </head>
2627 <body>
2728 <code class="code">?connect_timeout:int&nbsp;<span class="keywordsign">-&gt;</span><br>
3536 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;delete&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
3637 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;modify&nbsp;:<br>
3738 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;(<span class="constructor">Ldap_types</span>.modify_optype&nbsp;*&nbsp;string&nbsp;*&nbsp;string&nbsp;list)&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
38 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;modrdn&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?deleteoldrdn:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
39 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;modrdn&nbsp;:<br>
40 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?deleteoldrdn:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?newsup:string&nbsp;option&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
3941 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;rawschema&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry<br>
4042 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;schema&nbsp;:&nbsp;<span class="constructor">Ldap_schemaparser</span>.schema<br>
4143 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;search&nbsp;:<br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapentry</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.ldapentry</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">object</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.ldapentry_t</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.ldapentry_t</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">object</span><br>
0 <html><head>
1 <link rel="stylesheet" href="style.css" type="text/css">
2 <link rel="Start" href="index.html">
3 <link title="Index of types" rel=Appendix href="index_types.html">
4 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
5 <link title="Index of values" rel=Appendix href="index_values.html">
6 <link title="Index of class methods" rel=Appendix href="index_methods.html">
7 <link title="Index of classes" rel=Appendix href="index_classes.html">
8 <link title="Index of class types" rel=Appendix href="index_class_types.html">
9 <link title="Index of modules" rel=Appendix href="index_modules.html">
10 <link title="Lber" rel="Chapter" href="Lber.html">
11 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
12 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
13 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
14 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
15 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
16 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
17 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
18 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
19 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
20 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
21 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
22 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
23 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.mutex</title>
25 </head>
26 <body>
27 <code class="code">string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
28 string&nbsp;<span class="keywordsign">-&gt;</span><br>
29 string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keyword">object</span>&nbsp;<span class="keyword">method</span>&nbsp;lock&nbsp;:&nbsp;unit&nbsp;<span class="keyword">method</span>&nbsp;unlock&nbsp;:&nbsp;unit&nbsp;<span class="keyword">end</span></code></body></html>
0 <html><head>
1 <link rel="stylesheet" href="style.css" type="text/css">
2 <link rel="Start" href="index.html">
3 <link title="Index of types" rel=Appendix href="index_types.html">
4 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
5 <link title="Index of values" rel=Appendix href="index_values.html">
6 <link title="Index of class methods" rel=Appendix href="index_methods.html">
7 <link title="Index of classes" rel=Appendix href="index_classes.html">
8 <link title="Index of class types" rel=Appendix href="index_class_types.html">
9 <link title="Index of modules" rel=Appendix href="index_modules.html">
10 <link title="Lber" rel="Chapter" href="Lber.html">
11 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
12 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
13 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
14 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
15 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
16 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
17 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
18 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
19 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
20 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
21 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
22 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
23 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.mutex_t</title>
25 </head>
26 <body>
27 <code class="code"><span class="keyword">object</span>&nbsp;<span class="keyword">method</span>&nbsp;lock&nbsp;:&nbsp;unit&nbsp;<span class="keyword">method</span>&nbsp;unlock&nbsp;:&nbsp;unit&nbsp;<span class="keyword">end</span></code></body></html>
0 <html><head>
1 <link rel="stylesheet" href="style.css" type="text/css">
2 <link rel="Start" href="index.html">
3 <link title="Index of types" rel=Appendix href="index_types.html">
4 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
5 <link title="Index of values" rel=Appendix href="index_values.html">
6 <link title="Index of class methods" rel=Appendix href="index_methods.html">
7 <link title="Index of classes" rel=Appendix href="index_classes.html">
8 <link title="Index of class types" rel=Appendix href="index_class_types.html">
9 <link title="Index of modules" rel=Appendix href="index_modules.html">
10 <link title="Lber" rel="Chapter" href="Lber.html">
11 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
12 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
13 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
14 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
15 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
16 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
17 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
18 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
19 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
20 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
21 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
22 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
23 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.object_lock_table</title>
25 </head>
26 <body>
27 <code class="code">string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
28 string&nbsp;<span class="keywordsign">-&gt;</span><br>
29 string&nbsp;<span class="keywordsign">-&gt;</span><br>
30 string&nbsp;<span class="keywordsign">-&gt;</span><br>
31 <span class="keyword">object</span><br>
32 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;lock&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.dn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
33 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;unlock&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.dn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
34 <span class="keyword">end</span></code></body></html>
0 <html><head>
1 <link rel="stylesheet" href="style.css" type="text/css">
2 <link rel="Start" href="index.html">
3 <link title="Index of types" rel=Appendix href="index_types.html">
4 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
5 <link title="Index of values" rel=Appendix href="index_values.html">
6 <link title="Index of class methods" rel=Appendix href="index_methods.html">
7 <link title="Index of classes" rel=Appendix href="index_classes.html">
8 <link title="Index of class types" rel=Appendix href="index_class_types.html">
9 <link title="Index of modules" rel=Appendix href="index_modules.html">
10 <link title="Lber" rel="Chapter" href="Lber.html">
11 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
12 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
13 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
14 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
15 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
16 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
17 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
18 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
19 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
20 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
21 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
22 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
23 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.object_lock_table_t</title>
25 </head>
26 <body>
27 <code class="code"><span class="keyword">object</span><br>
28 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;lock&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.dn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
29 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;unlock&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.dn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
30 <span class="keyword">end</span></code></body></html>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_ooclient.scldapentry</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_ooclient.scldapentry</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="constructor">Ldap_schemaparser</span>.schema&nbsp;<span class="keywordsign">-&gt;</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_protocol</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_protocol</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_schemaparser.Lcstring</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_schemaparser.Lcstring</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_schemaparser.Oid</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_schemaparser.Oid</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_schemaparser</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_schemaparser</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_toplevel</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_toplevel</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
0 <html><head>
1 <link rel="stylesheet" href="style.css" type="text/css">
2 <link rel="Start" href="index.html">
3 <link title="Index of types" rel=Appendix href="index_types.html">
4 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
5 <link title="Index of values" rel=Appendix href="index_values.html">
6 <link title="Index of class methods" rel=Appendix href="index_methods.html">
7 <link title="Index of classes" rel=Appendix href="index_classes.html">
8 <link title="Index of class types" rel=Appendix href="index_class_types.html">
9 <link title="Index of modules" rel=Appendix href="index_modules.html">
10 <link title="Lber" rel="Chapter" href="Lber.html">
11 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
12 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
13 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
14 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
15 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
16 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
17 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
18 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
19 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
20 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
21 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
22 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
23 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_txooclient</title>
26 </head>
27 <body>
28 <code class="code"><span class="keyword">sig</span><br>
29 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;txn<br>
30 &nbsp;&nbsp;<span class="keyword">exception</span>&nbsp;<span class="constructor">Txn_commit_failure</span>&nbsp;<span class="keyword">of</span>&nbsp;string&nbsp;*&nbsp;exn&nbsp;*<br>
31 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry_t&nbsp;list&nbsp;option<br>
32 &nbsp;&nbsp;<span class="keyword">exception</span>&nbsp;<span class="constructor">Txn_rollback_failure</span>&nbsp;<span class="keyword">of</span>&nbsp;string&nbsp;*&nbsp;exn<br>
33 &nbsp;&nbsp;<span class="keyword">class</span>&nbsp;ldapadvisorytxcon&nbsp;:<br>
34 &nbsp;&nbsp;&nbsp;&nbsp;?connect_timeout:int&nbsp;<span class="keywordsign">-&gt;</span><br>
35 &nbsp;&nbsp;&nbsp;&nbsp;?referral_policy:[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">RETURN</span>&nbsp;]&nbsp;<span class="keywordsign">-&gt;</span><br>
36 &nbsp;&nbsp;&nbsp;&nbsp;?version:int&nbsp;<span class="keywordsign">-&gt;</span><br>
37 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
38 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span><br>
39 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span><br>
40 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span><br>
41 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">object</span><br>
42 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;add&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
43 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;associate_entries&nbsp;:<br>
44 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_txooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry_t&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
45 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;associate_entry&nbsp;:<br>
46 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_txooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry_t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
47 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;begin_txn&nbsp;:&nbsp;<span class="constructor">Ldap_txooclient</span>.txn<br>
48 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;bind&nbsp;:<br>
49 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?cred:string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?meth:<span class="constructor">Ldap_funclient</span>.authmethod&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
50 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;commit_txn&nbsp;:&nbsp;<span class="constructor">Ldap_txooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
51 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;delete&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
52 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;disassociate_entries&nbsp;:<br>
53 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_txooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry_t&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
54 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;disassociate_entry&nbsp;:<br>
55 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_txooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry_t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
56 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;modify&nbsp;:<br>
57 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span><br>
58 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="constructor">Ldap_types</span>.modify_optype&nbsp;*&nbsp;string&nbsp;*&nbsp;string&nbsp;list)&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
59 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;modrdn&nbsp;:<br>
60 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span><br>
61 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?deleteoldrdn:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?newsup:string&nbsp;option&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
62 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;rawschema&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry<br>
63 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;rollback_txn&nbsp;:&nbsp;<span class="constructor">Ldap_txooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
64 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;schema&nbsp;:&nbsp;<span class="constructor">Ldap_schemaparser</span>.schema<br>
65 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;search&nbsp;:<br>
66 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?scope:<span class="constructor">Ldap_types</span>.search_scope&nbsp;<span class="keywordsign">-&gt;</span><br>
67 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?attrs:string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
68 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?attrsonly:bool&nbsp;<span class="keywordsign">-&gt;</span><br>
69 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?base:string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;list<br>
70 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;search_a&nbsp;:<br>
71 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?scope:<span class="constructor">Ldap_types</span>.search_scope&nbsp;<span class="keywordsign">-&gt;</span><br>
72 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?attrs:string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
73 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?attrsonly:bool&nbsp;<span class="keywordsign">-&gt;</span><br>
74 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?base:string&nbsp;<span class="keywordsign">-&gt;</span><br>
75 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?abandon:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry<br>
76 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;unbind&nbsp;:&nbsp;unit<br>
77 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">method</span>&nbsp;update_entry&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
78 &nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
79 <span class="keyword">end</span></code></body></html>
0 <html><head>
1 <link rel="stylesheet" href="style.css" type="text/css">
2 <link rel="Start" href="index.html">
3 <link title="Index of types" rel=Appendix href="index_types.html">
4 <link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
5 <link title="Index of values" rel=Appendix href="index_values.html">
6 <link title="Index of class methods" rel=Appendix href="index_methods.html">
7 <link title="Index of classes" rel=Appendix href="index_classes.html">
8 <link title="Index of class types" rel=Appendix href="index_class_types.html">
9 <link title="Index of modules" rel=Appendix href="index_modules.html">
10 <link title="Lber" rel="Chapter" href="Lber.html">
11 <link title="Ldap_types" rel="Chapter" href="Ldap_types.html">
12 <link title="Ldap_error" rel="Chapter" href="Ldap_error.html">
13 <link title="Ldap_protocol" rel="Chapter" href="Ldap_protocol.html">
14 <link title="Ldap_url" rel="Chapter" href="Ldap_url.html">
15 <link title="Ldap_filter" rel="Chapter" href="Ldap_filter.html">
16 <link title="Ldap_dn" rel="Chapter" href="Ldap_dn.html">
17 <link title="Ldap_funclient" rel="Chapter" href="Ldap_funclient.html">
18 <link title="Ldap_ooclient" rel="Chapter" href="Ldap_ooclient.html">
19 <link title="Ldap_schemaparser" rel="Chapter" href="Ldap_schemaparser.html">
20 <link title="Ldap_funserver" rel="Chapter" href="Ldap_funserver.html">
21 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
22 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
23 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_txooclient.ldapadvisorytxcon</title>
26 </head>
27 <body>
28 <code class="code">?connect_timeout:int&nbsp;<span class="keywordsign">-&gt;</span><br>
29 ?referral_policy:[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">RETURN</span>&nbsp;]&nbsp;<span class="keywordsign">-&gt;</span><br>
30 ?version:int&nbsp;<span class="keywordsign">-&gt;</span><br>
31 string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
32 string&nbsp;<span class="keywordsign">-&gt;</span><br>
33 string&nbsp;<span class="keywordsign">-&gt;</span><br>
34 string&nbsp;<span class="keywordsign">-&gt;</span><br>
35 <span class="keyword">object</span><br>
36 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;add&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
37 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;associate_entries&nbsp;:<br>
38 &nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_txooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry_t&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
39 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;associate_entry&nbsp;:<br>
40 &nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_txooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry_t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
41 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;begin_txn&nbsp;:&nbsp;<span class="constructor">Ldap_txooclient</span>.txn<br>
42 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;bind&nbsp;:<br>
43 &nbsp;&nbsp;&nbsp;&nbsp;?cred:string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?meth:<span class="constructor">Ldap_funclient</span>.authmethod&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
44 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;commit_txn&nbsp;:&nbsp;<span class="constructor">Ldap_txooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
45 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;delete&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
46 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;disassociate_entries&nbsp;:<br>
47 &nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_txooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry_t&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
48 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;disassociate_entry&nbsp;:<br>
49 &nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Ldap_txooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry_t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
50 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;modify&nbsp;:<br>
51 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;(<span class="constructor">Ldap_types</span>.modify_optype&nbsp;*&nbsp;string&nbsp;*&nbsp;string&nbsp;list)&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
52 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;modrdn&nbsp;:<br>
53 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?deleteoldrdn:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?newsup:string&nbsp;option&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
54 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;rawschema&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry<br>
55 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;rollback_txn&nbsp;:&nbsp;<span class="constructor">Ldap_txooclient</span>.txn&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
56 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;schema&nbsp;:&nbsp;<span class="constructor">Ldap_schemaparser</span>.schema<br>
57 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;search&nbsp;:<br>
58 &nbsp;&nbsp;&nbsp;&nbsp;?scope:<span class="constructor">Ldap_types</span>.search_scope&nbsp;<span class="keywordsign">-&gt;</span><br>
59 &nbsp;&nbsp;&nbsp;&nbsp;?attrs:string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
60 &nbsp;&nbsp;&nbsp;&nbsp;?attrsonly:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?base:string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;list<br>
61 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;search_a&nbsp;:<br>
62 &nbsp;&nbsp;&nbsp;&nbsp;?scope:<span class="constructor">Ldap_types</span>.search_scope&nbsp;<span class="keywordsign">-&gt;</span><br>
63 &nbsp;&nbsp;&nbsp;&nbsp;?attrs:string&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span><br>
64 &nbsp;&nbsp;&nbsp;&nbsp;?attrsonly:bool&nbsp;<span class="keywordsign">-&gt;</span><br>
65 &nbsp;&nbsp;&nbsp;&nbsp;?base:string&nbsp;<span class="keywordsign">-&gt;</span><br>
66 &nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;?abandon:bool&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry<br>
67 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;unbind&nbsp;:&nbsp;unit<br>
68 &nbsp;&nbsp;<span class="keyword">method</span>&nbsp;update_entry&nbsp;:&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
69 <span class="keyword">end</span></code></body></html>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_types</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_types</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
235236 &nbsp;&nbsp;&nbsp;&nbsp;url_filter&nbsp;:&nbsp;<span class="constructor">Ldap_types</span>.filter&nbsp;option;<br>
236237 &nbsp;&nbsp;&nbsp;&nbsp;url_ext&nbsp;:&nbsp;(bool&nbsp;*&nbsp;string&nbsp;*&nbsp;string)&nbsp;list&nbsp;option;<br>
237238 &nbsp;&nbsp;}<br>
239 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;ldap_grouping_type&nbsp;=&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">LDAP_GROUP_TXN</span>&nbsp;]<br>
240 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;ldap_grouping_cookie<br>
238241 <span class="keyword">end</span></code></body></html>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldap_url</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldap_url</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_changerec_oo.change</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_changerec_oo.change</title>
2526 </head>
2627 <body>
2728 <code class="code">?in_ch:<span class="constructor">Pervasives</span>.in_channel&nbsp;<span class="keywordsign">-&gt;</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_changerec_oo</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_changerec_oo</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_oo</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_oo</title>
2526 </head>
2627 <body>
2728 <code class="code"><span class="keyword">sig</span><br>
3334 &nbsp;&nbsp;&nbsp;&nbsp;&lt;&nbsp;attributes&nbsp;:&nbsp;string&nbsp;list;&nbsp;dn&nbsp;:&nbsp;string;<br>
3435 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_value&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;list;&nbsp;..&nbsp;&gt;&nbsp;<span class="keywordsign">-&gt;</span><br>
3536 &nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Buffer</span>.t<br>
37 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;read_ldif_file&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;list<br>
38 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;write_ldif_file&nbsp;:&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Ldap_ooclient</span>.ldapentry&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
3639 &nbsp;&nbsp;<span class="keyword">class</span>&nbsp;ldif&nbsp;:<br>
3740 &nbsp;&nbsp;&nbsp;&nbsp;?in_ch:<span class="constructor">Pervasives</span>.in_channel&nbsp;<span class="keywordsign">-&gt;</span><br>
3841 &nbsp;&nbsp;&nbsp;&nbsp;?out_ch:<span class="constructor">Pervasives</span>.out_channel&nbsp;<span class="keywordsign">-&gt;</span><br>
2121 <link title="Ldif_oo" rel="Chapter" href="Ldif_oo.html">
2222 <link title="Ldap_toplevel" rel="Chapter" href="Ldap_toplevel.html">
2323 <link title="Ldap_mutex" rel="Chapter" href="Ldap_mutex.html">
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html"><title>Ldif_oo.ldif</title>
24 <link title="Ldif_changerec_oo" rel="Chapter" href="Ldif_changerec_oo.html">
25 <link title="Ldap_txooclient" rel="Chapter" href="Ldap_txooclient.html"><title>Ldif_oo.ldif</title>
2526 </head>
2627 <body>
2728 <code class="code">?in_ch:<span class="constructor">Pervasives</span>.in_channel&nbsp;<span class="keywordsign">-&gt;</span><br>
105105 let rec string_values s attr vals =
106106 match vals with
107107 valu :: [] -> sprintf "%s%s=%s" s attr (escape_value valu)
108 | valu :: tl -> string_values (sprintf "%s%s=%s+" s attr (escape_value valu)) attr tl
108 | valu :: tl ->
109 string_values
110 (sprintf "%s%s=%s+"
111 s attr (escape_value valu))
112 attr tl
109113 | [] -> s
110114 in
111115 if List.length vals = 0 then
124128 | [] -> s
125129 in
126130 components_to_dn "" (dn_to_strcomponents dn)
131
132 let canonical_dn dn = String.lowercase (to_string (of_string dn))
4040
4141 (** Escape a string which you intend to be part of a VALUE in the
4242 dn. Do not use on the whole dn, just an attribute value. It is NOT
43 necessary to use this if you intent to call to_string on your
43 necessary to use this if you intend to call to_string on your
4444 dn. It will be done for you as part of the conversion
4545 process. This function is exposed for the case where you find it
4646 easier to manipulate the dn via a regular expression, or other
4747 string based means, and you find it necessary to escape values. *)
4848 val escape_value : string -> string
49
50 (** returns the canonical dn. A simple string compare can tell you
51 accurately whether two canonical dns are equal or not. *)
52 val canonical_dn : string -> string
11
22 let err2string code =
33 match code with
4 `SUCCESS -> "success"
5 | `OPERATIONS_ERROR -> "operations error"
6 | `PROTOCOL_ERROR -> "protocol error"
7 | `TIMELIMIT_EXCEEDED -> "time limit exceeded"
8 | `SIZELIMIT_EXCEEDED -> "size limit exceeded"
9 | `COMPARE_FALSE -> "compare false"
10 | `COMPARE_TRUE -> "compare true"
11 | `AUTH_METHOD_NOT_SUPPORTED -> "auth method not supported"
12 | `STRONG_AUTH_REQUIRED -> "strong auth required"
13 | `REFERRAL -> "referral"
14 | `ADMINLIMIT_EXCEEDED -> "admin limit exceeded"
15 | `UNAVAILABLE_CRITICAL_EXTENSION -> "unavilable critical extension"
16 | `CONFIDENTIALITY_REQUIRED -> "confidentiality required"
17 | `SASL_BIND_IN_PROGRESS -> "sasl bind in progress"
18 | `NO_SUCH_ATTRIBUTE -> "no such attribute"
19 | `UNDEFINED_TYPE -> "undefined type"
20 | `INAPPROPRIATE_MATCHING -> "inappropriate matching"
21 | `CONSTRAINT_VIOLATION -> "constraint violation"
22 | `TYPE_OR_VALUE_EXISTS -> "type or value exists"
23 | `INVALID_SYNTAX -> "invalid syntax"
24 | `NO_SUCH_OBJECT -> "no such object"
25 | `ALIAS_PROBLEM -> "alias problem"
26 | `INVALID_DN_SYNTAX -> "invalid dn syntax"
27 | `ALIAS_DEREF_PROBLEM -> "alias deref problem"
28 | `INAPPROPRIATE_AUTH -> "inappropriate auth"
29 | `INVALID_CREDENTIALS -> "invalid credentials"
30 | `INSUFFICIENT_ACCESS -> "insufficient access"
31 | `BUSY -> "busy"
32 | `UNAVAILABLE -> "unavailable"
33 | `UNWILLING_TO_PERFORM -> "unwilling to perform"
34 | `LOOP_DETECT -> "loop detected"
35 | `NAMING_VIOLATION -> "naming violation"
36 | `OBJECT_CLASS_VIOLATION -> "object class violation"
37 | `NOT_ALLOWED_ON_NONLEAF -> "not allowed on non leaf"
38 | `NOT_ALLOWED_ON_RDN -> "not allowed on rdn"
39 | `ALREADY_EXISTS -> "already exists"
40 | `NO_OBJECT_CLASS_MODS -> "no objectclass mods"
41 | `LOCAL_ERROR -> "local error"
42 | `SERVER_DOWN -> "server down"
43 | `OTHER -> "other"
4 `SUCCESS -> "`SUCCESS"
5 | `OPERATIONS_ERROR -> "`OPERATIONS_ERROR"
6 | `PROTOCOL_ERROR -> "`PROTOCOL_ERROR"
7 | `TIMELIMIT_EXCEEDED -> "`TIMELIMIT_EXCEEDED"
8 | `SIZELIMIT_EXCEEDED -> "`SIZELIMIT_EXCEEDED"
9 | `COMPARE_FALSE -> "`COMPARE_FALSE"
10 | `COMPARE_TRUE -> "`COMPARE_TRUE"
11 | `AUTH_METHOD_NOT_SUPPORTED -> "`AUTH_METHOD_NOT_SUPPORTED"
12 | `STRONG_AUTH_REQUIRED -> "`STRONG_AUTH_REQUIRED"
13 | `REFERRAL -> "`REFERRAL"
14 | `ADMINLIMIT_EXCEEDED -> "`ADMINLIMIT_EXCEEDED"
15 | `UNAVAILABLE_CRITICAL_EXTENSION -> "`UNAVAILABLE_CRITICAL_EXTENSION"
16 | `CONFIDENTIALITY_REQUIRED -> "`CONFIDENTIALITY_REQUIRED"
17 | `SASL_BIND_IN_PROGRESS -> "`SASL_BIND_IN_PROGRESS"
18 | `NO_SUCH_ATTRIBUTE -> "`NO_SUCH_ATTRIBUTE"
19 | `UNDEFINED_TYPE -> "`UNDEFINED_TYPE"
20 | `INAPPROPRIATE_MATCHING -> "`INAPPROPRIATE_MATCHING"
21 | `CONSTRAINT_VIOLATION -> "`CONSTRAINT_VIOLATION"
22 | `TYPE_OR_VALUE_EXISTS -> "`TYPE_OR_VALUE_EXISTS"
23 | `INVALID_SYNTAX -> "`INVALID_SYNTAX"
24 | `NO_SUCH_OBJECT -> "`NO_SUCH_OBJECT"
25 | `ALIAS_PROBLEM -> "`ALIAS_PROBLEM"
26 | `INVALID_DN_SYNTAX -> "`INVALID_DN_SYNTAX"
27 | `ALIAS_DEREF_PROBLEM -> "`ALIAS_DEREF_PROBLEM"
28 | `INAPPROPRIATE_AUTH -> "`INAPPROPRIATE_AUTH"
29 | `INVALID_CREDENTIALS -> "`INVALID_CREDENTIALS"
30 | `INSUFFICIENT_ACCESS -> "`INSUFFICIENT_ACCESS"
31 | `BUSY -> "`BUSY"
32 | `UNAVAILABLE -> "`UNAVAILABLE"
33 | `UNWILLING_TO_PERFORM -> "`UNWILLING_TO_PERFORM"
34 | `LOOP_DETECT -> "`LOOP_DETECT"
35 | `NAMING_VIOLATION -> "`NAMING_VIOLATION"
36 | `OBJECT_CLASS_VIOLATION -> "`OBJECT_CLASS_VIOLATION"
37 | `NOT_ALLOWED_ON_NONLEAF -> "`NOT_ALLOWED_ON_NONLEAF"
38 | `NOT_ALLOWED_ON_RDN -> "`NOT_ALLOWED_ON_RDN"
39 | `ALREADY_EXISTS -> "`ALREADY_EXISTS"
40 | `NO_OBJECT_CLASS_MODS -> "`NO_OBJECT_CLASS_MODS"
41 | `LOCAL_ERROR -> "`LOCAL_ERROR"
42 | `SERVER_DOWN -> "`SERVER_DOWN"
43 | `OTHER -> "`OTHER"
4444 | _ -> raise (LDAP_Decoder "invalid error code")
4545
46 let ldap_strerror error ldaperror =
46 let ldap_strerror msg ldaperror =
4747 match ldaperror with
4848 LDAP_Failure (code, error, {ext_matched_dn=mdn;ext_referral=refs}) ->
49 ("ldap error. code: " ^ (err2string code) ^
50 ", error: " ^ error ^
51 ", matched dn: " ^ mdn ^
52 (match refs with
53 Some lst ->
54 List.fold_left
55 (fun s item ->
56 if s = "" then
57 item
58 else
59 s ^ ", " ^ item)
60 "" lst
61 | None -> "") ^ ": " ^ error)
49 "LDAP_Failure (" ^
50 (String.concat ", "
51 [(err2string code);
52 msg ^ ": " ^ error;
53 "{ext_matched_dn = " ^ "\"" ^ mdn ^ "\"; ext_referral = [" ^
54 (match refs with
55 Some lst -> (String.concat "; " lst) ^ "]"
56 | None -> "]") ^ "})"])
6257 | _ -> failwith "not an ldap error"
6358
6459 let ldap_perror error ldaperror =
126126 | Readbyte_error End_of_stream ->
127127 raise (LDAP_Failure (`LOCAL_ERROR, "bug in ldap decoder detected", ext_res))
128128
129 (* test all functionality, especially dns awareness
130 - implement connect timeouts.
131 - do we really want to fail
132 if any host after the first is unknown?
133 - allow the use of ldapurls in the hosts list*)
134129 let init ?(connect_timeout = 1) ?(version = 3) hosts =
135130 if ((version < 2) || (version > 3)) then
136131 raise (LDAP_Failure (`LOCAL_ERROR, "invalid protocol version", ext_res))
387382 | _ -> raise (LDAP_Failure (`LOCAL_ERROR, "invalid modify dn response", ext_res))
388383 with exn -> free_messageid con msgid;raise exn);
389384 free_messageid con msgid
385
386 let create_grouping_s groupingType value = ()
387 let end_grouping_s cookie value = ()
0 open Ldap_ooclient
01 open Ldap_types
1 open Ldap_ooclient
22
3 (* ldap mutexes *)
34 exception Ldap_mutex of string * exn
45
56 class type mutex_t =
89 method unlock: unit
910 end
1011
12 class type object_lock_table_t =
13 object
14 method lock: dn -> unit
15 method unlock: dn -> unit
16 end
17
18 let addmutex ldap mutexdn =
19 let mt = new ldapentry in
20 let mtrdn = List.hd (Ldap_dn.of_string mutexdn) in
21 mt#set_dn mutexdn;
22
23
24
25 mt#add [("objectclass", ["top";"mutex"]);
26 (mtrdn.attr_type, mtrdn.attr_vals)];
27 try ldap#add mt
28 with exn -> raise (Ldap_mutex ("addmutex", exn))
29
30 let rec lock (ldap:ldapcon) mutexdn lockval =
31 try
32 let obj =
33 try
34 ldap#search
35 ~base:mutexdn
36 ~scope:`BASE
37 "objectclass=*"
38 with LDAP_Failure (`NO_SUCH_OBJECT, _, _) -> []
39 in
40 if List.length obj = 0 then begin
41 addmutex ldap mutexdn;
42 lock ldap mutexdn lockval
43 end
44 else if List.length obj = 1 then
45 while true
46 do
47 try
48 ldap#modify (List.hd obj)#dn lockval;
49 failwith "locked"
50 with (* the mutex is locked already *)
51 LDAP_Failure (`TYPE_OR_VALUE_EXISTS, _, _)
52 | LDAP_Failure (`OBJECT_CLASS_VIOLATION, _, _) ->
53 (* this is so evil *)
54 ignore (Unix.select [] [] [] 0.25) (* wait 1/4 of a second *)
55 done
56 else failwith "huge error, multiple objects with the same dn"
57 with
58 Failure "locked" -> ()
59 | (Ldap_mutex _) as exn -> raise exn
60 | exn -> raise (Ldap_mutex ("lock", exn))
61
62 let rec unlock (ldap:ldapcon) mutexdn unlockval =
63 try
64 let obj =
65 try
66 ldap#search
67 ~base:mutexdn
68 ~scope:`BASE
69 "objectclass=*"
70 with LDAP_Failure (`NO_SUCH_OBJECT, _, _) -> []
71 in
72 if List.length obj = 0 then begin
73 addmutex ldap mutexdn;
74 unlock ldap mutexdn unlockval
75 end
76 else if List.length obj = 1 then
77 try
78 ldap#modify
79 (List.hd obj)#dn unlockval
80 with LDAP_Failure (`NO_SUCH_ATTRIBUTE, _, _) -> ()
81 with
82 (Ldap_mutex _) as exn -> raise exn
83 | exn -> raise (Ldap_mutex ("unlock", exn))
84
85
1186 class mutex ldapurls binddn bindpw mutexdn =
1287 object (self)
1388 val ldap =
1590 ldap#bind binddn ~cred:bindpw;
1691 ldap
1792
18 method private addmutex =
19 let mt = new ldapentry in
20 let mtrdn = List.hd (Ldap_dn.of_string mutexdn) in
21 mt#set_dn mutexdn;
22 mt#add [("objectclass", ["top";"mutex"]);
23 (mtrdn.attr_type, mtrdn.attr_vals)];
24 try ldap#add mt
25 with exn -> raise (Ldap_mutex ("addmutex", exn))
93 method private addmutex = addmutex ldap mutexdn
94 method lock = lock ldap mutexdn [(`ADD, "mutexlocked", ["locked"])]
95 method unlock = unlock ldap mutexdn [(`DELETE, "mutexlocked", [])]
96 end
2697
27 method lock =
28 try
29 let obj =
30 try
31 ldap#search
32 ~base:mutexdn
33 ~scope:`BASE
34 "objectclass=*"
35 with LDAP_Failure (`NO_SUCH_OBJECT, _, _) -> []
36 in
37 if List.length obj = 0 then begin
38 self#addmutex;
39 self#lock
40 end
41 else if List.length obj = 1 then
42 while true
43 do
44 try
45 ldap#modify
46 (List.hd obj)#dn [(`ADD, "mutexlocked", ["locked"])];
47 failwith "locked"
48 with (* the mutex is locked already *)
49 LDAP_Failure (`TYPE_OR_VALUE_EXISTS, _, _)
50 | LDAP_Failure (`OBJECT_CLASS_VIOLATION, _, _) -> ()
51 done
52 else failwith ("huge error, multiple objects with the same dn")
53 with
54 Failure "locked" -> ()
55 | (Ldap_mutex _) as exn -> raise exn
56 | exn -> raise (Ldap_mutex ("lock", exn))
98 let apply_with_mutex mutex f =
99 mutex#lock;
100 try
101 let result = f () in
102 mutex#unlock;
103 result
104 with exn -> (try mutex#unlock with _ -> ());raise exn
57105
58 method unlock =
59 try
60 let obj =
61 try
62 ldap#search
63 ~base:mutexdn
64 ~scope:`BASE
65 "objectclass=*"
66 with LDAP_Failure (`NO_SUCH_OBJECT, _, _) -> []
67 in
68 if List.length obj = 0 then begin
69 self#addmutex;
70 self#unlock
71 end
72 else if List.length obj = 1 then
73 try
74 ldap#modify
75 (List.hd obj)#dn [(`DELETE, "mutexlocked", [])]
76 with LDAP_Failure (`NO_SUCH_ATTRIBUTE, _, _) -> ()
77 with
78 (Ldap_mutex _) as exn -> raise exn
79 | exn -> raise (Ldap_mutex ("unlock", exn))
106 class object_lock_table ldapurls binddn bindpw mutextbldn =
107 object (self)
108 val ldap =
109 let ldap = new ldapcon ldapurls in
110 ldap#bind binddn ~cred:bindpw;
111 ldap
112 method private addmutex = addmutex ldap mutextbldn
113 method lock dn = lock ldap mutextbldn [(`ADD, "lockedObject", [Ldap_dn.to_string dn])]
114 method unlock dn = unlock ldap mutextbldn [(`DELETE, "lockedObject", [Ldap_dn.to_string dn])]
80115 end
0 (* A library for implementing mutexes on top of LDAP's built in test
1 and set mechanism
0 open Ldap_ooclient
21
3 Copyright (C) 2005 Eric Stokes, and The California State University
4 at Northridge
5
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
10
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public
17 License along with this library; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *)
19
20 (** A library for implementing mutexes on top of LDAP's built in test
2 (** functions for implementing mutexes on top of LDAP's built in test
213 and set mechanism. In order to use this module you must load
22 mutex.schema, which is an rfc2252 format schema file. *)
23
24 (** raised when a mutex operation fails. The string argument contains
25 the name of the method which failed, and the exception contains
26 details about what failed. *)
4 mutex.schema, which is an rfc2252 format schema file. raised when
5 a mutex operation fails. The string argument contains the name of
6 the method which failed, and the exception contains details about
7 what failed. *)
278 exception Ldap_mutex of string * exn
289
10 (** the class type of a single mutex, used for performing
11 advisory locking of some action *)
2912 class type mutex_t =
3013 object
3114 method lock: unit
3215 method unlock: unit
16 end
17
18 (** the class type of an object lock table which allows for advisory
19 locking of objects by dn *)
20 class type object_lock_table_t =
21 object
22 method lock: Ldap_types.dn -> unit
23 method unlock: Ldap_types.dn -> unit
3324 end
3425
3526 (** new mutex ldapurls binddn bindpw mutexdn *)
4031 (** unlock the mutex *)
4132 method unlock: unit
4233 end
34
35 (** used to apply some function, first locking the mutex, unlocking it
36 only after the function has been applied. If the function
37 generates any exception, this wrapper catches that exception, and
38 unlocks the mutex before reraising the exception. Generally
39 garentees that the mutex will always be used consistantly when
40 performing an action. *)
41 val apply_with_mutex: mutex -> (unit -> 'a) -> 'a
42
43 (** new object_lock_table ldapurls binddn bindpw mutexdn *)
44 class object_lock_table: string list -> string -> string -> string ->
45 object
46 (** lock the specified dn, if it is already locked, then block until the lock can be aquired *)
47 method lock: Ldap_types.dn -> unit
48 (** unlock the specified dn, if it is not locked do nothing *)
49 method unlock: Ldap_types.dn -> unit
50 end
7474 ?attrs:string list ->
7575 ?attrsonly:bool -> ?base:string -> string -> (?abandon:bool -> unit -> ldapentry_t)
7676 method unbind : unit
77 method update_entry : ldapentry_t -> unit
77 method update_entry : ldapentry_t -> unit
7878 end
7979
8080 let format_entry e =
8181 Format.open_box 0;
8282 Format.open_box 2;
83 Format.print_string ("<ldapentry_t " ^ e#dn);
83 Format.print_string ("<ldapentry_t " ^ (String.escaped e#dn));
8484 Format.force_newline ();
8585 let length_attrs = List.length e#attributes in
8686 let j = ref 0 in
8888 (fun a ->
8989 let length = List.length (e#get_value a) in
9090 let i = ref 0 in
91 Format.print_string (Printf.sprintf "(\"%s\", " a);
91 Format.print_string (Printf.sprintf "(\"%s\", " (String.escaped a));
9292 Format.open_box 0;
9393 Format.print_string "[";
9494 List.iter
9595 (fun v ->
9696 if !i < length - 1 then
97 (Format.print_string (Printf.sprintf "\"%s\";" v);
97 (Format.print_string (Printf.sprintf "\"%s\";" (String.escaped v));
9898 Format.print_break 1 0)
9999 else
100 Format.print_string (Printf.sprintf "\"%s\"" v);
100 Format.print_string (Printf.sprintf "\"%s\"" (String.escaped v));
101101 i := !i + 1)
102102 (e#get_value a);
103103 Format.print_string "]";
118118 let i = ref 0 in
119119 Format.open_box 0;
120120 Format.print_string "[";
121 if length > 5 then
122 List.iter
123 (fun e ->
124 if !i < length - 1 then begin
125 Format.print_string ("<ldapentry_t " ^ e#dn ^ ">; ");
126 Format.print_cut ();
127 i := !i + 1
128 end
129 else Format.print_string ("<ldapentry_t " ^ e#dn ^ ">"))
130 lst
121 if length > 3 then
122 try
123 List.iter
124 (fun e ->
125 if !i > 49 then failwith "limit"
126 else if !i < length - 1 then begin
127 Format.print_string ("<ldapentry_t " ^ (String.escaped e#dn) ^ ">; ");
128 Format.print_cut ();
129 i := !i + 1
130 end else
131 Format.print_string ("<ldapentry_t " ^ (String.escaped e#dn) ^ ">"))
132 lst
133 with Failure "limit" -> Format.print_string "..."
131134 else
132135 List.iter
133136 (fun e ->
134137 if !i < length - 1 then begin
135138 format_entry e;
136 Format.print_break 1 0
137 end
138 else
139 Format.print_break 1 0;
140 i := !i + 1
141 end else
139142 format_entry e)
140 lst
143 lst;
144 Format.print_string "]";
145 Format.close_box ()
141146
142147 module CaseInsensitiveString =
143148 (struct
263268 match x with
264269 [] -> ()
265270 | (attr, values) :: lst ->
266 (let lcname = lowercase attr in
267 match values with
268 [] -> Hashtbl.remove data lcname
269 | _ -> ((try List.iter (Ulist.remove (Hashtbl.find data lcname)) values
270 with Not_found -> ());
271 (match Ulist.tolst (Hashtbl.find data lcname) with
272 [] -> Hashtbl.remove data lcname
273 | _ -> ());
274 do_delete lst))
271 let lcname = lowercase attr in
272 match values with
273 [] -> Hashtbl.remove data lcname;do_delete lst
274 | _ ->
275 (try List.iter (Ulist.remove (Hashtbl.find data lcname)) values
276 with Not_found -> ());
277 (match Ulist.tolst (Hashtbl.find data lcname) with
278 [] -> Hashtbl.remove data lcname
279 | _ -> ());
280 do_delete lst
275281 in
276282 do_delete x; self#push_change `DELETE x
277283
402408 val mutable bound = true
403409 val mutable reconnect_successful = true
404410 val mutable con = init ~connect_timeout:connect_timeout ~version:version hosts
405
406411 method private reconnect =
407412 if bound then unbind con;
408413 bound <- false;
446451 with LDAP_Failure(`SERVER_DOWN, _, _) ->
447452 self#reconnect;self#modify dn mods
448453
449 method modrdn dn ?(deleteoldrdn = true) newrdn =
454 method modrdn dn ?(deleteoldrdn = true) ?(newsup: string option=None) newrdn =
450455 if not (reconnect_successful && bound) then self#reconnect;
451 try modrdn_s con ~dn:dn ~newdn:newrdn ~deleteoldrdn:deleteoldrdn
456 try modrdn_s con ~dn ~newdn:newrdn ~deleteoldrdn ~newsup
452457 with LDAP_Failure(`SERVER_DOWN, _, _) ->
453458 self#reconnect;self#modrdn dn ~deleteoldrdn:deleteoldrdn newrdn
454459
517522 ~attrs: ["objectClasses";"attributeTypes";
518523 "matchingRules";"ldapSyntaxes"]
519524 "(objectclass=subschema)") with
520 [e] -> readSchema (e#get_value "objectclasses") (e#get_value "attributetypes")
525 [e] ->
526 readSchema
527 (e#get_value "objectclasses")
528 (e#get_value "attributetypes")
521529 | _ -> raise Not_found)
522530 else
523531 raise Not_found
868876 method replace x =
869877 self#single_val_check x false;super#replace x;
870878 self#drive_updatecon;self#drive_reconsile Optimistic
879
880 method modify x =
881 let filter_mod x op =
882 List.rev_map
883 (fun (_, a, v) -> (a, v))
884 (List.filter
885 (function (the_op, _, _) when the_op = op -> true | _ -> false) x)
886 in
887 self#single_val_check (filter_mod x `ADD) true;
888 self#single_val_check (filter_mod x `REPLACE) false;
889 super#modify x;
890 self#drive_updatecon;
891 self#drive_reconsile Pessimistic
871892
872893 method get_value x =
873894 try super#get_value x with Not_found ->
2222
2323 open Ldap_types
2424
25 (** {2 Basic Data Types} *)
26
27 (** the type of an operation, eg. [("cn", ["foo";"bar"])] *)
2528 type op = string * string list
2629 type op_lst = op list
30
31 (** The policy the client should take when it encounteres a
32 referral. This is currently not used *)
2733 type referral_policy = [ `FOLLOW | `RETURN ]
34
35 (** The change type of an ldapentry. This controls some aspects of
36 it's behavior *)
2837 type changetype = [ `ADD | `DELETE | `MODDN | `MODIFY | `MODRDN ]
2938
39 (** {2 Local Representation of LDAP Objects} *)
40
41 (** The base type of an ldap entry represented in memory. *)
3042 class type ldapentry_t =
31 object
32 method add : op_lst -> unit
33 method attributes : string list
34 method changes : (Ldap_types.modify_optype * string * string list) list
35 method changetype : changetype
36 method delete : op_lst -> unit
37 method dn : string
38 method diff : ldapentry_t -> (modify_optype * string * string list) list
39 method exists : string -> bool
40 method flush_changes : unit
41 method get_value : string -> string list
42 method modify :
43 (Ldap_types.modify_optype * string * string list) list -> unit
44 method print : unit
45 method replace : op_lst -> unit
46 method set_changetype : changetype -> unit
47 method set_dn : string -> unit
48 end
49
50 val format_entry :
51 < attributes : string list; dn : string;
52 get_value : string -> string list; .. > ->
53 unit
54
55 val format_entries :
56 < attributes : string list; dn : string;
57 get_value : string -> string list; .. > list ->
58 unit
43 object
44 method add : op_lst -> unit
45 method attributes : string list
46 method changes : (Ldap_types.modify_optype * string * string list) list
47 method changetype : changetype
48 method delete : op_lst -> unit
49 method dn : string
50 method diff : ldapentry_t -> (modify_optype * string * string list) list
51 method exists : string -> bool
52 method flush_changes : unit
53 method get_value : string -> string list
54 method modify :
55 (Ldap_types.modify_optype * string * string list) list -> unit
56 method print : unit
57 method replace : op_lst -> unit
58 method set_changetype : changetype -> unit
59 method set_dn : string -> unit
60 end
5961
6062 (** this object represents a remote object within local memory. It
61 records all local changes made to it (if it's changetype is set to
62 `MODIFY), and can commit them to the server at a later time. This
63 can significantly improve performance by reducing traffic to the
64 server. *)
63 records all local changes made to it (if it's changetype is set to
64 `MODIFY), and can commit them to the server at a later time via
65 {!Ldap_ooclient.ldapcon.update_entry}. *)
6566 class ldapentry :
66 object
67 (** add values to an attribute (or create a new attribute). Does
67 object
68 (** add values to an attribute (or create a new attribute). Does
6869 not change the server until you update *)
6970 method add : op_lst -> unit
7071
7273 on the object *)
7374 method attributes : string list
7475
75 (** return a list of changes made to the object in a format suitable for
76 sending directly to modify_s *)
76 (** return a list of changes made to the object in a the format of
77 a modify operation. For example, you can apply the changes to another
78 ldapentry object using the {!Ldap_ooclient.ldapentry.modify}
79 method *)
7780 method changes : (Ldap_types.modify_optype * string * string list) list
7881
7982 (** return the changetype of the object *)
8790 method dn : string
8891
8992 (** given an ldapentry, return the differences between the current
90 entry and the specified entry *)
93 entry and the specified entry in the form of a modify
94 operation which would make the specified entry the same as the
95 current entry. *)
9196 method diff : ldapentry_t -> (modify_optype * string * string list) list
9297
9398 (** query whether the attribute type (name) exists in the object *)
96101 (** clear all accumulated changes *)
97102 method flush_changes : unit
98103
99 (** get the value of an attribute *)
104 (** get the value of an attribute @raise Not_found If the
105 attribute does not exist. *)
100106 method get_value : string -> string list
101107
102 (** modify the object (same as modify_s), does not change the
103 database until you update *)
108 (** Apply modifications to object in memory, does not change the
109 database until you update using
110 {!Ldap_ooclient.ldapcon.update_entry} *)
104111 method modify :
105112 (Ldap_types.modify_optype * string * string list) list -> unit
106113
107 (** print an ldif like representation of the object to stdout, see
108 Ldif_oo for standards compliant ldif. Usefull for toplevel
109 sessions. DEPRECATED. *)
114 (** @deprecated print an ldif like representation of the object to stdout, see
115 Ldif_oo for standards compliant ldif. Usefull for toplevel
116 sessions. *)
110117 method print : unit
111118
112119 (** replace values in the object, does not change the database
120127 method set_dn : string -> unit
121128 end
122129
130 (** {1 Miscallaneous} *)
131
132 (** toplevel formatter for ldapentry, prints the whole entry with a
133 nice structure. Each attribute is in the correct syntax to be
134 copied and pasted into a modify operation. *)
135 val format_entry :
136 < attributes : string list; dn : string;
137 get_value : string -> string list; .. > ->
138 unit
139
140 (** format lists of entries, in this case only print the dn *)
141 val format_entries :
142 < attributes : string list; dn : string;
143 get_value : string -> string list; .. > list ->
144 unit
145
146 (** The type of an ldap change record, used by extended LDIF *)
123147 type changerec =
124148 [`Modification of string * ((Ldap_types.modify_optype * string * string list) list)
125149 | `Addition of ldapentry
126150 | `Delete of string
127151 | `Modrdn of string * int * string]
128152
153 (** {0 Communication With {!Ldap_funclient}} *)
154
129155 (** given a search_result_entry as returned by ldap_funclient, produce an
130156 ldapentry containing either the entry, or the referral object *)
131157 val to_entry :
137163 ldap_funserver. *)
138164 val of_entry : ldapentry -> search_result_entry
139165
166 (** {2 Interacting with LDAP Servers} *)
167
168 (** This class abstracts a connection to an LDAP server (or servers),
169 an instance will be connected to the server you specify and can be
170 used to perform operations on that server.
171
172 {0 Example}
173
174 [new ldapcon ~connect_timeout:5 ~version:3
175 ["ldap://first.ldap.server";"ldap://second.ldap.server"]].
176
177 In addition to specifying multiple urls, if DNS names are given,
178 and those names are bound to multiple addresses, then all possible
179 addresses will be tried.
180
181 {0 Example}
182
183 [new ldapcon ["ldaps://rrldap.csun.edu"]]
184
185 is equivelant to
186
187 [new ldapcon ["ldap://130.166.1.30";"ldap://130.166.1.31";"ldap://130.166.1.32"]]
188
189 This means that if any host in the rr fails, the ldapcon will
190 transparently move on to the next host, and you will never know
191 the difference.
192
193 @raise LDAP_Failure All methods raise {!Ldap_types.LDAP_Failure} on error
194
195 @param connect_timeout Default [1], an integer which specifies how
196 long to wait for any given server in the list to respond before
197 trying the next one. After all the servers have been tried for
198 [connect_timeout] seconds [LDAP_Failure (`SERVER_DOWN, ...)] will
199 be raised.
200
201 @param referral_policy In a future version of ocamldap this will
202 be used to specify what you would like to do in the event of a
203 referral. Currently it does nothing and is ignored see
204 {!Ldap_ooclient.referral_policy}.
205
206 @param version The protocol version to use, the default is [3],
207 the other recognized value is [2].
208 *)
209 class ldapcon :
210 ?connect_timeout:int ->
211 ?referral_policy:[> `RETURN ] ->
212 ?version:int ->
213 string list ->
214 object
215 (** {2 Authentication} *)
216
217 (** bind to the database using dn.
218
219 {0 Simple Bind Example}
220
221 [ldap#bind ~cred:"password" "cn=foo,ou=people,ou=auth,o=bar"]
222
223 To bind anonymously, omit ~cred, and leave dn blank eg.
224
225 {0 Example}
226
227 [ldap#bind ""]
228
229 @param cred The credentials to provide for binding. Default [""].
230
231 @param meth The method to use when binding See
232 {!Ldap_funclient.authmethod} the default is [`SIMPLE]. If
233 [`SASL] is used then [dn] and [~cred] Are interperted according
234 to the chosen SASL mechanism. SASL binds have not been tested
235 extensively. *)
236 method bind :
237 ?cred:string -> ?meth:Ldap_funclient.authmethod -> string -> unit
238
239 (** Deauthenticate and close the connection to the server *)
240 method unbind : unit
241
242 (** {2 Searching} *)
243
244 (** Search the directory syncronously for an entry which matches the
245 search criteria.
246
247 {0 Example}
248
249 [ldap#search ~base:"dc=foo,dc=bar" ~attrs:["cn"] "uid=*"]
250
251 @param scope Default [`SUBTREE], defines the scope of the
252 search. see {!Ldap_types.search_scope}
253
254 @param attrs Default [[]] (means all attributes)
255
256 @param attrsonly Default [false] If true, asks the server to return
257 only the attribute names, not their values.
258
259 @param base Default [""], The search base, which is the dn of the
260 object from which you want to start your search. Only that
261 object, and it's children will be included in the
262 search. Further controlled by [~scope]. *)
263 method search :
264 ?scope:Ldap_types.search_scope ->
265 ?attrs:string list ->
266 ?attrsonly:bool -> ?base:string -> string -> ldapentry list
267
268 (** Search the directory asyncronously, otherwise the same as
269 search. *)
270 method search_a :
271 ?scope:Ldap_types.search_scope ->
272 ?attrs:string list ->
273 ?attrsonly:bool -> ?base:string -> string -> (?abandon:bool -> unit -> ldapentry)
274
275 (** Fetch the raw (unparsed) schema from the directory using the
276 standard mechanism (requires protocol version 3) *)
277 method rawschema : ldapentry
278
279 (** Fetch and parse the schema from the directory via the standard
280 mechanism (requires version 3). Return a structured
281 representation of the schema indexed by canonical name, and oid. *)
282 method schema : Ldap_schemaparser.schema
283
284 (** {2 Making Modifications} *)
285
286 (** add an entry to the database *)
287 method add : ldapentry -> unit
288
289 (** Delete the object named by dn from the database *)
290 method delete : string -> unit
291
292 (** Modify the entry named by dn, applying mods
293
294 {0 Example}
295
296 [ldap#modify "uid=foo,ou=people,dc=bar,dc=baz" [(`DELETE, "cn", ["foo";"bar"])]]
297 *)
298 method modify :
299 string ->
300 (Ldap_types.modify_optype * string * string list) list -> unit
301
302 (** Syncronize changes made locally to an ldapentry with the
303 directory. *)
304 method update_entry : ldapentry -> unit
305
306 (** Modify the rdn of the object named by dn, if the protocol
307 version is 3 you may additionally change the superior, the rdn
308 will be changed to the attribute represented (as a string) by
309 newrdn,
310
311 {0 Example With New Superior}
312
313 [ldap#modrdn ~newsup:(Some "o=csun") "cn=bob,ou=people,o=org" "uid=bperson"]
314
315 After this example "cn=bob,ou=people,o=org" will end up as "uid=bperson,o=csun".
316
317 @param deleteoldrdn Default [true], delete
318 the old rdn value as part of the modrdn.
319
320 @param newsup Default [None], only valid when the protocol
321 version is 3, change the object's location in the tree, making
322 its superior equal to the specified object. *)
323 method modrdn : string -> ?deleteoldrdn:bool -> ?newsup:string option -> string -> unit
324 end
325
326 (** {1 Iterators Over Streams of ldapentry Objects} *)
327
140328 (** given a source of ldapentry objects (unit -> ldapentry), such as
141 the return value of ldapcon#search_a apply f (first arg) to each entry
329 the return value of ldapcon#search_a, apply f (first arg) to each entry
142330 See List.iter *)
143331 val iter : (ldapentry -> unit) -> (?abandon:bool -> unit -> ldapentry) -> unit
144332
156344 intial))) see List.fold_right. *)
157345 val fold : (ldapentry -> 'a -> 'a) -> 'a -> (?abandon:bool -> unit -> ldapentry) -> 'a
158346
159 class ldapcon :
160 ?connect_timeout:int ->
161 ?referral_policy:[> `RETURN ] ->
162 ?version:int ->
163 string list ->
164 object
165 method add : ldapentry -> unit
166 method bind :
167 ?cred:string -> ?meth:Ldap_funclient.authmethod -> string -> unit
168 method delete : string -> unit
169 method modify :
170 string ->
171 (Ldap_types.modify_optype * string * string list) list -> unit
172 method modrdn : string -> ?deleteoldrdn:bool -> string -> unit
173 method rawschema : ldapentry
174 method schema : Ldap_schemaparser.schema
175 method search :
176 ?scope:Ldap_types.search_scope ->
177 ?attrs:string list ->
178 ?attrsonly:bool -> ?base:string -> string -> ldapentry list
179 method search_a :
180 ?scope:Ldap_types.search_scope ->
181 ?attrs:string list ->
182 ?attrsonly:bool -> ?base:string -> string -> (?abandon:bool -> unit -> ldapentry)
183 method unbind : unit
184 method update_entry : ldapentry -> unit
185 end
186
347 (** {2 Schema Aware ldapentry Derivatives} *)
348
349 (** {1 General Schema Aware Entry} {!Ldap_ooclient.scldapentry}, A
350 schema aware derivative of {!Ldap_ooclient.ldapentry}. It contains
351 an rfc2252 schema checker, and given the database schema, it can
352 be used to garentee that operations performed in memory are valid
353 against a standards compliant database. It has numerious uses,
354 translation between two databases with different schemas an
355 example of where it finds natural usage. For an example
356 application @see <http://tdir.sourceforge.net> tdir *)
357
358 (** an ordered oid type, for placing oids in sets *)
187359 module OrdOid :
188360 sig
189361 type t = Ldap_schemaparser.Oid.t
190362 val compare : t -> t -> int
191363 end
192364
365 (** A set of Oids @deprecated the name is historical, and may be changed *)
193366 module Setstr :
194 sig
195 type elt = OrdOid.t
196 type t = Set.Make(OrdOid).t
197 val empty : t
198 val is_empty : t -> bool
199 val mem : elt -> t -> bool
200 val add : elt -> t -> t
201 val singleton : elt -> t
202 val remove : elt -> t -> t
203 val union : t -> t -> t
204 val inter : t -> t -> t
205 val diff : t -> t -> t
206 val compare : t -> t -> int
207 val equal : t -> t -> bool
208 val subset : t -> t -> bool
209 val iter : (elt -> unit) -> t -> unit
210 val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
211 val for_all : (elt -> bool) -> t -> bool
212 val exists : (elt -> bool) -> t -> bool
213 val filter : (elt -> bool) -> t -> t
214 val partition : (elt -> bool) -> t -> t * t
215 val cardinal : t -> int
216 val elements : t -> elt list
217 val min_elt : t -> elt
218 val max_elt : t -> elt
219 val choose : t -> elt
220 val split : elt -> t -> t * bool * t
221 end
222
223 type scflavor = Optimistic | Pessimistic
224
225 (** given a name of an attribute, return its oid *)
367 sig
368 type elt = OrdOid.t
369 type t = Set.Make(OrdOid).t
370 val empty : t
371 val is_empty : t -> bool
372 val mem : elt -> t -> bool
373 val add : elt -> t -> t
374 val singleton : elt -> t
375 val remove : elt -> t -> t
376 val union : t -> t -> t
377 val inter : t -> t -> t
378 val diff : t -> t -> t
379 val compare : t -> t -> int
380 val equal : t -> t -> bool
381 val subset : t -> t -> bool
382 val iter : (elt -> unit) -> t -> unit
383 val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
384 val for_all : (elt -> bool) -> t -> bool
385 val exists : (elt -> bool) -> t -> bool
386 val filter : (elt -> bool) -> t -> t
387 val partition : (elt -> bool) -> t -> t * t
388 val cardinal : t -> int
389 val elements : t -> elt list
390 val min_elt : t -> elt
391 val max_elt : t -> elt
392 val choose : t -> elt
393 val split : elt -> t -> t * bool * t
394 end
395
396 (** The type of schema checking to perform in
397 {!Ldap_ooclient.scldapentry}. Normally this is picked
398 automatically, however it can be overridden in some cases. *)
399 type scflavor =
400 Optimistic
401 (** Add missing attributes to make the object consistant, or add
402 objectclasses in order to make illegal attribues legal *)
403 | Pessimistic
404 (** Delete objectclasses which must attributes which are
405 missing, and delete illegal attributes. *)
406
407 (** given a name of an attribute name (canonical or otherwise), return
408 its oid @raise Invalid_attribute If the attribute is not found in the schema. *)
226409 val attrToOid :
227410 Ldap_schemaparser.schema ->
228411 Ldap_schemaparser.Lcstring.t -> Ldap_schemaparser.Oid.t
229412
230 (** given the oid of an attribute, return its canonical name *)
413 (** given the oid of an attribute, return its canonical name @raise
414 Invalid_attribute If the attribute is not found in the schema. *)
231415 val oidToAttr : Ldap_schemaparser.schema -> Ldap_schemaparser.Oid.t -> string
232416
233 (** given a name of an objectclass, return its oid *)
417 (** given a name of an objectclass (canonical or otherwise), return
418 its oid. @raise Invalid_objectclass If the objectclass is not
419 found in the schema. *)
234420 val ocToOid :
235421 Ldap_schemaparser.schema ->
236422 Ldap_schemaparser.Lcstring.t -> Ldap_schemaparser.Oid.t
237423
238 (** given the oid of an objectclass, return its canonical name *)
424 (** given the oid of an objectclass, return its canonical name @raise
425 Invalid_objectclass If the objectclass is not found in the
426 schema. *)
239427 val oidToOc : Ldap_schemaparser.schema -> Ldap_schemaparser.Oid.t -> string
240428
241 (** get an objectclass structure by one of its names *)
429 (** get an objectclass structure by one of its names (canonical or
430 otherwise, however getting it by canonical name is currently much
431 faster) @raise Invalid_objectclass If the objectclass is not found
432 in the schema. *)
242433 val getOc :
243434 Ldap_schemaparser.schema ->
244435 Ldap_schemaparser.Lcstring.t -> Ldap_schemaparser.objectclass
245436
246 (** get an attr structure by one of its names *)
437 (** get an attr structure by one of its names (canonical or otherwise,
438 however getting it by canonical name is currently much faster)
439 @raise Invalid_attribute If the attribute is not found in the
440 schema. *)
247441 val getAttr :
248442 Ldap_schemaparser.schema ->
249443 Ldap_schemaparser.Lcstring.t -> Ldap_schemaparser.attribute
250444
251 (** equate attributes by oid. This allows aliases to be handled
252 correctly, for example "uid" and "userID" are actually the same
253 attribute. *)
445 (** equate attributes by oid. This allows non canonical names to be
446 handled correctly, for example "uid" and "userID" are actually the
447 same attribute. @raise Invalid_attribute If either attribute is
448 not found in the schema. *)
254449 val equateAttrs :
255450 Ldap_schemaparser.schema ->
256451 Ldap_schemaparser.Lcstring.t -> Ldap_schemaparser.Lcstring.t -> bool
262457
263458 class scldapentry :
264459 Ldap_schemaparser.schema ->
265 object
266 method add : op_lst -> unit
267 method attributes : string list
268 method changes : (Ldap_types.modify_optype * string * string list) list
269 method changetype : changetype
270 method delete : op_lst -> unit
271 method dn : string
272 method exists : string -> bool
273 method flush_changes : unit
274 method get_value : string -> string list
275 method diff : ldapentry_t -> (Ldap_types.modify_optype * string * string list) list
276 method is_allowed : string -> bool
277 method is_missing : string -> bool
278 method list_allowed : Setstr.elt list
279 method list_missing : Setstr.elt list
280 method list_present : Setstr.elt list
281 method modify :
282 (Ldap_types.modify_optype * string * string list) list -> unit
283 method of_entry : ?scflavor:scflavor -> ldapentry -> unit
284 method print : unit
285 method replace : op_lst -> unit
286 method set_changetype : changetype -> unit
287 method set_dn : string -> unit
288 end
289
460 object
461 (** {2 New Methods} *)
462
463 (** Returns true if the attributed specified is allowed by the
464 current set of objectclasses present on the entry. *)
465 method is_allowed : string -> bool
466
467 (** Returns true if the attribute specified is a must, but is not
468 currently present. *)
469 method is_missing : string -> bool
470
471 (** Return a list of all attributes allowed on the entry (by oid) *)
472 method list_allowed : Setstr.elt list
473
474 (** Return a list of all missing attributes (by oid) *)
475 method list_missing : Setstr.elt list
476
477 (** Return a list of all present attributes. In contrast to the
478 [attributes] method, this method ignores missing required
479 attributes and just returns those attributes which are actually
480 present. *)
481 method list_present : Setstr.elt list
482
483 (** Given an {!Ldap_ooclient.ldapentry} copy all of it's data into
484 the current object, and perform a schema check.
485
486 @param scflavor Default [Pessimistic] The schema checking
487 bias, see {!Ldap_ooclient.scflavor} *)
488 method of_entry : ?scflavor:scflavor -> ldapentry -> unit
489
490 (** {2 Inherited Methods} *)
491
492 (** Add values to the entry, just as
493 {!Ldap_ooclient.ldapentry.add}, However, after the add is
494 complete the schema checker is run in [Optimistic] mode. see
495 {!Ldap_ooclient.scflavor} *)
496 method add : op_lst -> unit
497
498 (** Same as {!Ldap_ooclient.ldapentry.add}, except that the schema
499 checker is run in [Pessimistic] mode after the operation is
500 complete. see {!Ldap_ooclient.scflavor} *)
501 method delete : op_lst -> unit
502
503 (** Same as {!Ldap_ooclient.ldapentry.replace} except that once
504 the replace has completed the schema checker is run again in
505 [Optimistic] mode. See {!Ldap_ooclient.scflavor} *)
506 method replace : op_lst -> unit
507
508 (** Same as {!Ldap_ooclient.ldapentry.attributes}, except that the
509 returned list contains attributes which may not yet exist on
510 the entry. For example musts which are not yet present will be
511 listed. *)
512 method attributes : string list
513
514 (** Same as {!Ldap_ooclient.ldapentry.exists} except that it
515 refrences attributes which may not yet exist. For example musts
516 which are not yet present. *)
517 method exists : string -> bool
518
519 (** Same as {!Ldap_ooclient.ldapentry.get_value}, except that
520 attributes which do not yet exists may be referenced. For example
521 a must which has not yet been satisfied will return [["required"]]
522 when [get_value] is called on it. *)
523 method get_value : string -> string list
524
525 (** Same as {!Ldap_ooclient.ldapentry.modify} except that the
526 schema checker is run in [Pessimistic] mode after the
527 modification is applied. see {!Ldap_ooclient.scflavor}. *)
528 method modify :
529 (Ldap_types.modify_optype * string * string list) list -> unit
530
531 (** Same as {!Ldap_ooclient.ldapentry.changes} except that changes
532 made by the schema checker may also be listed. *)
533 method changes : (Ldap_types.modify_optype * string * string list) list
534
535 (** Same as {!Ldap_ooclient.ldapentry.changetype} *)
536 method changetype : changetype
537
538 (** Same as {!Ldap_ooclient.ldapentry.dn} *)
539 method dn : string
540
541 (** Same as {!Ldap_ooclient.ldapentry.flush_changes} *)
542 method flush_changes : unit
543
544 (** Same as {!Ldap_ooclient.ldapentry.diff} *)
545 method diff : ldapentry_t -> (Ldap_types.modify_optype * string * string list) list
546
547 (** @deprecated Same as {!Ldap_ooclient.ldapentry.print}, except
548 that it prints attributes which may not yet be present on the
549 object. For example, if the object has unsatisfied musts, it will
550 print "attrname: required" for that attribute. *)
551 method print : unit
552
553 (** Same as {!Ldap_ooclient.ldapentry.set_changetype} *)
554 method set_changetype : changetype -> unit
555
556 (** Same as {!Ldap_ooclient.ldapentry.set_dn} *)
557 method set_dn : string -> unit
558 end
559
560 (** {1 Schema Aware Entry for Account Managment} A derivative of
561 {!Ldap_ooclient.scldapentry} which includes abstractions for
562 managing user accounts in the directory. This class is
563 experimantal, and may be drastically changed in the next version.
564 As with all experimental code, use with caution. A few of its features.
565
566 {ul
567 {- Loosely dependant attributes: Many attributes are derived
568 from others via a function. ldapaccount allows you to codify
569 that relationship by providing an attribute generator
570 ({!Ldap_ooclient.generator}) for the attribute, which will
571 be used to derive it's value except in the case that it is
572 specified explicitly}
573 {- Attribute and Generator Grouping: via the service abstraction.
574 Allows you to group attributes together with generators and
575 default values in interesting ways. You can then assign the
576 whole grouping a name, and refer to it by that name. See
577 {!Ldap_ooclient.service}}
578 {- Difference Based: Service operations are difference based,
579 all applications of service operations compute the delta between
580 the current object, and what the service requires. The minumum set
581 of changes necessary to satisfy the service are applied to the object.}
582 {- Idempotentcy: As a result of being difference based,
583 Service operations are itempotent. For example,
584 adding a service twice has no effect on the object. It will
585 not queue changes for modification to the directory, and it
586 will not change the object in memory. Deleting a service
587 twice has no effect...etc}}
588
589 *)
590
591 (** The structure of a generator *)
290592 type generator = {
291 gen_name : string;
593 (** The name of the generator, this should also be its key in the hashtbl *)
594 gen_name : string;
595
596 (** A list of names of attributes which are required by this
597 generator. The names need not be canonical. *)
292598 required : string list;
599
600 (** A function which returns a list of values for the attribute,
601 given the entire object. *)
293602 genfun : ldapentry_t -> string list;
294603 }
295604
605 (** The structure of a service *)
296606 type service = {
607 (** The name of the service, should also be its key in the hashtbl. *)
297608 svc_name : string;
609
610 (** A list of attributes and values which must be present for the
611 service to be satisfied. *)
298612 static_attrs : (string * string list) list;
613
614 (** A list of attributes to generate. *)
299615 generate_attrs : string list;
616
617 (** A list of services on which this service depends. *)
300618 depends : string list;
301619 }
620
621 (** The type of error raised by attribute generators *)
302622 type generation_error =
303623 Missing_required of string list
304624 | Generator_error of string
305625
626 (** You've asked it to generate an attribute (in a service) which
627 doesn't have a generator *)
306628 exception No_generator of string
629
630 (** Generator has failed because of some kind of error *)
307631 exception Generation_failed of generation_error
632
633 (** The service you're talking about doesn't exist *)
308634 exception No_service of string
635
636 (** A service which the one you tried to add depends on doesn't exists *)
309637 exception Service_dep_unsatisfiable of string
638
639 (** Your generator depends on an attribute which isn't in the schema *)
310640 exception Generator_dep_unsatisfiable of string * string
641
642 (** You have detached cycles in your generator dependancy lists *)
311643 exception Cannot_sort_dependancies of string list
312644
313645 class ldapaccount :
314646 Ldap_schemaparser.schema ->
315 (string, generator) Hashtbl.t ->
316 (string, service) Hashtbl.t ->
317 object
318 method adapt_service : service -> service
319 method add : op_lst -> unit
320 method add_generate : string -> unit
321 method add_service : string -> unit
322 method attributes : string list
323 method changes : (Ldap_types.modify_optype * string * string list) list
324 method changetype : changetype
325 method delete : op_lst -> unit
326 method delete_generate : string -> unit
327 method delete_service : string -> unit
328 method dn : string
329 method diff : ldapentry_t -> (Ldap_types.modify_optype * string * string list) list
330 method exists : string -> bool
331 method flush_changes : unit
332 method generate : unit
333 method get_value : string -> string list
334 method is_allowed : string -> bool
335 method is_missing : string -> bool
336 method list_allowed : Setstr.elt list
337 method list_missing : Setstr.elt list
338 method list_present : Setstr.elt list
339 method modify :
340 (Ldap_types.modify_optype * string * string list) list -> unit
341 method of_entry : ?scflavor:scflavor -> ldapentry -> unit
342 method print : unit
343 method replace : op_lst -> unit
344 method service_exists : string -> bool
345 method services_present : string list
346 method set_changetype : changetype -> unit
347 method set_dn : string -> unit
348 end
647 (string, generator) Hashtbl.t ->
648 (string, service) Hashtbl.t ->
649 object
650
651 (** {2 Account Manipulation Methods} *)
652
653 (** add the named service to the object, this also adds all the
654 services depended upon by the named service. *)
655 method add_service : string -> unit
656
657 (** Delete the named service. This will also delete all services
658 which depend on it, either directly or indirectly *)
659 method delete_service : string -> unit
660
661 (** Run service through the delta engine to find out what changes
662 would actually be applied to this object *)
663 method adapt_service : service -> service
664
665 (** Tests whether the named service is satisfied by the current
666 entry. A service is satisfied if no changes would result from
667 adding it to the entry. *)
668 method service_exists : string -> bool
669
670 (** Return a list of all the named services which are satisfied by
671 the current entry. *)
672 method services_present : string list
673
674 (** add the named attribute to the list of attributes to be generated *)
675 method add_generate : string -> unit
676
677 (** Delete the named attribute from the list of attributes to generate *)
678 method delete_generate : string -> unit
679
680 (** Run the generation functions on the list of attributes to be
681 generated, saving the results in the entry. You must run this
682 method in order to run any generators at all. *)
683 method generate : unit
684
685 (** {2 Inherited Methods} Unless explicitly stated, these methods
686 do exactly the same thing as in {!Ldap_ooclient.scldapentry} *)
687
688 (** Missing attributes may be marked for generation. *)
689 method add : op_lst -> unit
690 method attributes : string list
691 method changes : (Ldap_types.modify_optype * string * string list) list
692 method changetype : changetype
693 method delete : op_lst -> unit
694 method dn : string
695 method diff : ldapentry_t -> (Ldap_types.modify_optype * string * string list) list
696 method exists : string -> bool
697 method flush_changes : unit
698
699 (** If a missing attribute is marked for generation its value will
700 be ["generate"] instead of ["required"] *)
701 method get_value : string -> string list
702 method is_allowed : string -> bool
703 method is_missing : string -> bool
704 method list_allowed : Setstr.elt list
705 method list_missing : Setstr.elt list
706 method list_present : Setstr.elt list
707 method modify :
708 (Ldap_types.modify_optype * string * string list) list -> unit
709 method of_entry : ?scflavor:scflavor -> ldapentry -> unit
710
711 (** @deprecated Missing required attributes which will be
712 generated are shown as "attrname: generate" instead of
713 "attrname: required" *)
714 method print : unit
715 method replace : op_lst -> unit
716 method set_changetype : changetype -> unit
717 method set_dn : string -> unit
718 end
0 open Ldap_mutex
1 open Ldap_ooclient
2 open Ldap_types
3
4 type txn = {
5 mutable dead: bool;
6 entries: (string, (ldapentry_t * ldapentry_t)) Hashtbl.t
7 }
8
9 exception Rollback of exn * ((ldapentry_t * ldapentry_t) list)
10 exception Txn_commit_failure of string * exn * ldapentry_t list option
11 exception Txn_rollback_failure of string * exn
12
13 class ldapadvisorytxcon
14 ?(connect_timeout=1)
15 ?(referral_policy=`RETURN)
16 ?(version = 3)
17 hosts binddn bindpw mutextbldn =
18 let copy_entry entry =
19 let new_entry = new ldapentry in
20 new_entry#set_dn (entry#dn);
21 List.iter
22 (fun attr -> new_entry#add [(attr, entry#get_value attr)])
23 entry#attributes;
24 new_entry
25 in
26 object (self)
27 inherit ldapcon ~connect_timeout ~referral_policy ~version hosts as super
28 initializer
29 super#bind binddn ~cred:bindpw
30
31 val lock_table = new object_lock_table hosts binddn bindpw mutextbldn
32
33 method private check_dead txn =
34 if txn.dead then
35 raise
36 (LDAP_Failure
37 (`LOCAL_ERROR,
38 "this transaction is dead, create a new one",
39 {ext_matched_dn="";ext_referral=None}))
40
41 method begin_txn = {dead=false;entries=Hashtbl.create 1}
42
43 method associate_entry txn (entry: ldapentry_t) =
44 self#check_dead txn;
45 let dn = Ldap_dn.canonical_dn entry#dn in
46 if Hashtbl.mem txn.entries dn then
47 raise
48 (LDAP_Failure
49 (`LOCAL_ERROR,
50 "dn: " ^ dn ^ " is already part of this transaction",
51 {ext_matched_dn="";ext_referral=None}))
52 else
53 if entry#changes = [] then begin
54 lock_table#lock (Ldap_dn.of_string dn);
55 Hashtbl.add txn.entries dn ((copy_entry entry), (entry :> ldapentry_t))
56 end else
57 raise
58 (LDAP_Failure
59 (`LOCAL_ERROR,
60 "this entry has been changed since it was downloaded " ^
61 "commit your current changes, and then add the entry to " ^
62 "this transaction",
63 {ext_matched_dn="";ext_referral=None}))
64
65 method associate_entries txn entries =
66 List.iter (self#associate_entry txn) entries
67
68 method disassociate_entry txn (entry: ldapentry_t) =
69 self#check_dead txn;
70 let dn = Ldap_dn.canonical_dn entry#dn in
71 if Hashtbl.mem txn.entries dn then begin
72 Hashtbl.remove txn.entries dn;
73 lock_table#unlock (Ldap_dn.of_string dn);
74 end else
75 raise
76 (LDAP_Failure
77 (`LOCAL_ERROR,
78 "dn: " ^ dn ^ " is not part of this transaction",
79 {ext_matched_dn="";ext_referral=None}))
80
81 method disassociate_entries txn entries =
82 List.iter (self#disassociate_entry txn) entries
83
84 method commit_txn txn =
85 self#check_dead txn;
86 txn.dead <- true;
87 try
88 List.iter
89 (fun (_, e) -> lock_table#unlock (Ldap_dn.of_string e#dn))
90 (Hashtbl.fold
91 (fun k (original_entry, modified_entry) successful_so_far ->
92 try
93 (match modified_entry#changetype with
94 `MODIFY -> super#update_entry modified_entry
95 | `ADD -> super#add modified_entry
96 | `DELETE -> super#delete modified_entry#dn
97 | `MODRDN ->
98 super#modrdn
99 original_entry#dn
100 (Ldap_dn.to_string
101 [(List.hd
102 (Ldap_dn.of_string modified_entry#dn))])
103 | `MODDN ->
104 let dn = Ldap_dn.of_string modified_entry#dn in
105 super#modrdn
106 original_entry#dn
107 (Ldap_dn.to_string [List.hd dn])
108 ~newsup:(Some (Ldap_dn.to_string (List.tl dn))));
109 (original_entry, modified_entry) :: successful_so_far
110 with exn ->
111 raise (Rollback (exn, successful_so_far)))
112 txn.entries
113 [])
114 with Rollback (exn, successful_so_far) ->
115 (Hashtbl.iter (fun k (_, e) -> e#flush_changes) txn.entries);
116 (match
117 ((Hashtbl.iter (* rollback everything in memory *)
118 (fun k (original_entry, modified_entry) ->
119 match modified_entry#changetype with
120 `MODIFY -> modified_entry#modify (original_entry#diff modified_entry)
121 | `ADD -> ()
122 | `DELETE -> ()
123 | `MODRDN ->
124 if not (List.mem (original_entry, modified_entry) successful_so_far) then
125 modified_entry#set_dn original_entry#dn
126 | `MODDN ->
127 if not (List.mem (original_entry, modified_entry) successful_so_far) then
128 modified_entry#set_dn original_entry#dn)
129 txn.entries);
130 (List.fold_left (* rollback in the directory only what we commited *)
131 (fun not_rolled_back (original_entry, modified_entry) ->
132 try
133 (match modified_entry#changetype with
134 `MODIFY -> super#update_entry modified_entry
135 | `ADD -> super#delete modified_entry#dn
136 | `DELETE -> super#add modified_entry
137 | `MODRDN ->
138 super#modrdn
139 (modified_entry#dn)
140 (Ldap_dn.to_string
141 [List.hd (Ldap_dn.of_string original_entry#dn)])
142 | `MODDN ->
143 super#modrdn
144 (modified_entry#dn)
145 (Ldap_dn.to_string
146 [List.hd (Ldap_dn.of_string original_entry#dn)])
147 ~newsup:(Some
148 (Ldap_dn.to_string
149 (List.tl
150 (Ldap_dn.of_string
151 original_entry#dn)))));
152 not_rolled_back
153 with _ -> modified_entry :: not_rolled_back)
154 []
155 successful_so_far))
156 with
157 [] ->
158 Hashtbl.iter
159 (fun k (e, _) -> lock_table#unlock (Ldap_dn.of_string e#dn))
160 txn.entries;
161 (Hashtbl.iter (fun k (_, e) -> e#flush_changes) txn.entries);
162 raise (Txn_commit_failure ("rollback successful", exn, None))
163 | not_rolled_back ->
164 Hashtbl.iter
165 (fun k (e, _) -> lock_table#unlock (Ldap_dn.of_string e#dn))
166 txn.entries;
167 (Hashtbl.iter (fun k (_, e) -> e#flush_changes) txn.entries);
168 raise
169 (Txn_commit_failure
170 ("rollback failed", exn,
171 Some not_rolled_back)))
172
173 method rollback_txn txn =
174 txn.dead <- true;
175 Hashtbl.iter
176 (fun k (original_entry, modified_entry) ->
177 try
178 lock_table#unlock (Ldap_dn.of_string original_entry#dn);
179 modified_entry#modify (original_entry#diff modified_entry);
180 modified_entry#flush_changes
181 with exn -> raise (Txn_rollback_failure ("rollback failed", exn)))
182 txn.entries
183 end
0 open Ldap_ooclient
1
2 (** the abstract type of a transaction *)
3 type txn
4
5 (** raised when a commit fails, contains a list of entries which were
6 not rolled back successfully only if rollback failed as well,
7 otherwise None *)
8 exception Txn_commit_failure of string * exn * ldapentry_t list option
9
10 (** raised when an explicit rollback fails *)
11 exception Txn_rollback_failure of string * exn
12
13 (** A subclass of ldapcon which implements an experimental interface
14 to draft_zeilenga_ldap_txn. A draft standard for multi object
15 transactions over the ldap protocol. This class can only implement
16 advisory transactions because it must depend on the advisory
17 locking mechanisms for the transactions to be consistant. You use
18 this class by calling begin_txn to get a transaction id, and then
19 associating a set of ldapentry objects with the transaction by
20 calling associate_entry_with_txn. You are then free to modify
21 those entries in any way you like, and when you are done, you can
22 either call commit_txn, or rollback_txn. Commit will commit the
23 changes of all the entries associated with the transaction to the
24 database. For other writers which obey advisory locking the commit
25 operation is atomic. For readers which are willing to obey
26 advisory locking is atomic. If the commit fails, a full rollback
27 occurrs, including all changes made to the directory. For example
28 in a set of N entries in a transaction, if the modificiation of
29 the nth entry fails to commit, then the modifications to all the
30 previous entries, which have already been made in the directory,
31 are undone. It is important to note that if advisory locking is
32 not obeyed, rollback may not be successful. Rollback undoes all
33 the changes you've made in memory, and unlocks all the objects in
34 the transaction. After a transaction object has been commited or
35 rolled back it is considered "dead", and cannot be used again. *)
36 class ldapadvisorytxcon :
37 ?connect_timeout:int ->
38 ?referral_policy:[> `RETURN ] ->
39 ?version:int ->
40 string list -> string -> string -> string -> (* hosts binddn bindpw mutextbldn *)
41 object
42 method add : ldapentry -> unit
43 method bind :
44 ?cred:string -> ?meth:Ldap_funclient.authmethod -> string -> unit
45 method delete : string -> unit
46 method modify :
47 string ->
48 (Ldap_types.modify_optype * string * string list) list -> unit
49 method modrdn : string -> ?deleteoldrdn:bool -> ?newsup:string option -> string -> unit
50 method rawschema : ldapentry
51 method schema : Ldap_schemaparser.schema
52 method search :
53 ?scope:Ldap_types.search_scope ->
54 ?attrs:string list ->
55 ?attrsonly:bool -> ?base:string -> string -> ldapentry list
56 method search_a :
57 ?scope:Ldap_types.search_scope ->
58 ?attrs:string list ->
59 ?attrsonly:bool -> ?base:string -> string -> (?abandon:bool -> unit -> ldapentry)
60 method unbind : unit
61 method update_entry : ldapentry -> unit
62 method begin_txn : txn
63 method associate_entry : txn -> ldapentry_t -> unit
64 method associate_entries : txn -> ldapentry_t list -> unit
65 method disassociate_entry : txn -> ldapentry_t -> unit
66 method disassociate_entries : txn -> ldapentry_t list -> unit
67 method commit_txn : txn -> unit
68 method rollback_txn : txn -> unit
69 end
290290 url_filter: filter option;
291291 url_ext: ((bool * string * string) list) option;
292292 }
293
294 (** see draft-zeilenga-ldap-grouping-xx Ldap grouping is a way of
295 telling the server that a set of ldap operations is related, its most
296 interesting application is transactions across multiple objects.
297 This draft is not yet implemented by any present day ldap server *)
298 type ldap_grouping_type = [ `LDAP_GROUP_TXN ]
299
300 (** a cookie that is sent with every ldap operation which is part of a
301 group *)
302 type ldap_grouping_cookie
290290 url_filter: filter option;
291291 url_ext: ((bool * string * string) list) option;
292292 }
293
294 (** see draft-zeilenga-ldap-grouping-xx Ldap grouping is a way of
295 telling the server that a set of ldap operations is related, its most
296 interesting application is transactions across multiple objects.
297 This draft is not yet implemented by any present day ldap server *)
298 type ldap_grouping_type = [ `LDAP_GROUP_TXN ]
299
300 (** a cookie that is sent with every ldap operation which is part of a
301 group *)
302 type ldap_grouping_cookie
9595 with End -> !objects
9696 in
9797 List.fold_left f v objects
98
98
9999 class ldif ?(in_ch=stdin) ?(out_ch=stdout) () =
100100 object (self)
101101 val in_ch = {stream=(Stream.of_channel in_ch);buf=Buffer.create 256;line=1}
125125 Buffer.clear outbuf;
126126 raise exn
127127 end
128
129 let read_ldif_file file =
130 let fd = open_in file in
131 try
132 let ldif = new ldif ~in_ch:fd () in
133 let entries = fold (fun l e -> e :: l) ldif [] in
134 close_in fd;
135 entries
136 with exn -> close_in fd;raise exn
137
138 let write_ldif_file file entries =
139 let fd = open_out file in
140 try
141 let ldif = new ldif ~out_ch:fd () in
142 List.iter ldif#write_entry entries;
143 close_out fd
144 with exn -> close_out fd;raise exn
3636 val entry2ldif : ?ext:bool -> Buffer.t ->
3737 < attributes : string list; dn : string; get_value : string ->
3838 string list; .. > -> Buffer.t
39
40 (** read all the entries in the named ldif file and return them in a list *)
41 val read_ldif_file : string -> Ldap_ooclient.ldapentry list
42
43 (** write all the entries in the given list to the named file in ldif format *)
44 val write_ldif_file : string -> Ldap_ooclient.ldapentry list -> unit
3945
4046 class ldif:
4147 ?in_ch:Pervasives.in_channel ->
77 SUBSTR caseIgnoreSubstringsMatch
88 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{512}
99 SINGLE-VALUE )
10
11 # used to implement object locking tables
12 # in the case of a modify rdn operation alternative
13 # locking mechanisms should be used.
14 attributetype ( 1.3.6.1.4.1.4754.10.39
15 NAME 'lockedObject'
16 EQUALITY distinguishedNameMatch
17 SYNTAX 1.3.6.1.4.1.1466.115.121.1.12{512} )
1018
1119 attributetype ( 1.3.6.1.4.1.4754.10.38
1220 NAME 'mutexName'
2230 STRUCTURAL
2331 MAY ( mutexName $
2432 description $
33 lockedObject $
2534 mutexLocked ) )