@ciao-lang/ts-ciao-interface
Version:
Simple Ciao interface for node.
91 lines • 28.3 kB
HTML
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="theme-color" content="#273f79"/><link rel="stylesheet" href="lpdoc.css" type="text/css"/><script type="text/javascript" src="lpdoc.js"></script><title>Distribution protocol for active modules — The Ciao System v1.22</title></head><body><div class="lpdoc-page fixleftbar"><a href="#" id="sidebar-toggle-button" class="lpdoc-navbutton"><span id="sidebar-button-arrow">☰</span></a><div id="sidebar" class="lpdoc-sidebar"><div style="height: 40px; margin-left: auto; margin-right: auto"><img src="ciao-logo_autofig.png" width=auto height=100%></div><div class="lpdoc-nav"><span class="lpdoc-on-right"><a class="lpdoc-navbutton" href="actmod_doc.html">↑</a><a class="lpdoc-navbutton" href="actmod_doc.html">←</a><a class="lpdoc-navbutton" href="regp_filebased.html">→</a><a class="lpdoc-navbutton" href="ciaosearch.html">🔍</a></span><span><a href="ciaofulltoc.html">TOC</a></span></div><hr></hr><ul class="lpdoc-itemize-sectpath"><li><a href="ciao.html">The Ciao System</a> »<br/> </li><li><a href="ExtendLang.html">PART IV - Language extensions</a> »<br/> </li><li><a href="actmod_doc.html">Active modules</a> »<br/> </li><li><a href=""><strong>Distribution protocol for active modules</strong></a> ▾<ul><li><a href="regp_filebased.html">The ``filebased'' registry protocol</a></li><li><a href="regp_platformbased.html">The ``platformbased'' registry protocol</a></li><li><a href="regp_webbased.html">The ``webbased'' registry protocol</a></li></ul></li></ul><hr></hr><em>ON THIS PAGE</em><ul><li><a href="#Distributed nodes">Distributed nodes</a></li><li><a href="#Registry protocols">Registry protocols</a></li><li><a href="#Usage and interface">Usage and interface</a></li><li><a href="#Documentation on exports">Documentation on exports</a></li><li><a href="#Documentation on multifiles">Documentation on multifiles</a></li><li><a href="#Documentation on imports">Documentation on imports</a></li></ul></div><div class="lpdoc-main"><div id=""><h1>Distribution protocol for active modules</h1><a class="lpdoc-idx-anchor" href="ciaosearch.html#actmod_dist"></a>
<strong>Author(s):</strong> <a class="lpdoc-idx-anchor" id="The Ciao Development Team" href="ciaosearch.html#The Ciao Development Team">The Ciao Development Team</a>, <a class="lpdoc-idx-anchor" id="Jose F. Morales" href="ciaosearch.html#Jose F. Morales">Jose F. Morales</a>.<p>
This is the code that handles setting up nodes in a distributed environment, and sending and receiving messages (see mailbox) between active module instances.<p><div class="lpdoc-note"> The current distribution protocol provide no means for security. The application must take care of this. </div> <p>This includes: <ul> <li>Low-level TCP/IP socket connection between nodes <li>Publishing/locating ActRef names in a registry <li>Sending/receiving messages </ul> <p>A node is an OS process (currently identified by its Hostname:Port). Each node may contain many active module instances. The distributed protocol requires a mapping between the active module instance identifiers and the precise location of the node on the network (its address).<p>This mapping is maintained by a <em>registry</em> of addresses of active module instances. We allow differerent <a class="lpdoc-idx-anchor" id="0" href="ciaosearch.html#registry protocols">registry protocols</a> to publish and locate these addresses (see <a href="#Registry protocols">Registry protocols</a>).<p>The current implementation for communication between active modules is based on TCP/IP sockets (thus, the address of an active module instance is an IP socket address in a particular machine).<p>Requests to execute goals in a module are sent as messages through the mailbox. When the mailbox corresponds to a remote active module instance, the messages are send over TCP/IP socket connection between the local and remote nodes. Similary, response messages that encode the answers are retrieved through sockets into local mailboxes.<p><div id="Distributed nodes"><h2>Distributed nodes</h2> <p>When using the <tt>dist_node</tt> directive, the executable serves as a for distributed active modules. It accepts following command-line options:<p><pre class="lpdoc-codeblock">-p Port Port number for listening connection
-a Address Address for listening connection
--reg-protocol RegProtocol Registry protocol
--reg-addr Address Port Registry address (optional)
--reg-dir Path Registry directory (optional)
--name Name Publish name for the (default) active module instance
</pre> <p>Some of them can be controlled through the following environment variables:<p><pre class="lpdoc-codeblock">ACTMOD_HOSTNAME Address for listening connection
</pre> <p>Other declarations:<p><ul> <li><tt>:- dist_start(G)</tt>: specify a default starting goal to be executed once the node is ready to accept connections. <li><tt>:- actmod_reg_protocol(<RegProtocol>)</tt>: default registry protocol used in the context of the current active module </ul> <p></div><div id="Registry protocols"><h2>Registry protocols</h2> <p><div class="lpdoc-note"> The implementation currently uses the experimental <a class="lpdoc-idx-anchor" id="1" href="traits_doc.html"><tt>traits</tt></a> package (similar to <tt>multifile</tt> predicates but with better control on the hooks interface). </div> <p>A registry protocol implements the predicates to publish and locate addresses of active module instances. By convention, the implementation of a registry protocol <tt>RP</tt> is encoded in a module with name <tt>regp_<RP></tt>.<p>The <em>publish</em> part of the protocol must implement the <tt>actmod_publish</tt> trait, defining the <a class="lpdoc-idx-anchor" id="2" href="ciaosearch.html#save_addr/5"><tt>save_addr/5</tt></a> predicate. This predicate publishes the current active module address.<p>The <em>locate</em> part of the protocol must implement the <tt>actmod_locate</tt> trait, defining the <a class="lpdoc-idx-anchor" id="3" href="ciaosearch.html#remote_address/3"><tt>remote_address/3</tt></a> predicate. This predicate locates the address of the specified active module.<p>For efficiency, the locate methods maintain a cache of addresses, so that the server information only needs to be read from the file system the first time the active module is accessed.<p>The available implementations are: <ul> <li><a class="lpdoc-idx-anchor" id="4" href="regp_filebased.html"><tt>regp_filebased</tt></a> (default) <li><a class="lpdoc-idx-anchor" id="5" href="regp_platformbased.html"><tt>regp_platformbased</tt></a> <li><a class="lpdoc-idx-anchor" id="6" href="regp_webbased.html"><tt>regp_webbased</tt></a> </ul> </div><br/><div id="Usage and interface"><h2>Usage and interface</h2><div class="lpdoc-cartouche"><ul><li><strong>Library usage:</strong><br/><tt>:- use_module(library(actmod/actmod_dist)).</tt><li><strong>Exports:</strong><br/><ul class="lpdoc-itemize-minus"><li><em>Predicates:</em><br/><a class="lpdoc-idx-anchor" id="7" href="#dist_init/3"><tt>dist_init/3</tt></a>, <a class="lpdoc-idx-anchor" id="8" href="#dist_init_args/3"><tt>dist_init_args/3</tt></a>, <a class="lpdoc-idx-anchor" id="9" href="#get_addr_stream/2"><tt>get_addr_stream/2</tt></a>, <a class="lpdoc-idx-anchor" id="10" href="#dist_send/2"><tt>dist_send/2</tt></a>, <a class="lpdoc-idx-anchor" id="11" href="#dist_get_reg_protocol/1"><tt>dist_get_reg_protocol/1</tt></a>, <a class="lpdoc-idx-anchor" id="12" href="#dist_set_reg_protocol/1"><tt>dist_set_reg_protocol/1</tt></a>, <a class="lpdoc-idx-anchor" id="13" href="#actI_alloc_named/2"><tt>actI_alloc_named/2</tt></a>, <a class="lpdoc-idx-anchor" id="14" href="#chn_actref/2"><tt>chn_actref/2</tt></a>, <a class="lpdoc-idx-anchor" id="15" href="#actchn_send/2"><tt>actchn_send/2</tt></a>, <a class="lpdoc-idx-anchor" id="16" href="#actref_to_actchn/2"><tt>actref_to_actchn/2</tt></a>, <a class="lpdoc-idx-anchor" id="17" href="#actchn_watch_response/2"><tt>actchn_watch_response/2</tt></a>, <a class="lpdoc-idx-anchor" id="18" href="#actchn_unwatch_response/1"><tt>actchn_unwatch_response/1</tt></a>, <a class="lpdoc-idx-anchor" id="19" href="#term_to_atom/2"><tt>term_to_atom/2</tt></a>, <a class="lpdoc-idx-anchor" id="20" href="#atom_to_term/2"><tt>atom_to_term/2</tt></a>.
<li><em>Regular Types:</em><br/><a class="lpdoc-idx-anchor" id="21" href="#actref/1"><tt>actref/1</tt></a>, <a class="lpdoc-idx-anchor" id="22" href="#actchn/1"><tt>actchn/1</tt></a>.
<li><em>Multifiles:</em><br/><a class="lpdoc-idx-anchor" id="23" href="#$curr_mod/1"><tt>$curr_mod/1</tt></a>, <a class="lpdoc-idx-anchor" id="24" href="#fnct.decl_at_mod/2"><tt>fnct.decl_at_mod/2</tt></a>, <a class="lpdoc-idx-anchor" id="25" href="#fnct.prop/2"><tt>fnct.prop/2</tt></a>, <a class="lpdoc-idx-anchor" id="26" href="#$fnct_stub_rename/2"><tt>$fnct_stub_rename/2</tt></a>, <a class="lpdoc-idx-anchor" id="27" href="#$handle_stream/2"><tt>$handle_stream/2</tt></a>, <a class="lpdoc-idx-anchor" id="28" href="#$current_msg/3"><tt>$current_msg/3</tt></a>, <a class="lpdoc-idx-anchor" id="29" href="#gsusp.guard/4"><tt>gsusp.guard/4</tt></a>, <a class="lpdoc-idx-anchor" id="30" href="#gsusp.run/2"><tt>gsusp.run/2</tt></a>, <a class="lpdoc-idx-anchor" id="31" href="#async.ftypes/2"><tt>async.ftypes/2</tt></a>, <a class="lpdoc-idx-anchor" id="32" href="#async.run/2"><tt>async.run/2</tt></a>, <a class="lpdoc-idx-anchor" id="33" href="#$fiber_susp_hook/2"><tt>$fiber_susp_hook/2</tt></a>, <a class="lpdoc-idx-anchor" id="34" href="#transient.decl/1"><tt>transient.decl/1</tt></a>, <a class="lpdoc-idx-anchor" id="35" href="#actmod_publish.save_addr/6"><tt>actmod_publish.save_addr/6</tt></a>, <a class="lpdoc-idx-anchor" id="36" href="#actmod_locate.remote_address/4"><tt>actmod_locate.remote_address/4</tt></a>, <a class="lpdoc-idx-anchor" id="37" href="#actmod_locate.cleanup_actI/2"><tt>actmod_locate.cleanup_actI/2</tt></a>, <a class="lpdoc-idx-anchor" id="38" href="#$dist_addr_retry/1"><tt>$dist_addr_retry/1</tt></a>, <a class="lpdoc-idx-anchor" id="39" href="#$dmod_reg_protocol/2"><tt>$dmod_reg_protocol/2</tt></a>, <a class="lpdoc-idx-anchor" id="40" href="#$dmod_src/2"><tt>$dmod_src/2</tt></a>, <a class="lpdoc-idx-anchor" id="41" href="#$dmod_prop/2"><tt>$dmod_prop/2</tt></a>, <a class="lpdoc-idx-anchor" id="42" href="#$local_actmod/1"><tt>$local_actmod/1</tt></a>, <a class="lpdoc-idx-anchor" id="43" href="#$static_named_actRef/2"><tt>$static_named_actRef/2</tt></a>, <a class="lpdoc-idx-anchor" id="44" href="#$dmod_proxy/2"><tt>$dmod_proxy/2</tt></a>, <a class="lpdoc-idx-anchor" id="45" href="#$actmod_exe/3"><tt>$actmod_exe/3</tt></a>, <a class="lpdoc-idx-anchor" id="46" href="#qprot.collect/3"><tt>qprot.collect/3</tt></a>, <a class="lpdoc-idx-anchor" id="47" href="#qprot.dec/4"><tt>qprot.dec/4</tt></a>, <a class="lpdoc-idx-anchor" id="48" href="#qprot.enc/3"><tt>qprot.enc/3</tt></a>, <a class="lpdoc-idx-anchor" id="49" href="#qprot.prepare_query/4"><tt>qprot.prepare_query/4</tt></a>, <a class="lpdoc-idx-anchor" id="50" href="#qprot.join_answers/7"><tt>qprot.join_answers/7</tt></a>.
</ul></ul></div></div><div id="Documentation on exports"><h2>Documentation on exports</h2><div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="dist_init/3" href="ciaosearch.html#dist_init/3">dist_init/3</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>dist_init(RegProtocol,Mod,Opts)</tt>
</span><p>Initialize a node for distributed active modules (registry protocol <span class="lpdoc-var">RegProtocol</span>, initial module <span class="lpdoc-var">Mod</span>, options <span class="lpdoc-var">Opts</span>).</p><ul class="lpdoc-itemize-minus"></ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="dist_init_args/3" href="ciaosearch.html#dist_init_args/3">dist_init_args/3</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>dist_init_args(RegProtocol,Mod,Args)</tt>
</span><p>Like <a class="lpdoc-idx-anchor" id="51" href="#dist_init/3"><tt>dist_init/3</tt></a> but parses options from command-line arguments <span class="lpdoc-var">Args</span>.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="get_addr_stream/2" href="ciaosearch.html#get_addr_stream/2">get_addr_stream/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="dist_send/2" href="ciaosearch.html#dist_send/2">dist_send/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="dist_get_reg_protocol/1" href="ciaosearch.html#dist_get_reg_protocol/1">dist_get_reg_protocol/1</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="dist_set_reg_protocol/1" href="ciaosearch.html#dist_set_reg_protocol/1">dist_set_reg_protocol/1</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="actI_alloc_named/2" href="ciaosearch.html#actI_alloc_named/2">actI_alloc_named/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">REGTYPE</span><a class="lpdoc-idx-anchor" id="actref/1" href="ciaosearch.html#actref/1">actref/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>actref(X)</tt>
</span><p>Reference to an active module instance</p><ul class="lpdoc-itemize-minus"></ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">REGTYPE</span><a class="lpdoc-idx-anchor" id="actchn/1" href="ciaosearch.html#actchn/1">actchn/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>actchn(X)</tt>
</span><p>Channel for active module instance communication</p><ul class="lpdoc-itemize-minus"></ul></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="chn_actref/2" href="ciaosearch.html#chn_actref/2">chn_actref/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="actchn_send/2" href="ciaosearch.html#actchn_send/2">actchn_send/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="actref_to_actchn/2" href="ciaosearch.html#actref_to_actchn/2">actref_to_actchn/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="actchn_watch_response/2" href="ciaosearch.html#actchn_watch_response/2">actchn_watch_response/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="actchn_unwatch_response/1" href="ciaosearch.html#actchn_unwatch_response/1">actchn_unwatch_response/1</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="term_to_atom/2" href="ciaosearch.html#term_to_atom/2">term_to_atom/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="atom_to_term/2" href="ciaosearch.html#atom_to_term/2">atom_to_term/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.</div></div><p>
</div><div id="Documentation on multifiles"><h2>Documentation on multifiles</h2><div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="$curr_mod/1" href="ciaosearch.html#$curr_mod/1">$curr_mod/1</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="fnct.decl_at_mod/2" href="ciaosearch.html#fnct.decl_at_mod/2">fnct.decl_at_mod/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="fnct.prop/2" href="ciaosearch.html#fnct.prop/2">fnct.prop/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="$fnct_stub_rename/2" href="ciaosearch.html#$fnct_stub_rename/2">$fnct_stub_rename/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="$handle_stream/2" href="ciaosearch.html#$handle_stream/2">$handle_stream/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="$current_msg/3" href="ciaosearch.html#$current_msg/3">$current_msg/3</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="gsusp.guard/4" href="ciaosearch.html#gsusp.guard/4">gsusp.guard/4</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="gsusp.run/2" href="ciaosearch.html#gsusp.run/2">gsusp.run/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="async.ftypes/2" href="ciaosearch.html#async.ftypes/2">async.ftypes/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="async.run/2" href="ciaosearch.html#async.run/2">async.run/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="$fiber_susp_hook/2" href="ciaosearch.html#$fiber_susp_hook/2">$fiber_susp_hook/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="transient.decl/1" href="ciaosearch.html#transient.decl/1">transient.decl/1</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="actmod_publish.save_addr/6" href="ciaosearch.html#actmod_publish.save_addr/6">actmod_publish.save_addr/6</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="actmod_locate.remote_address/4" href="ciaosearch.html#actmod_locate.remote_address/4">actmod_locate.remote_address/4</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="actmod_locate.cleanup_actI/2" href="ciaosearch.html#actmod_locate.cleanup_actI/2">actmod_locate.cleanup_actI/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="$dist_addr_retry/1" href="ciaosearch.html#$dist_addr_retry/1">$dist_addr_retry/1</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="$dmod_reg_protocol/2" href="ciaosearch.html#$dmod_reg_protocol/2">$dmod_reg_protocol/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="$dmod_src/2" href="ciaosearch.html#$dmod_src/2">$dmod_src/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="$dmod_prop/2" href="ciaosearch.html#$dmod_prop/2">$dmod_prop/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="$local_actmod/1" href="ciaosearch.html#$local_actmod/1">$local_actmod/1</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="$static_named_actRef/2" href="ciaosearch.html#$static_named_actRef/2">$static_named_actRef/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="$dmod_proxy/2" href="ciaosearch.html#$dmod_proxy/2">$dmod_proxy/2</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="$actmod_exe/3" href="ciaosearch.html#$actmod_exe/3">$actmod_exe/3</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="qprot.collect/3" href="ciaosearch.html#qprot.collect/3">qprot.collect/3</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="qprot.dec/4" href="ciaosearch.html#qprot.dec/4">qprot.dec/4</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="qprot.enc/3" href="ciaosearch.html#qprot.enc/3">qprot.enc/3</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="qprot.prepare_query/4" href="ciaosearch.html#qprot.prepare_query/4">qprot.prepare_query/4</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="qprot.join_answers/7" href="ciaosearch.html#qprot.join_answers/7">qprot.join_answers/7</a></div><div class="lpdoc-deftext">No further documentation available for this predicate.
The predicate is <em>multifile</em>.<br/></div></div><p>
</div><div id="Documentation on imports"><h2>Documentation on imports</h2>This module has the following direct dependencies:<ul class="lpdoc-itemize-minus"><li><em>System library modules:</em><br/><a class="lpdoc-idx-anchor" id="52" href="datafacts_rt.html"><tt>datafacts_rt</tt></a>, <a class="lpdoc-idx-anchor" id="53" href="system.html"><tt>system</tt></a>, <a class="lpdoc-idx-anchor" id="54" href="lists.html"><tt>lists</tt></a>, <a class="lpdoc-idx-anchor" id="55" href="actmod_rt.html"><tt>actmod_rt</tt></a>, <a class="lpdoc-idx-anchor" id="56" href="ciaosearch.html#stream_watchdog"><tt>stream_watchdog</tt></a>, <a class="lpdoc-idx-anchor" id="57" href="sockets.html"><tt>sockets</tt></a>, <a class="lpdoc-idx-anchor" id="58" href="sockets_io.html"><tt>sockets_io</tt></a>, <a class="lpdoc-idx-anchor" id="59" href="ciaosearch.html#format_to_string"><tt>format_to_string</tt></a>, <a class="lpdoc-idx-anchor" id="60" href="read_from_string.html"><tt>read_from_string</tt></a>.
<li><em>Packages:</em><br/><a class="lpdoc-idx-anchor" id="61" href="ciaosearch.html#prelude"><tt>prelude</tt></a>, <a class="lpdoc-idx-anchor" id="62" href="ciaosearch.html#initial"><tt>initial</tt></a>, <a class="lpdoc-idx-anchor" id="63" href="condcomp_doc.html"><tt>condcomp</tt></a>, <a class="lpdoc-idx-anchor" id="64" href="assertions_doc.html"><tt>assertions</tt></a>, <a class="lpdoc-idx-anchor" id="65" href="ciaosearch.html#assertions/assertions_basic"><tt>assertions/assertions_basic</tt></a>, <a class="lpdoc-idx-anchor" id="66" href="regtypes_doc.html"><tt>regtypes</tt></a>, <a class="lpdoc-idx-anchor" id="67" href="fsyntax_doc.html"><tt>fsyntax</tt></a>, <a class="lpdoc-idx-anchor" id="68" href="datafacts_doc.html"><tt>datafacts</tt></a>, <a class="lpdoc-idx-anchor" id="69" href="traits_doc.html"><tt>traits</tt></a>.
</ul></div></div><div class="lpdoc-footer">Generated with LPdoc using Ciao</div></div><div class="lpdoc-clearer"></div></div></body></html>