10 lines
16 KiB
HTML
10 lines
16 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.Extended</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-Extended.html");};
|
|
//]]>
|
|
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Ldap-Client-Extended.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.Extended</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Extended Operation</a><ul><li><a href="#g:2">StartTLS Operation</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p><a href="https://tools.ietf.org/html/rfc4511#section-4.12">Extended</a> operation.</p><p>This operation comes in four flavours:</p><ul><li>synchronous, exception throwing (<code><a href="Ldap-Client-Extended.html#v:extended">extended</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-Extended.html#v:extendedEither">extendedEither</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-Extended.html#v:extendedAsync">extendedAsync</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-Extended.html#v:extendedAsyncSTM">extendedAsyncSTM</a></code>)</li></ul><p>Of those, the first one (<code><a href="Ldap-Client-Extended.html#v:extended">extended</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"><span class="keyword">newtype</span> <a href="#t:Oid">Oid</a> = <a href="#v:Oid">Oid</a> <a href="http://hackage.haskell.org/package/text/docs/Data-Text.html#t:Text">Text</a></li><li class="src short"><a href="#v:extended">extended</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Extended.html#t:Oid">Oid</a> -> <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="http://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:extendedEither">extendedEither</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Extended.html#t:Oid">Oid</a> -> <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="http://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#t:ByteString">ByteString</a> -> <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> ())</li><li class="src short"><a href="#v:extendedAsync">extendedAsync</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Extended.html#t:Oid">Oid</a> -> <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="http://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="Ldap-Client-Extended.html#t:Async">Async</a> ())</li><li class="src short"><a href="#v:extendedAsyncSTM">extendedAsyncSTM</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Extended.html#t:Oid">Oid</a> -> <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="http://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="Ldap-Client-Extended.html#t:Async">Async</a> ())</li><li class="src short"><a href="#v:startTls">startTls</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:startTlsEither">startTlsEither</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <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> ())</li><li class="src short"><a href="#v:startTlsAsync">startTlsAsync</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="Ldap-Client-Extended.html#t:Async">Async</a> ())</li><li class="src short"><a href="#v:startTlsAsyncSTM">startTlsAsyncSTM</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="Ldap-Client-Extended.html#t:Async">Async</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-Extended.html#t:Async">Async</a> a -> <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-Extended.html#t:Async">Async</a> a -> <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 id="g:1">Extended Operation</h1><div class="top"><p class="src"><span class="keyword">newtype</span> <a name="t:Oid" class="def">Oid</a> <a href="src/Ldap-Client-Extended.html#Oid" class="link">Source</a></p><div class="doc"><p>Globally unique LDAP object identifier.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Oid" class="def">Oid</a> <a href="http://hackage.haskell.org/package/text/docs/Data-Text.html#t:Text">Text</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Oid" class="caption collapser" onclick="toggleSection('i:Oid')">Instances</p><div id="section.i:Oid" 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-Extended.html#t:Oid">Oid</a> <a href="src/Ldap-Client-Extended.html#line-44" class="link">Source</a></td><td class="doc empty"> </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-Extended.html#t:Oid">Oid</a> <a href="src/Ldap-Client-Extended.html#line-44" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:extended" class="def">extended</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Extended.html#t:Oid">Oid</a> -> <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="http://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> () <a href="src/Ldap-Client-Extended.html#extended" class="link">Source</a></p><div class="doc"><p>Perform the Extended 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:extendedEither" class="def">extendedEither</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Extended.html#t:Oid">Oid</a> -> <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="http://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#t:ByteString">ByteString</a> -> <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="src/Ldap-Client-Extended.html#extendedEither" class="link">Source</a></p><div class="doc"><p>Perform the Extended 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:extendedAsync" class="def">extendedAsync</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Extended.html#t:Oid">Oid</a> -> <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="http://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="Ldap-Client-Extended.html#t:Async">Async</a> ()) <a href="src/Ldap-Client-Extended.html#extendedAsync" class="link">Source</a></p><div class="doc"><p>Perform the Extended 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:extendedAsyncSTM" class="def">extendedAsyncSTM</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="Ldap-Client-Extended.html#t:Oid">Oid</a> -> <a href="http://hackage.haskell.org/package/base/docs/Data-Maybe.html#t:Maybe">Maybe</a> <a href="http://hackage.haskell.org/package/bytestring/docs/Data-ByteString.html#t:ByteString">ByteString</a> -> <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="Ldap-Client-Extended.html#t:Async">Async</a> ()) <a href="src/Ldap-Client-Extended.html#extendedAsyncSTM" class="link">Source</a></p><div class="doc"><p>Perform the Extended 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><h2 id="g:2">StartTLS Operation</h2><div class="top"><p class="src"><a name="v:startTls" class="def">startTls</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> () <a href="src/Ldap-Client-Extended.html#startTls" class="link">Source</a></p><div class="doc"><p>An example of <code>Extended Operation</code>, cf. <code><a href="Ldap-Client-Extended.html#v:extended">extended</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:startTlsEither" class="def">startTlsEither</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <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="src/Ldap-Client-Extended.html#startTlsEither" class="link">Source</a></p><div class="doc"><p>An example of <code>Extended Operation</code>, cf. <code><a href="Ldap-Client-Extended.html#v:extendedEither">extendedEither</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:startTlsAsync" class="def">startTlsAsync</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="http://hackage.haskell.org/package/base/docs/System-IO.html#t:IO">IO</a> (<a href="Ldap-Client-Extended.html#t:Async">Async</a> ()) <a href="src/Ldap-Client-Extended.html#startTlsAsync" class="link">Source</a></p><div class="doc"><p>An example of <code>Extended Operation</code>, cf. <code><a href="Ldap-Client-Extended.html#v:extendedAsync">extendedAsync</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:startTlsAsyncSTM" class="def">startTlsAsyncSTM</a> :: <a href="Ldap-Client-Internal.html#t:Ldap">Ldap</a> -> <a href="http://hackage.haskell.org/package/base/docs/GHC-Conc.html#t:STM">STM</a> (<a href="Ldap-Client-Extended.html#t:Async">Async</a> ()) <a href="src/Ldap-Client-Extended.html#startTlsAsyncSTM" class="link">Source</a></p><div class="doc"><p>An example of <code>Extended Operation</code>, cf. <code><a href="Ldap-Client-Extended.html#v:extendedAsyncSTM">extendedAsyncSTM</a></code>.</p></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-Extended.html#v:wait">wait</a></code> or <code><a href="Ldap-Client-Extended.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-Extended.html#t:Async">Async</a> <a href="src/Ldap-Client-Internal.html#line-64" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:wait" class="def">wait</a> :: <a href="Ldap-Client-Extended.html#t:Async">Async</a> a -> <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-Extended.html#t:Async">Async</a> a -> <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-Extended.html#v:waitSTM">waitSTM</a></code> to the corresponding <code><a href="Ldap-Client-Extended.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> |