ldap-client/Ldap-Client-Search.html
2015-04-11 16:39:58 +00:00

15 lines
29 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ldap.Client.Search</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Ldap-Client-Search.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Ldap-Client-Search.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ldap-client-0.1.0: Pure Haskell LDAP Client Library</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Ldap.Client.Search</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p><a href="https://tools.ietf.org/html/rfc4511#section-4.5">Search</a> operation.</p><p>This operation comes in four flavours:</p><ul><li>synchronous, exception throwing (<code><a href="Ldap-Client-Search.html#v:search">search</a></code>)</li><li>synchronous, returning <code><a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a></code> <code><a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a></code> <code>()</code> (<code><a href="Ldap-Client-Search.html#v:searchEither">searchEither</a></code>)</li><li>asynchronous, <code><a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a></code> based (<code><a href="Ldap-Client-Search.html#v:searchAsync">searchAsync</a></code>)</li><li>asynchronous, <code><a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a></code> based (<code><a href="Ldap-Client-Search.html#v:searchAsyncSTM">searchAsyncSTM</a></code>)</li></ul><p>Of those, the first one (<code><a href="Ldap-Client-Search.html#v:search">search</a></code>) is probably the most useful for the typical usecase.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:search">search</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -&gt; <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> -&gt; <a href="Ldap-Client-Search.html#t:Filter">Filter</a> -&gt; [<a href="Ldap-Client-Internal.html#t:Attr">Attr</a>] -&gt; <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> [<a href="Ldap-Client-Search.html#t:SearchEntry">SearchEntry</a>]</li><li class="src short"><a href="#v:searchEither">searchEither</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -&gt; <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> -&gt; <a href="Ldap-Client-Search.html#t:Filter">Filter</a> -&gt; [<a href="Ldap-Client-Internal.html#t:Attr">Attr</a>] -&gt; <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a> <a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a> [<a href="Ldap-Client-Search.html#t:SearchEntry">SearchEntry</a>])</li><li class="src short"><a href="#v:searchAsync">searchAsync</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -&gt; <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> -&gt; <a href="Ldap-Client-Search.html#t:Filter">Filter</a> -&gt; [<a href="Ldap-Client-Internal.html#t:Attr">Attr</a>] -&gt; <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="Ldap-Client-Search.html#t:Async">Async</a> [<a href="Ldap-Client-Search.html#t:SearchEntry">SearchEntry</a>])</li><li class="src short"><a href="#v:searchAsyncSTM">searchAsyncSTM</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -&gt; <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> -&gt; <a href="Ldap-Client-Search.html#t:Filter">Filter</a> -&gt; [<a href="Ldap-Client-Internal.html#t:Attr">Attr</a>] -&gt; <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="Ldap-Client-Search.html#t:Async">Async</a> [<a href="Ldap-Client-Search.html#t:SearchEntry">SearchEntry</a>])</li><li class="src short"><span class="keyword">data</span> <a href="#t:Search">Search</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Mod">Mod</a> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:Scope">Scope</a><ul class="subs"><li>= <a href="#v:BaseObject">BaseObject</a></li><li>| <a href="#v:SingleLevel">SingleLevel</a></li><li>| <a href="#v:WholeSubtree">WholeSubtree</a></li></ul></li><li class="src short"><a href="#v:scope">scope</a> :: <a href="Ldap-Client-Search.html#t:Scope">Scope</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a></li><li class="src short"><a href="#v:size">size</a> :: <a href="http://hackage.haskell.org/package/base/docs/Data-Int.html#t:Int32">Int32</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a></li><li class="src short"><a href="#v:time">time</a> :: <a href="http://hackage.haskell.org/package/base/docs/Data-Int.html#t:Int32">Int32</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a></li><li class="src short"><a href="#v:typesOnly">typesOnly</a> :: <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:DerefAliases">DerefAliases</a><ul class="subs"><li>= <a href="#v:NeverDerefAliases">NeverDerefAliases</a></li><li>| <a href="#v:DerefInSearching">DerefInSearching</a></li><li>| <a href="#v:DerefFindingBaseObject">DerefFindingBaseObject</a></li><li>| <a href="#v:DerefAlways">DerefAlways</a></li></ul></li><li class="src short"><a href="#v:derefAliases">derefAliases</a> :: <a href="Ldap-Client-Search.html#t:DerefAliases">DerefAliases</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Filter">Filter</a><ul class="subs"><li>= <a href="#v:Not">Not</a> !<a href="Ldap-Client-Search.html#t:Filter">Filter</a></li><li>| <a href="#v:And">And</a> !(<a href="Ldap-Client.html#t:NonEmpty">NonEmpty</a> <a href="Ldap-Client-Search.html#t:Filter">Filter</a>)</li><li>| <a href="#v:Or">Or</a> !(<a href="Ldap-Client.html#t:NonEmpty">NonEmpty</a> <a href="Ldap-Client-Search.html#t:Filter">Filter</a>)</li><li>| <a href="#v:Present">Present</a> !<a href="Ldap-Client-Internal.html#t:Attr">Attr</a></li><li>| !<a href="Ldap-Client-Internal.html#t:Attr">Attr</a> <a href="#v::-61-">:=</a> !<a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a></li><li>| !<a href="Ldap-Client-Internal.html#t:Attr">Attr</a> <a href="#v::-62--61-">:&gt;=</a> !<a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a></li><li>| !<a href="Ldap-Client-Internal.html#t:Attr">Attr</a> <a href="#v::-60--61-">:&lt;=</a> !<a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a></li><li>| !<a href="Ldap-Client-Internal.html#t:Attr">Attr</a> <a href="#v::-126--61-">:~=</a> !<a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a></li><li>| !<a href="Ldap-Client-Internal.html#t:Attr">Attr</a> <a href="#v::-61--42-">:=*</a> !(<a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a>, [<a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a>], <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a>)</li><li>| (<a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a>, <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a>, <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a>) <a href="#v:::-61-">::=</a> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:SearchEntry">SearchEntry</a> = <a href="#v:SearchEntry">SearchEntry</a> !<a href="Ldap-Client-Internal.html#t:Dn">Dn</a> !(<a href="Ldap-Client-Internal.html#t:AttrList">AttrList</a> [])</li><li class="src short"><span class="keyword">data</span> <a href="#t:Async">Async</a> a</li><li class="src short"><a href="#v:wait">wait</a> :: <a href="Ldap-Client-Search.html#t:Async">Async</a> a -&gt; <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a> <a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a> a)</li><li class="src short"><a href="#v:waitSTM">waitSTM</a> :: <a href="Ldap-Client-Search.html#t:Async">Async</a> a -&gt; <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a> <a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a> a)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:search" class="def">search</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -&gt; <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> -&gt; <a href="Ldap-Client-Search.html#t:Filter">Filter</a> -&gt; [<a href="Ldap-Client-Internal.html#t:Attr">Attr</a>] -&gt; <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> [<a href="Ldap-Client-Search.html#t:SearchEntry">SearchEntry</a>] <a href="src/Ldap-Client-Search.html#search" class="link">Source</a></p><div class="doc"><p>Perform the Search operation synchronously. Raises <code><a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a></code> on failures.</p></div></div><div class="top"><p class="src"><a name="v:searchEither" class="def">searchEither</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -&gt; <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> -&gt; <a href="Ldap-Client-Search.html#t:Filter">Filter</a> -&gt; [<a href="Ldap-Client-Internal.html#t:Attr">Attr</a>] -&gt; <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a> <a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a> [<a href="Ldap-Client-Search.html#t:SearchEntry">SearchEntry</a>]) <a href="src/Ldap-Client-Search.html#searchEither" class="link">Source</a></p><div class="doc"><p>Perform the Search operation synchronously. Returns <code>Left e</code> where
<code>e</code> is a <code><a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a></code> on failures.</p></div></div><div class="top"><p class="src"><a name="v:searchAsync" class="def">searchAsync</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -&gt; <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> -&gt; <a href="Ldap-Client-Search.html#t:Filter">Filter</a> -&gt; [<a href="Ldap-Client-Internal.html#t:Attr">Attr</a>] -&gt; <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="Ldap-Client-Search.html#t:Async">Async</a> [<a href="Ldap-Client-Search.html#t:SearchEntry">SearchEntry</a>]) <a href="src/Ldap-Client-Search.html#searchAsync" class="link">Source</a></p><div class="doc"><p>Perform the Search operation asynchronously. Call <code><a href="Ldap-Client.html#v:wait">wait</a></code> to wait
for its completion.</p></div></div><div class="top"><p class="src"><a name="v:searchAsyncSTM" class="def">searchAsyncSTM</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -&gt; <a href="Ldap-Client-Internal.html#t:Dn">Dn</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> -&gt; <a href="Ldap-Client-Search.html#t:Filter">Filter</a> -&gt; [<a href="Ldap-Client-Internal.html#t:Attr">Attr</a>] -&gt; <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="Ldap-Client-Search.html#t:Async">Async</a> [<a href="Ldap-Client-Search.html#t:SearchEntry">SearchEntry</a>]) <a href="src/Ldap-Client-Search.html#searchAsyncSTM" class="link">Source</a></p><div class="doc"><p>Perform the Search operation asynchronously.</p><p>Don't wait for its completion (with <code><a href="Ldap-Client.html#v:waitSTM">waitSTM</a></code>) in the
same transaction you've performed it in.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Search" class="def">Search</a> <a href="src/Ldap-Client-Search.html#Search" class="link">Source</a></p><div class="doc"><p>Search options. Use <code><a href="Ldap-Client-Search.html#t:Mod">Mod</a></code> to change some of those.</p></div><div class="subs instances"><p id="control.i:Search" class="caption collapser" onclick="toggleSection('i:Search')">Instances</p><div id="section.i:Search" class="show"><table><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Data-Eq.html#t:Eq">Eq</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> <a href="src/Ldap-Client-Search.html#line-162" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Text-Show.html#t:Show">Show</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> <a href="src/Ldap-Client-Search.html#line-162" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Mod" class="def">Mod</a> a <a href="src/Ldap-Client-Search.html#Mod" class="link">Source</a></p><div class="doc"><p>Search modifier. Combine using <code><a href="http://hackage.haskell.org/package/semigroups/docs/Data-Semigroup.html#t:Semigroup">Semigroup</a></code> and/or <code><a href="http://hackage.haskell.org/package/base/docs/Data-Monoid.html#t:Monoid">Monoid</a></code> instance.</p></div><div class="subs instances"><p id="control.i:Mod" class="caption collapser" onclick="toggleSection('i:Mod')">Instances</p><div id="section.i:Mod" class="show"><table><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Data-Monoid.html#t:Monoid">Monoid</a> (<a href="Ldap-Client-Search.html#t:Mod">Mod</a> a) <a href="src/Ldap-Client-Search.html#line-202" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="http://hackage.haskell.org/package/semigroups/docs/Data-Semigroup.html#t:Semigroup">Semigroup</a> (<a href="Ldap-Client-Search.html#t:Mod">Mod</a> a) <a href="src/Ldap-Client-Search.html#line-199" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Scope" class="def">Scope</a> <a href="src/Ldap-Asn1-Type.html#Scope" class="link">Source</a></p><div class="doc"><p>Scope of the search to be performed.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:BaseObject" class="def">BaseObject</a></td><td class="doc"><p>Constrained to the entry named by baseObject.</p></td></tr><tr><td class="src"><a name="v:SingleLevel" class="def">SingleLevel</a></td><td class="doc"><p>Constrained to the immediate subordinates of the entry named by baseObject.</p></td></tr><tr><td class="src"><a name="v:WholeSubtree" class="def">WholeSubtree</a></td><td class="doc"><p>Constrained to the entry named by baseObject and to all its subordinates.</p></td></tr></table></div><div class="subs instances"><p id="control.i:Scope" class="caption collapser" onclick="toggleSection('i:Scope')">Instances</p><div id="section.i:Scope" class="show"><table><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Data-Eq.html#t:Eq">Eq</a> <a href="Ldap-Client-Search.html#t:Scope">Scope</a> <a href="src/Ldap-Asn1-Type.html#line-59" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Text-Show.html#t:Show">Show</a> <a href="Ldap-Client-Search.html#t:Scope">Scope</a> <a href="src/Ldap-Asn1-Type.html#line-59" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:scope" class="def">scope</a> :: <a href="Ldap-Client-Search.html#t:Scope">Scope</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> <a href="src/Ldap-Client-Search.html#scope" class="link">Source</a></p><div class="doc"><p>Scope of the search (default: <code>WholeSubtree</code>).</p></div></div><div class="top"><p class="src"><a name="v:size" class="def">size</a> :: <a href="http://hackage.haskell.org/package/base/docs/Data-Int.html#t:Int32">Int32</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> <a href="src/Ldap-Client-Search.html#size" class="link">Source</a></p><div class="doc"><p>Maximum number of entries to be returned as a result of the Search.
No limit if the value is <code>0</code> (default: <code>0</code>).</p></div></div><div class="top"><p class="src"><a name="v:time" class="def">time</a> :: <a href="http://hackage.haskell.org/package/base/docs/Data-Int.html#t:Int32">Int32</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> <a href="src/Ldap-Client-Search.html#time" class="link">Source</a></p><div class="doc"><p>Maximum time (in seconds) allowed for the Search. No limit if the value
is <code>0</code> (default: <code>0</code>).</p></div></div><div class="top"><p class="src"><a name="v:typesOnly" class="def">typesOnly</a> :: <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> <a href="src/Ldap-Client-Search.html#typesOnly" class="link">Source</a></p><div class="doc"><p>Whether Search results are to contain just attribute descriptions, or
both attribute descriptions and values (default: <code><a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#v:False">False</a></code>).</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:DerefAliases" class="def">DerefAliases</a> <a href="src/Ldap-Asn1-Type.html#DerefAliases" class="link">Source</a></p><div class="doc"><p>An indicator as to whether or not alias entries (as defined in
[RFC4512]) are to be dereferenced during stages of the Search
operation.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NeverDerefAliases" class="def">NeverDerefAliases</a></td><td class="doc"><p>Do not dereference aliases in searching or in locating the base object of the Search.</p></td></tr><tr><td class="src"><a name="v:DerefInSearching" class="def">DerefInSearching</a></td><td class="doc"><p>While searching subordinates of the base object, dereference any alias within the search scope.</p></td></tr><tr><td class="src"><a name="v:DerefFindingBaseObject" class="def">DerefFindingBaseObject</a></td><td class="doc"><p>Dereference aliases in locating the base object of the Search.</p></td></tr><tr><td class="src"><a name="v:DerefAlways" class="def">DerefAlways</a></td><td class="doc"><p>Dereference aliases both in searching and in locating the base object of the Search.</p></td></tr></table></div><div class="subs instances"><p id="control.i:DerefAliases" class="caption collapser" onclick="toggleSection('i:DerefAliases')">Instances</p><div id="section.i:DerefAliases" class="show"><table><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Data-Eq.html#t:Eq">Eq</a> <a href="Ldap-Client-Search.html#t:DerefAliases">DerefAliases</a> <a href="src/Ldap-Asn1-Type.html#line-69" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Text-Show.html#t:Show">Show</a> <a href="Ldap-Client-Search.html#t:DerefAliases">DerefAliases</a> <a href="src/Ldap-Asn1-Type.html#line-69" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:derefAliases" class="def">derefAliases</a> :: <a href="Ldap-Client-Search.html#t:DerefAliases">DerefAliases</a> -&gt; <a href="Ldap-Client-Search.html#t:Mod">Mod</a> <a href="Ldap-Client-Search.html#t:Search">Search</a> <a href="src/Ldap-Client-Search.html#derefAliases" class="link">Source</a></p><div class="doc"><p>Alias dereference policy (default: <code>NeverDerefAliases</code>).</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Filter" class="def">Filter</a> <a href="src/Ldap-Client-Search.html#Filter" class="link">Source</a></p><div class="doc"><p>Conditions that must be fulfilled in order for the Search to match a given entry.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Not" class="def">Not</a> !<a href="Ldap-Client-Search.html#t:Filter">Filter</a></td><td class="doc"><p>Filter does not match the entry</p></td></tr><tr><td class="src"><a name="v:And" class="def">And</a> !(<a href="Ldap-Client.html#t:NonEmpty">NonEmpty</a> <a href="Ldap-Client-Search.html#t:Filter">Filter</a>)</td><td class="doc"><p>All filters match the entry</p></td></tr><tr><td class="src"><a name="v:Or" class="def">Or</a> !(<a href="Ldap-Client.html#t:NonEmpty">NonEmpty</a> <a href="Ldap-Client-Search.html#t:Filter">Filter</a>)</td><td class="doc"><p>Any filter matches the entry</p></td></tr><tr><td class="src"><a name="v:Present" class="def">Present</a> !<a href="Ldap-Client-Internal.html#t:Attr">Attr</a></td><td class="doc"><p>Attribute is present in the entry</p></td></tr><tr><td class="src">!<a href="Ldap-Client-Internal.html#t:Attr">Attr</a> <a name="v::-61-" class="def">:=</a> !<a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a></td><td class="doc"><p>Attribute's value is equal to the assertion</p></td></tr><tr><td class="src">!<a href="Ldap-Client-Internal.html#t:Attr">Attr</a> <a name="v::-62--61-" class="def">:&gt;=</a> !<a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a></td><td class="doc"><p>Attribute's value is equal to or greater than the assertion</p></td></tr><tr><td class="src">!<a href="Ldap-Client-Internal.html#t:Attr">Attr</a> <a name="v::-60--61-" class="def">:&lt;=</a> !<a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a></td><td class="doc"><p>Attribute's value is equal to or less than the assertion</p></td></tr><tr><td class="src">!<a href="Ldap-Client-Internal.html#t:Attr">Attr</a> <a name="v::-126--61-" class="def">:~=</a> !<a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a></td><td class="doc"><p>Attribute's value approximately matches the assertion</p></td></tr><tr><td class="src">!<a href="Ldap-Client-Internal.html#t:Attr">Attr</a> <a name="v::-61--42-" class="def">:=*</a> !(<a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a>, [<a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a>], <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a>)</td><td class="doc"><p>Glob match</p></td></tr><tr><td class="src">(<a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a>, <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Ldap-Client-Internal.html#t:Attr">Attr</a>, <a href="http://hackage.haskell.org/package/base/docs/Data-Bool.html#t:Bool">Bool</a>) <a name="v:::-61-" class="def">::=</a> <a href="Ldap-Client-Internal.html#t:AttrValue">AttrValue</a></td><td class="doc"><p>Extensible match</p></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:SearchEntry" class="def">SearchEntry</a> <a href="src/Ldap-Client-Search.html#SearchEntry" class="link">Source</a></p><div class="doc"><p>Entry found during the Search.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SearchEntry" class="def">SearchEntry</a> !<a href="Ldap-Client-Internal.html#t:Dn">Dn</a> !(<a href="Ldap-Client-Internal.html#t:AttrList">AttrList</a> [])</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SearchEntry" class="caption collapser" onclick="toggleSection('i:SearchEntry')">Instances</p><div id="section.i:SearchEntry" class="show"><table><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Data-Eq.html#t:Eq">Eq</a> <a href="Ldap-Client-Search.html#t:SearchEntry">SearchEntry</a> <a href="src/Ldap-Client-Search.html#line-223" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Text-Show.html#t:Show">Show</a> <a href="Ldap-Client-Search.html#t:SearchEntry">SearchEntry</a> <a href="src/Ldap-Client-Search.html#line-223" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Async" class="def">Async</a> a <a href="src/Ldap-Client-Internal.html#Async" class="link">Source</a></p><div class="doc"><p>Asynchronous LDAP operation. Use <code><a href="Ldap-Client-Search.html#v:wait">wait</a></code> or <code><a href="Ldap-Client-Search.html#v:waitSTM">waitSTM</a></code> to wait for its completion.</p></div><div class="subs instances"><p id="control.i:Async" class="caption collapser" onclick="toggleSection('i:Async')">Instances</p><div id="section.i:Async" class="show"><table><tr><td class="src"><a href="http://hackage.haskell.org/package/base/docs/Data-Functor.html#t:Functor">Functor</a> <a href="Ldap-Client-Search.html#t:Async">Async</a> <a href="src/Ldap-Client-Internal.html#line-64" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:wait" class="def">wait</a> :: <a href="Ldap-Client-Search.html#t:Async">Async</a> a -&gt; <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a> <a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a> a) <a href="src/Ldap-Client-Internal.html#wait" class="link">Source</a></p><div class="doc"><p>Wait for operation completion.</p></div></div><div class="top"><p class="src"><a name="v:waitSTM" class="def">waitSTM</a> :: <a href="Ldap-Client-Search.html#t:Async">Async</a> a -&gt; <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="http://hackage.haskell.org/package/base/docs/Data-Either.html#t:Either">Either</a> <a href="Ldap-Client-Internal.html#t:ResponseError">ResponseError</a> a) <a href="src/Ldap-Client-Internal.html#waitSTM" class="link">Source</a></p><div class="doc"><p>Wait for operation completion inside <code><a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a></code>.</p><p>Do not use this inside the same <code><a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a></code> transaction the operation was
requested in! To give LDAP the chance to respond to it that transaction
should commit. After that, applying <code><a href="Ldap-Client-Search.html#v:waitSTM">waitSTM</a></code> to the corresponding <code><a href="Ldap-Client-Search.html#t:Async">Async</a></code>
starts to make sense.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>