<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.14">
  <compounddef id="_cis_interface_8h" kind="file" language="C++">
    <compoundname>CisInterface.h</compoundname>
    <includes local="no">../tools.h</includes>
    <includes local="no">../communication/communication.h</includes>
    <includes refid="_ascii_file_8h" local="no">../dataio/AsciiFile.h</includes>
    <includes refid="_ascii_table_8h" local="no">../dataio/AsciiTable.h</includes>
    <includedby refid="_cis_interface_8hpp" local="yes">/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.hpp</includedby>
    <incdepgraph>
      <node id="16">
        <label>../dataio/AsciiTable.h</label>
        <link refid="_ascii_table_8h_source"/>
        <childnode refid="13" relation="include">
        </childnode>
        <childnode refid="15" relation="include">
        </childnode>
      </node>
      <node id="12">
        <label>/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h</label>
        <link refid="_cis_interface_8h"/>
        <childnode refid="13" relation="include">
        </childnode>
        <childnode refid="14" relation="include">
        </childnode>
        <childnode refid="15" relation="include">
        </childnode>
        <childnode refid="16" relation="include">
        </childnode>
      </node>
      <node id="15">
        <label>../dataio/AsciiFile.h</label>
        <link refid="_ascii_file_8h_source"/>
        <childnode refid="13" relation="include">
        </childnode>
      </node>
      <node id="14">
        <label>../communication/communication.h</label>
      </node>
      <node id="13">
        <label>../tools.h</label>
      </node>
    </incdepgraph>
    <invincdepgraph>
      <node id="17">
        <label>/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h</label>
        <link refid="_cis_interface_8h"/>
        <childnode refid="18" relation="include">
        </childnode>
      </node>
      <node id="18">
        <label>/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.hpp</label>
        <link refid="_cis_interface_8hpp_source"/>
      </node>
    </invincdepgraph>
      <sectiondef kind="define">
      <memberdef kind="define" id="_cis_interface_8h_1a89c54eec309a8498443672a39c8d9cd0" prot="public" static="no">
        <name>cisOutput_t</name>
        <initializer>comm_t</initializer>
        <briefdescription>
<para>Flag for checking if <ref refid="_cis_interface_8h_source" kindref="compound">CisInterface.h</ref> has already been included. </para>        </briefdescription>
        <detaileddescription>
<para>Aliases to preserve names of original structures. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="15" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="15" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="_cis_interface_8h_1a81eb1392eea6528be3d9701fa4a0b7c1" prot="public" static="no">
        <name>cisInput_t</name>
        <initializer>comm_t</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="16" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="16" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="_cis_interface_8h_1a8ad421d1e250e6b1a17845b97a05a0d2" prot="public" static="no">
        <name>cis_free</name>
        <initializer>free_comm</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="17" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="17" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="_cis_interface_8h_1af22c777047582e1b4e25b5eae7852b8f" prot="public" static="no">
        <name>cisRpc_t</name>
        <initializer>comm_t</initializer>
        <briefdescription>
<para>Remote Procedure Call (RPC) structure. Contains information required to coordinate sending/receiving response/requests from/to an RPC server/client. </para>        </briefdescription>
        <detaileddescription>
<para>Remote Procedure Call (RPC) IO</para><para>Handle IO case of a server receiving input from clients, performing some calculation, and then sending a response back to the client.</para><para>Server Usage:<orderedlist>
<listitem><para>One-time: Create server channels with format specifiers for input and output. cisRpc_t srv = cisRpcServer(&quot;srv_name&quot;, &quot;%d&quot;, &quot;%d %d&quot;);</para></listitem><listitem><para>Prepare: Allocate space for recovered variables from request. int a;</para></listitem><listitem><para>Receive request: int ret = rpcRecv(srv, &amp;a);</para></listitem><listitem><para>Process: Do tasks the server should do with input to produce output. int b = 2*a; int c = 3*a;</para></listitem><listitem><para>Send response: ret = rpcSend(srv, b, c);</para></listitem></orderedlist>
</para><para>Client Usage:<orderedlist>
<listitem><para>One-time: Create client channels to desired server with format specifiers for output and input (should be the same arguments as for the server except for name). cisRpc_t cli = cisRpcClient(&quot;cli_name&quot;, &quot;%d&quot;, &quot;%d %d&quot;);</para></listitem><listitem><para>Prepare: Allocate space for recovered variables from response. int b, c;</para></listitem><listitem><para>Call server: int ret = rpcCall(cli, 1, &amp;b, &amp;c);</para></listitem></orderedlist>
</para><para>Clients can also send several requests at once before receiving any responses. This allows the server to be processing the next requests while the client handles the previous response, thereby increasing efficiency. The responses are assumed to be in the same order as the generating requests (i.e. first come, first served). </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="393" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="393" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="_cis_interface_8h_1af819ffb615e4fb1b3a3e17760b104da5" prot="public" static="no">
        <name>cisAsciiFileInput_t</name>
        <initializer>comm_t</initializer>
        <briefdescription>
<para>Definitions for file sturctures. </para>        </briefdescription>
        <detaileddescription>
<para>File IO</para><para>Handle I/O from/to a local or remote file line by line.</para><para>Input Usage:<orderedlist>
<listitem><para>One-time: Create file interface by providing either a channel name or a path to a local file. comm_t fin = cisAsciiFileInput(&quot;file_channel&quot;); // channel comm_t fin = cisAsciiFileInput_local(&quot;/local/file.txt&quot;); // local file</para></listitem><listitem><para>Prepare: Get pointer for line. char *line;</para></listitem><listitem><para>Receive each line, terminating when receive returns -1 (EOF or channel closed). int ret = 1; while (ret &gt; 0) { ret = cisRecv(fin, &amp;line); // line will be realloced to fit message Do something with the line }</para></listitem><listitem><para>Cleanup. Call functions to deallocate structures. free(line);</para></listitem></orderedlist>
</para><para>Output Usage:<orderedlist>
<listitem><para>One-time: Create file interface by providing either a channel name or a path to a local file. comm_t fout = cisAsciiFileOutput(&quot;file_channel&quot;); // channel comm_t fout = cisAsciiFileOutput_local(&quot;/local/file.txt&quot;); // local file</para></listitem><listitem><para>Send lines to the file. If return value is not 0, the send was not succesfull. int ret; ret = cisSend(fin, &quot;Line 1\n&quot;); ret = cisSend(fout, &quot;Line 1\n&quot;); ret = cisSend(fout, &quot;Line 2\n&quot;); </para></listitem></orderedlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="624" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="624" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="_cis_interface_8h_1a6585f1181e2ded085e88896c3e964e0f" prot="public" static="no">
        <name>cisAsciiFileOutput_t</name>
        <initializer>comm_t</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="625" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="625" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="_cis_interface_8h_1a00faaf2ad1a2ad78004357f62e38d6ef" prot="public" static="no">
        <name>cisAsciiTableInput_t</name>
        <initializer>comm_t</initializer>
        <briefdescription>
<para>Definitions for table sturctures. </para>        </briefdescription>
        <detaileddescription>
<para>Table IO</para><para>Handle I/O from/to a local or remote ASCII table either line-by-line or as an array.</para><para><heading level="1">Row-by-Row </heading>
</para><para>Input by Row Usage:<orderedlist>
<listitem><para>One-time: Create file interface by providing either a channel name or a path to a local file. comm_t fin = cisAsciiTableInput(&quot;file_channel&quot;); // channel comm_t fin = cisAsciiTableInput_local(&quot;/local/file.txt&quot;); // local table</para></listitem><listitem><para>Prepare: Allocate space for variables in row (the format in this example is &quot;%5s %d %f\n&quot; like the output example below). char a[5]; int b; double c;</para></listitem><listitem><para>Receive each row, terminating when receive returns -1 (EOF or channel closed). int ret = 1; while (ret &gt; 0) { ret = cisRecv(fin, &amp;a, &amp;b, &amp;c); Do something with the row }</para></listitem></orderedlist>
</para><para>Output by Row Usage:<orderedlist>
<listitem><para>One-time: Create file interface by providing either a channel name or a path to a local file and a format string for rows. comm_t fout = cisAsciiTableOutput(&quot;file_channel&quot;, // channel &quot;%5s %d %f\n&quot;); comm_t fout = cisAsciiTableOutput_local(&quot;/local/file.txt&quot;, // local table &quot;%5s %d %f\n&quot;);</para></listitem><listitem><para>Send rows to the file by providing entries. Formatting is handled by the interface. If return value is not 0, the send was not succesful. int ret; ret = cisSend(fout, &quot;one&quot;, 1, 1.0); ret = cisSend(fout, &quot;two&quot;, 2, 2.0);</para></listitem></orderedlist>
</para><para><heading level="1">Array </heading>
</para><para>Input by Array Usage:<orderedlist>
<listitem><para>One-time: Create file interface by providing either a channel name or a path to a local file. comm_t fin = cisAsciiArrayInput(&quot;file_channel&quot;); // channel comm_t fin = cisAsciiArrayInput_local(&quot;/local/file.txt&quot;); // local table</para></listitem><listitem><para>Prepare: Declare pointers for table columns (they will be allocated by the interface once the number of rows is known). char *aCol; int *bCol; double *cCol;</para></listitem><listitem><para>Receive entire table as columns. Return value will be the number of elements in each column (the number of table rows). Negative values indicate errors. int ret = cisRecv(fin, &amp;a, &amp;b, &amp;c);</para></listitem><listitem><para>Cleanup. Call functions to deallocate structures. free(a); free(b); free(c);</para></listitem></orderedlist>
</para><para>Output by Array Usage:<orderedlist>
<listitem><para>One-time: Create file interface by providing either a channel name or a path to a local file and a format string for rows. comm_t fout = cisAsciiArrayOutput(&quot;file_channel&quot;, // channel &quot;%5s %d %f\n&quot;); comm_t fout = cisAsciiArrayOutput_local(&quot;/local/file.txt&quot;, // local table &quot;%5s %d %f\n&quot;);</para></listitem><listitem><para>Send columns to the file by providing pointers (or arrays). Formatting is handled by the interface. If return value is not 0, the send was not succesful. char aCol[] = {&quot;one  &quot;, &quot;two  &quot;, &quot;three&quot;}; \ Each str is of len 5 int bCol[3] = {1, 2, 3}; float cCol[3] = {1.0, 2.0, 3.0}; int ret = cisSend(fout, a, b, c); </para></listitem></orderedlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="756" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="756" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="_cis_interface_8h_1abd01de3954de4a524c4b7e1e790f1dd7" prot="public" static="no">
        <name>cisAsciiTableOutput_t</name>
        <initializer>comm_t</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="757" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="757" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="_cis_interface_8h_1a17141a99c0fd10b6e00e4dcd3cb8c847" prot="public" static="no">
        <name>cisAsciiArrayInput_t</name>
        <initializer>comm_t</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="758" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="758" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="_cis_interface_8h_1a02c19ad52739090d6a40fc6c00df89cf" prot="public" static="no">
        <name>cisAsciiArrayOutput_t</name>
        <initializer>comm_t</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="759" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="759" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="_cis_interface_8h_1a8424c734f9d2658e7a8f6e1ce135dcff" prot="public" static="no">
        <name>cisPlyInput_t</name>
        <initializer>comm_t</initializer>
        <briefdescription>
<para>Definitions for ply structures. </para>        </briefdescription>
        <detaileddescription>
<para>Ply IO</para><para>Handle I/O from/to a Ply file.</para><para>Input Usage:<orderedlist>
<listitem><para>One-time: Create file interface by providing a channel name. comm_t fin = cisPlyInput(&quot;file_channel&quot;); // channel</para></listitem><listitem><para>Prepare: Allocate ply structure. ply_t p;</para></listitem><listitem><para>Receive each structure, terminating when receive returns -1 (EOF or channel closed). int ret = 1; while (ret &gt; 0) { ret = cisRecv(fin, &amp;p); Do something with the ply structure }</para></listitem></orderedlist>
</para><para>Output by Usage:<orderedlist>
<listitem><para>One-time: Create file interface by providing a channel name. comm_t fout = cisPlyOutput(&quot;file_channel&quot;); // channel</para></listitem><listitem><para>Send structure to the file by providing entries. Formatting is handled by the interface. If return value is not 0, the send was not succesful. int ret; ply_t p; Populate the structure ret = cisSend(fout, p); ret = cisSend(fout, p); </para></listitem></orderedlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="911" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="911" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="_cis_interface_8h_1a9f1c1a186e9d2885689fd62429f638f9" prot="public" static="no">
        <name>cisPlyOutput_t</name>
        <initializer>comm_t</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="912" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="912" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="_cis_interface_8h_1ad044a6617a3407ded3c1a3ad63af2638" prot="public" static="no">
        <name>cisObjInput_t</name>
        <initializer>comm_t</initializer>
        <briefdescription>
<para>Definitions for obj structures. </para>        </briefdescription>
        <detaileddescription>
<para>Obj IO</para><para>Handle I/O from/to a Obj file.</para><para>Input Usage:<orderedlist>
<listitem><para>One-time: Create file interface by providing a channel name. comm_t fin = cisObjInput(&quot;file_channel&quot;); // channel</para></listitem><listitem><para>Prepare: Allocate obj structure. obj_t p;</para></listitem><listitem><para>Receive each structure, terminating when receive returns -1 (EOF or channel closed). int ret = 1; while (ret &gt; 0) { ret = cisRecv(fin, &amp;p); Do something with the obj structure }</para></listitem></orderedlist>
</para><para>Output by Usage:<orderedlist>
<listitem><para>One-time: Create file interface by providing a channel name. comm_t fout = cisObjOutput(&quot;file_channel&quot;); // channel</para></listitem><listitem><para>Send structure to the file by providing entries. Formatting is handled by the interface. If return value is not 0, the send was not succesful. int ret; obj_t p; Populate the structure ret = cisSend(fout, p); ret = cisSend(fout, p); </para></listitem></orderedlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="977" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="977" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="_cis_interface_8h_1a68c6e5ae95bf7c30235447946227515a" prot="public" static="no">
        <name>cisObjOutput_t</name>
        <initializer>comm_t</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="978" column="9" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="978" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="_cis_interface_8h_1abc1fc1f644571ffa9665908e778bec87" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>cisOutput_t</type>
        <definition>static cisOutput_t cisOutputFmt</definition>
        <argsstring>(const char *name, const char *fmtString)</argsstring>
        <name>cisOutputFmt</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>fmtString</declname>
        </param>
        <briefdescription>
<para>Constructor for cisOutput_t structure with format. Create a cisOutput_t structure based on a provided name that is used to locate a particular comm address stored in the environment variable name and a format string that can be used to format arguments into outgoing messages for the queue. <linebreak/>
 </para>        </briefdescription>
        <detaileddescription>
<para>Basic IO</para><para>Output Usage:<orderedlist>
<listitem><para>One-time: Create output channel (store in named variables) cisOutput_t output_channel = cisOutput(&quot;out_name&quot;);</para></listitem><listitem><para>Prepare: Format data to a character array buffer. char buffer[CIS_MSG_BUF]; sprintf(buffer, &quot;a=%d, b=%d&quot;, 1, 2);</para></listitem><listitem><para>Send: ret = cis_send(output_channel, buffer, strlen(buffer));</para></listitem></orderedlist>
</para><para>Input Usage:<orderedlist>
<listitem><para>One-time: Create output channel (store in named variables) cisInput_t input_channel = cisInput(&quot;in_name&quot;);</para></listitem><listitem><para>Prepare: Allocate a character array buffer. char buffer[CIS_MSG_BUF];</para></listitem><listitem><para>Receive: int ret = cis_recv(input_channel, buffer, CIS_MSG_BUF);</para></listitem></orderedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to name of queue. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">fmtString</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to format string. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>cisOutput_t output queue structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="53" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="53" bodyend="57"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a11cf635ccfa238a362740caf25b73651" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>cisInput_t</type>
        <definition>static cisInput_t cisInputFmt</definition>
        <argsstring>(const char *name, const char *fmtString)</argsstring>
        <name>cisInputFmt</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>fmtString</declname>
        </param>
        <briefdescription>
<para>Constructor for cisInput_t structure with format. Create a cisInput_t structure based on a provided name that is used to locate a particular comm address stored in the environment variable name and a format stirng that can be used to extract arguments from received messages. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to name of queue. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">fmtString</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to format string. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>cisInput_t input queue structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="69" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="69" bodyend="73"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1aa63c8cfafa7474a7f7aab26c65086e06" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>cisOutput_t</type>
        <definition>static cisOutput_t cisOutput</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisOutput</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for cisOutput_t output structure. Create a cisOutput_t structure based on a provided name that is used to locate a particular comm address stored in the environment variable name. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to name of queue. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>cisOutput_t output queue structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="83" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="83" bodyend="86"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1ade11dfda5470091d783e028d3299e9bb" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>cisInput_t</type>
        <definition>static cisInput_t cisInput</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisInput</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for cisInput_t structure. Create a cisInput_t structure based on a provided name that is used to locate a particular comm address stored in the environment variable name. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to name of queue. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>cisInput_t input queue structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="96" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="96" bodyend="99"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1afccb7cd87002493258f90a1be322a021" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int cis_send</definition>
        <argsstring>(const cisOutput_t cisQ, const char *data, const size_t len)</argsstring>
        <name>cis_send</name>
        <param>
          <type>const cisOutput_t</type>
          <declname>cisQ</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>data</declname>
        </param>
        <param>
          <type>const size_t</type>
          <declname>len</declname>
        </param>
        <briefdescription>
<para>Send a message to an output queue. Send a message smaller than CIS_MSG_MAX bytes to an output queue. If the message is larger, it will not be sent. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisOutput_t structure that queue should be sent to. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">data</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to message that should be sent. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">len</parametername>
</parameternamelist>
<parameterdescription>
<para>size_t length of message to be sent. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int 0 if send succesfull, -1 if send unsuccessful. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="111" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="111" bodyend="113"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1ae0c60f8237960b3388819c6190fb3736" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int cis_send_eof</definition>
        <argsstring>(const cisOutput_t cisQ)</argsstring>
        <name>cis_send_eof</name>
        <param>
          <type>const cisOutput_t</type>
          <declname>cisQ</declname>
        </param>
        <briefdescription>
<para>Send EOF message to the output queue. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisOutput_t structure that message should be sent to. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int 0 if send successfull, -1 if unsuccessful. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="121" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="121" bodyend="123"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a68ae84778c4859adcba153129f1861ec" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int cis_recv</definition>
        <argsstring>(const cisInput_t cisQ, char *data, const size_t len)</argsstring>
        <name>cis_recv</name>
        <param>
          <type>const cisInput_t</type>
          <declname>cisQ</declname>
        </param>
        <param>
          <type>char *</type>
          <declname>data</declname>
        </param>
        <param>
          <type>const size_t</type>
          <declname>len</declname>
        </param>
        <briefdescription>
<para>Receive a message from an input queue. Receive a message smaller than CIS_MSG_MAX bytes from an input queue. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisOutput_t structure that message should be sent to. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">data</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to allocated buffer where the message should be saved. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">len</parametername>
</parameternamelist>
<parameterdescription>
<para>const size_t length of the allocated message buffer in bytes. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int -1 if message could not be received. Length of the received message if message was received. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="136" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="136" bodyend="138"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a69fceba99f3b1d01e203de88a0769e7c" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int cis_send_nolimit</definition>
        <argsstring>(const cisOutput_t cisQ, const char *data, const size_t len)</argsstring>
        <name>cis_send_nolimit</name>
        <param>
          <type>const cisOutput_t</type>
          <declname>cisQ</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>data</declname>
        </param>
        <param>
          <type>const size_t</type>
          <declname>len</declname>
        </param>
        <briefdescription>
<para>Send a large message to an output queue. Send a message larger than CIS_MSG_MAX bytes to an output queue by breaking it up between several smaller messages and sending initial message with the size of the message that should be expected. Must be partnered with cis_recv_nolimit for communication to make sense. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisOutput_t structure that message should be sent to. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">data</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to message that should be sent. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">len</parametername>
</parameternamelist>
<parameterdescription>
<para>size_t length of message to be sent. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int 0 if send succesfull, -1 if send unsuccessful. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="152" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="152" bodyend="154"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a1a78473e3fe0762bc6c145ade7c57b1c" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int cis_send_nolimit_eof</definition>
        <argsstring>(const cisOutput_t cisQ)</argsstring>
        <name>cis_send_nolimit_eof</name>
        <param>
          <type>const cisOutput_t</type>
          <declname>cisQ</declname>
        </param>
        <briefdescription>
<para>Send EOF message to the output queue. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisOutput_t structure that message should be sent to. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int 0 if send successfull, -1 if unsuccessful. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="162" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="162" bodyend="164"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a548f71b94045cae76adf5ef7c05c265b" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int cis_recv_nolimit</definition>
        <argsstring>(const cisInput_t cisQ, char **data, const size_t len0)</argsstring>
        <name>cis_recv_nolimit</name>
        <param>
          <type>const cisInput_t</type>
          <declname>cisQ</declname>
        </param>
        <param>
          <type>char **</type>
          <declname>data</declname>
        </param>
        <param>
          <type>const size_t</type>
          <declname>len0</declname>
        </param>
        <briefdescription>
<para>Receive a large message from an input queue. Receive a message larger than CIS_MSG_MAX bytes from an input queue by receiving it in parts. This expects the first message to be the size of the total message. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisOutput_t structure that message should be sent to. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">data</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to pointer for allocated buffer where the message should be stored. A pointer to a pointer is used so that the buffer may be reallocated as necessary for the incoming message. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">len0</parametername>
</parameternamelist>
<parameterdescription>
<para>size_t length of the initial allocated message buffer in bytes. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int -1 if message could not be received. Length of the received message if message was received. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="180" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="180" bodyend="182"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a4b571310ac37bbb8db4ec4af4333057d" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int vcisSend</definition>
        <argsstring>(const cisOutput_t cisQ, va_list ap)</argsstring>
        <name>vcisSend</name>
        <param>
          <type>const cisOutput_t</type>
          <declname>cisQ</declname>
        </param>
        <param>
          <type>va_list</type>
          <declname>ap</declname>
        </param>
        <briefdescription>
<para>Send arguments as a small formatted message to an output queue. Use the format string to create a message from the input arguments that is then sent to the specified output queue. If the message is larger than CIS_MSG_MAX or cannot be encoded, it will not be sent. <linebreak/>
 </para>        </briefdescription>
        <detaileddescription>
<para>Formatted IO</para><para>Output Usage:<orderedlist>
<listitem><para>One-time: Create output channel with format specifier. cisOutput_t output_channel = cisOutputFmt(&quot;out_name&quot;, &quot;a=%d, b=%d&quot;);</para></listitem><listitem><para>Send: ret = cisSend(output_channel, 1, 2);</para></listitem><listitem><para>Free: cis_free(&amp;output_channel);</para></listitem></orderedlist>
</para><para>Input Usage:<orderedlist>
<listitem><para>One-time: Create output channel with format specifier. cisInput_t input_channel = cisInput(&quot;in_name&quot;, &quot;a=%d, b=%d&quot;);</para></listitem><listitem><para>Prepare: Allocate space for recovered variables. int a, b;</para></listitem><listitem><para>Receive: int ret = cisRecv(input_channel, &amp;a, &amp;b);</para></listitem></orderedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisOutput_t structure that queue should be sent to. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ap</parametername>
</parameternamelist>
<parameterdescription>
<para>va_list arguments to be formatted into a message using sprintf. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int 0 if send succesfull, -1 if send unsuccessful. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="217" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="217" bodyend="219"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a32b86b07f613d9e8e1c03d04a80361d6" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int vcisRecv</definition>
        <argsstring>(const cisInput_t cisQ, va_list ap)</argsstring>
        <name>vcisRecv</name>
        <param>
          <type>const cisInput_t</type>
          <declname>cisQ</declname>
        </param>
        <param>
          <type>va_list</type>
          <declname>ap</declname>
        </param>
        <briefdescription>
<para>Assign arguments by receiving and parsing a message from an input queue. Receive a message smaller than CIS_MSG_MAX bytes from an input queue and parse it using the associated format string. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisOutput_t structure that message should be sent to. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">ap</parametername>
</parameternamelist>
<parameterdescription>
<para>va_list arguments that should be assigned by parsing the received message using sscanf. As these are being assigned, they should be pointers to memory that has already been allocated. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int -1 if message could not be received or could not be parsed. Length of the received message if message was received and parsed. -2 is returned if EOF is received. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="234" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="234" bodyend="236"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a27fa81a4e9007004304e2d869ba54b2e" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int cisSend</definition>
        <argsstring>(const cisOutput_t cisQ,...)</argsstring>
        <name>cisSend</name>
        <param>
          <type>const cisOutput_t</type>
          <declname>cisQ</declname>
        </param>
        <param>
          <type>...</type>
        </param>
        <briefdescription>
<para>Send arguments as a small formatted message to an output queue. Use the format string to create a message from the input arguments that is then sent to the specified output queue. If the message is larger than CIS_MSG_MAX or cannot be encoded, it will not be sent. <linebreak/>
 </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisOutput_t structure that queue should be sent to. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">...</parametername>
</parameternamelist>
<parameterdescription>
<para>arguments to be formatted into a message using sprintf. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int 0 if send succesfull, -1 if send unsuccessful. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="248" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="248" bodyend="254"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1ad8014b9893c1281d0f67e81650cd9449" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int cisRecv</definition>
        <argsstring>(const cisInput_t cisQ,...)</argsstring>
        <name>cisRecv</name>
        <param>
          <type>const cisInput_t</type>
          <declname>cisQ</declname>
        </param>
        <param>
          <type>...</type>
        </param>
        <briefdescription>
<para>Assign arguments by receiving and parsing a message from an input queue. Receive a message smaller than CIS_MSG_MAX bytes from an input queue and parse it using the associated format string. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisOutput_t structure that message should be sent to. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">...</parametername>
</parameternamelist>
<parameterdescription>
<para>arguments that should be assigned by parsing the received message using sscanf. As these are being assigned, they should be pointers to memory that has already been allocated. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int -1 if message could not be received or could not be parsed. Length of the received message if message was received and parsed. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="268" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="268" bodyend="274"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1ac9f4dd406ffd17c8a7a5b8e1bd1e5b60" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int vcisSend_nolimit</definition>
        <argsstring>(const cisOutput_t cisQ, va_list ap)</argsstring>
        <name>vcisSend_nolimit</name>
        <param>
          <type>const cisOutput_t</type>
          <declname>cisQ</declname>
        </param>
        <param>
          <type>va_list</type>
          <declname>ap</declname>
        </param>
        <briefdescription>
<para>Send arguments as a large formatted message to an output queue. Use the format string to create a message from the input arguments that is then sent to the specified output queue. The message can be larger than CIS_MSG_MAX. If it cannot be encoded, it will not be sent. <linebreak/>
 </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisOutput_t structure that queue should be sent to. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ap</parametername>
</parameternamelist>
<parameterdescription>
<para>va_list arguments to be formatted into a message using sprintf. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int 0 if formatting and send succesfull, -1 if formatting or send unsuccessful. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="287" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="287" bodyend="289"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1ac5694a3cd748ba71cf724aeac3212211" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int vcisRecv_nolimit</definition>
        <argsstring>(const cisInput_t cisQ, va_list ap)</argsstring>
        <name>vcisRecv_nolimit</name>
        <param>
          <type>const cisInput_t</type>
          <declname>cisQ</declname>
        </param>
        <param>
          <type>va_list</type>
          <declname>ap</declname>
        </param>
        <briefdescription>
<para>Assign arguments by receiving and parsing a message from an input queue. Receive a message larger than CIS_MSG_MAX bytes in chunks from an input queue and parse it using the associated format string. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisOutput_t structure that message should be sent to. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">ap</parametername>
</parameternamelist>
<parameterdescription>
<para>va_list arguments that should be assigned by parsing the received message using sscanf. As these are being assigned, they should be pointers to memory that has already been allocated. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int -1 if message could not be received or could not be parsed. Length of the received message if message was received and parsed. -2 is returned if EOF is received. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="304" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="304" bodyend="306"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a27b0cd0f98a2436398f344e26999b59f" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int cisSend_nolimit</definition>
        <argsstring>(const cisOutput_t cisQ,...)</argsstring>
        <name>cisSend_nolimit</name>
        <param>
          <type>const cisOutput_t</type>
          <declname>cisQ</declname>
        </param>
        <param>
          <type>...</type>
        </param>
        <briefdescription>
<para>Send arguments as a large formatted message to an output queue. Use the format string to create a message from the input arguments that is then sent to the specified output queue. The message can be larger than CIS_MSG_MAX. If it cannot be encoded, it will not be sent. <linebreak/>
 </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisOutput_t structure that queue should be sent to. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">...</parametername>
</parameternamelist>
<parameterdescription>
<para>arguments to be formatted into a message using sprintf. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int 0 if formatting and send succesfull, -1 if formatting or send unsuccessful. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="319" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="319" bodyend="325"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a2bbe09c22c5a36238697ce7e84aa0340" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int cisRecv_nolimit</definition>
        <argsstring>(const cisInput_t cisQ,...)</argsstring>
        <name>cisRecv_nolimit</name>
        <param>
          <type>const cisInput_t</type>
          <declname>cisQ</declname>
        </param>
        <param>
          <type>...</type>
        </param>
        <briefdescription>
<para>Assign arguments by receiving and parsing a message from an input queue. Receive a message larger than CIS_MSG_MAX bytes in chunks from an input queue and parse it using the associated format string. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cisQ</parametername>
</parameternamelist>
<parameterdescription>
<para>cisInput_t structure that message should be sent to. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">...</parametername>
</parameternamelist>
<parameterdescription>
<para>arguments that should be assigned by parsing the received message using sscanf. As these are being assigned, they should be pointers to memory that has already been allocated. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int -1 if message could not be received or could not be parsed. Length of the received message if message was received and parsed. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="339" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="339" bodyend="345"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a9e5dcdb948b85f39b78a82b7f39295a2" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>cisRpc_t</type>
        <definition>static cisRpc_t cisRpc</definition>
        <argsstring>(const char *name, const char *outFormat, const char *inFormat)</argsstring>
        <name>cisRpc</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>outFormat</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>inFormat</declname>
        </param>
        <briefdescription>
<para>Constructor for RPC structure. Creates an instance of cisRpc_t with provided information. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer name of the output queue. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">outFormat</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to format that should be used for formatting output. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">inFormat</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to format that should be used for parsing input. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>cisRpc_t structure with provided info. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="406" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="406" bodyend="408"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a548c6e52666dcbf3e0d90727a35406e1" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisRpcClient</definition>
        <argsstring>(const char *name, const char *outFormat, const char *inFormat)</argsstring>
        <name>cisRpcClient</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>outFormat</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>inFormat</declname>
        </param>
        <briefdescription>
<para>Constructor for client side RPC structure. Creates an instance of cisRpc_t with provided information. <linebreak/>
 </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to name for queues. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">outFormat</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to format that should be used for formatting output. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">inFormat</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to format that should be used for parsing input. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>cisRpc_t structure with provided info. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="421" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="421" bodyend="423"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1aa05ee60575e0e09cea72d2e5559da357" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisRpcServer</definition>
        <argsstring>(const char *name, const char *inFormat, const char *outFormat)</argsstring>
        <name>cisRpcServer</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>inFormat</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>outFormat</declname>
        </param>
        <briefdescription>
<para>Constructor for server side RPC structure. Creates an instance of cisRpc_t with provided information. <linebreak/>
 </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to name for queues. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">inFormat</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to format that should be used for parsing input. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">outFormat</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to format that should be used for formatting output. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>cisRpc_t structure with provided info. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="436" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="436" bodyend="438"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a338ade30a1d96a4f4fe80f0ec008cf1d" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int vrpcSend</definition>
        <argsstring>(const cisRpc_t rpc, va_list ap)</argsstring>
        <name>vrpcSend</name>
        <param>
          <type>const cisRpc_t</type>
          <declname>rpc</declname>
        </param>
        <param>
          <type>va_list</type>
          <declname>ap</declname>
        </param>
        <briefdescription>
<para>Format and send a message to an RPC output queue. Format provided arguments list using the output queue format string and then sends it to the output queue under the assumption that it is larger than the maximum message size. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">rpc</parametername>
</parameternamelist>
<parameterdescription>
<para>cisRpc_t structure with RPC information. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ap</parametername>
</parameternamelist>
<parameterdescription>
<para>va_list variable list of arguments for formatting. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>integer specifying if the send was succesful. Values &gt;= 0 indicate success. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="451" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="451" bodyend="454"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1aaaaab617056d44a0d9eb09c8c09c74f7" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int vrpcRecv</definition>
        <argsstring>(const cisRpc_t rpc, va_list ap)</argsstring>
        <name>vrpcRecv</name>
        <param>
          <type>const cisRpc_t</type>
          <declname>rpc</declname>
        </param>
        <param>
          <type>va_list</type>
          <declname>ap</declname>
        </param>
        <briefdescription>
<para>Receive and parse a message from an RPC input queue. Receive a message from the input queue under the assumption that it is larger than the maximum message size. Then parse the message using the input queue format string to extract parameters and assign them to the arguments. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">rpc</parametername>
</parameternamelist>
<parameterdescription>
<para>cisRpc_t structure with RPC information. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">ap</parametername>
</parameternamelist>
<parameterdescription>
<para>va_list variable list of arguments that should be assigned parameters extracted using the format string. Since these will be assigned, they should be pointers to memory that has already been allocated. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>integer specifying if the receive was succesful. Values &gt;= 0 indicate success. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="470" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="470" bodyend="473"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a3c1a243b0e4d19f150ee0d32d23b99f3" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int rpcSend</definition>
        <argsstring>(const cisRpc_t rpc,...)</argsstring>
        <name>rpcSend</name>
        <param>
          <type>const cisRpc_t</type>
          <declname>rpc</declname>
        </param>
        <param>
          <type>...</type>
        </param>
        <briefdescription>
<para>Format and send a message to an RPC output queue. Format provided arguments using the output queue format string and then sends it to the output queue under the assumption that it is larger than the maximum message size. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">rpc</parametername>
</parameternamelist>
<parameterdescription>
<para>cisRpc_t structure with RPC information. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">...</parametername>
</parameternamelist>
<parameterdescription>
<para>arguments for formatting. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>integer specifying if the send was succesful. Values &gt;= 0 indicate success. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="486" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="486" bodyend="492"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1ae090fb59de249aa2380319c63a08547a" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int rpcRecv</definition>
        <argsstring>(const cisRpc_t rpc,...)</argsstring>
        <name>rpcRecv</name>
        <param>
          <type>const cisRpc_t</type>
          <declname>rpc</declname>
        </param>
        <param>
          <type>...</type>
        </param>
        <briefdescription>
<para>Receive and parse a message from an RPC input queue. Receive a message from the input queue under the assumption that it is larger than the maximum message size. Then parse the message using the input queue format string to extract parameters and assign them to the arguments. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">rpc</parametername>
</parameternamelist>
<parameterdescription>
<para>cisRpc_t structure with RPC information. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">...</parametername>
</parameternamelist>
<parameterdescription>
<para>mixed arguments that should be assigned parameters extracted using the format string. Since these will be assigned, they should be pointers to memory that has already been allocated. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>integer specifying if the receive was succesful. Values &gt;= 0 indicate success. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="508" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="508" bodyend="514"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a7aed7b692f8f1efff7b7d46744eb9a27" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int vrpcCall</definition>
        <argsstring>(const cisRpc_t rpc, va_list ap)</argsstring>
        <name>vrpcCall</name>
        <param>
          <type>const cisRpc_t</type>
          <declname>rpc</declname>
        </param>
        <param>
          <type>va_list</type>
          <declname>ap</declname>
        </param>
        <briefdescription>
<para>Send request to an RPC server from the client and wait for a response. Format arguments using the output queue format string, send the message to the output queue, receive a response from the input queue, and assign arguments from the message using the input queue format string to parse it. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">rpc</parametername>
</parameternamelist>
<parameterdescription>
<para>cisRpc_t structure with RPC information. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">ap</parametername>
</parameternamelist>
<parameterdescription>
<para>va_list mixed arguments that include those that should be formatted using the output format string, followed by those that should be assigned parameters extracted using the input format string. These that will be assigned should be pointers to memory that has already been allocated. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>integer specifying if the receive was succesful. Values &gt;= 0 indicate success. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="530" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="530" bodyend="559"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a9d46189fed9ba11f675d79e5604ccc44" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>static int rpcCall</definition>
        <argsstring>(const cisRpc_t rpc,...)</argsstring>
        <name>rpcCall</name>
        <param>
          <type>const cisRpc_t</type>
          <declname>rpc</declname>
        </param>
        <param>
          <type>...</type>
        </param>
        <briefdescription>
<para>Send request to an RPC server from the client and wait for a response. Format arguments using the output queue format string, send the message to the output queue, receive a response from the input queue, and assign arguments from the message using the input queue format string to parse it. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">rpc</parametername>
</parameternamelist>
<parameterdescription>
<para>cisRpc_t structure with RPC information. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">...</parametername>
</parameternamelist>
<parameterdescription>
<para>mixed arguments that include those that should be formatted using the output format string, followed by those that should be assigned parameters extracted using the input format string. These that will be assigned should be pointers to memory that has already been allocated. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>integer specifying if the receive was succesful. Values &gt;= 0 indicate success. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="575" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="575" bodyend="582"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a993b1b96f209669372632b327bef476d" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisAsciiFileOutput</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisAsciiFileOutput</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for AsciiFile output comm to channel. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to name of an output channel. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t for line-by-line output to a file or channel. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="633" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="633" bodyend="636"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1af80049a6939afd97599e1b6d54d742d8" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisAsciiFileOutput_local</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisAsciiFileOutput_local</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for AsciiFile output comm to local file. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to path of local file. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t for line-by-line output to a file or channel. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="644" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="644" bodyend="647"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a5bd44d0ac76cbe9ddad37b017967afa8" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisAsciiFileInput</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisAsciiFileInput</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for AsciiFile input comm from channel. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to name of an input channel. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t for line-by-line input from a file or channel. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="655" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="655" bodyend="658"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a819420c32b1768adf6ecddb77f01a46d" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisAsciiFileInput_local</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisAsciiFileInput_local</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for AsciiFile input comm from local file. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to path of local file. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t for line-by-line input from a file or channel. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="667" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="667" bodyend="670"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1aab37e4d3c533bbb346834d243ada439c" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisAsciiTableOutput</definition>
        <argsstring>(const char *name, const char *format_str)</argsstring>
        <name>cisAsciiTableOutput</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>format_str</declname>
        </param>
        <briefdescription>
<para>Constructor for table output comm to an output channel. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to output channel name. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">format_str</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to format string that should be used to format rows into table lines. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t output structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="769" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="769" bodyend="790"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a432b2af70ec581e27c2551e70cc2240f" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisAsciiTableInput</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisAsciiTableInput</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for AsciiTable input comm from an input channel. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to input channel name. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t input structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="798" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="798" bodyend="800"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a152031e8e2ddc407fe1c387a15884726" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisAsciiTableOutput_local</definition>
        <argsstring>(const char *name, const char *format_str)</argsstring>
        <name>cisAsciiTableOutput_local</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>format_str</declname>
        </param>
        <briefdescription>
<para>Constructor for table output comm to local file. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to local file path. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">format_str</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to format string that should be used to format rows into table lines. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t output structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="810" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="810" bodyend="812"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1ae4443c64fc45f9444a6732be670217b5" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisAsciiTableInput_local</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisAsciiTableInput_local</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for AsciiTable input comm from local file. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to local file path. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t input structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="820" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="820" bodyend="822"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1ae0ba86b371a7dfdcad88d0b7c483b3f9" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisAsciiArrayOutput</definition>
        <argsstring>(const char *name, const char *format_str)</argsstring>
        <name>cisAsciiArrayOutput</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>format_str</declname>
        </param>
        <briefdescription>
<para>Constructor for table output comm with array output. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to an output channel name. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">format_str</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to format string that should be used to format rows into table lines. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t output structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="832" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="832" bodyend="836"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1af39c49344f4e7193a49f1009eb21391a" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisAsciiArrayInput</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisAsciiArrayInput</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for AsciiTable input comm with array input. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to an input channel name. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t input structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="844" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="844" bodyend="849"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1ab108509a9e8a2884ff313438331acd3a" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisAsciiArrayOutput_local</definition>
        <argsstring>(const char *name, const char *format_str)</argsstring>
        <name>cisAsciiArrayOutput_local</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>format_str</declname>
        </param>
        <briefdescription>
<para>Constructor for table output comm to local file from arrays. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to local file path. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">format_str</parametername>
</parameternamelist>
<parameterdescription>
<para>character pointer to format string that should be used to format rows into table lines. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t output structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="859" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="859" bodyend="863"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1af12bbe5627639515df52b78a1989ad53" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisAsciiArrayInput_local</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisAsciiArrayInput_local</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for AsciiTable input comm from local file as arrays. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to local file path. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t input structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="871" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="871" bodyend="875"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a811c41514d8d7f87327a9ee6a3975f0c" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisPlyOutput</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisPlyOutput</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for ply output comm to an output channel. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to output channel name. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t output structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="920" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="920" bodyend="930"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a80d4629c58190194e1a5526dccbde494" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisPlyInput</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisPlyInput</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for ply input comm from an input channel. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to input channel name. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t input structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="938" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="938" bodyend="940"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a18a23cd3c7533884d909d2cc22c29f3a" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisObjOutput</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisObjOutput</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for obj output comm to an output channel. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to output channel name. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t output structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="986" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="986" bodyend="996"/>
      </memberdef>
      <memberdef kind="function" id="_cis_interface_8h_1a1fdb49c4b46bc5e0f6879de3b443864b" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>comm_t</type>
        <definition>static comm_t cisObjInput</definition>
        <argsstring>(const char *name)</argsstring>
        <name>cisObjInput</name>
        <param>
          <type>const char *</type>
          <declname>name</declname>
        </param>
        <briefdescription>
<para>Constructor for obj input comm from an input channel. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>constant character pointer to input channel name. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>comm_t input structure. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" line="1004" column="1" bodyfile="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h" bodystart="1004" bodyend="1006"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <programlisting>
<codeline lineno="1"></codeline>
<codeline lineno="2"><highlight class="preprocessor">#ifndef<sp/>CISINTERFACE_H_</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="3"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>CISINTERFACE_H_</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="4"><highlight class="normal"></highlight></codeline>
<codeline lineno="5"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;../tools.h&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="6"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;../communication/communication.h&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="7"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;../dataio/AsciiFile.h&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="8"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;../dataio/AsciiTable.h&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="9"><highlight class="normal"></highlight></codeline>
<codeline lineno="10"><highlight class="normal"></highlight><highlight class="preprocessor">#ifdef<sp/>__cplusplus<sp/></highlight><highlight class="comment">/*<sp/>If<sp/>this<sp/>is<sp/>a<sp/>C++<sp/>compiler,<sp/>use<sp/>C<sp/>linkage<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="11"><highlight class="normal"></highlight><highlight class="keyword">extern</highlight><highlight class="normal"><sp/></highlight><highlight class="stringliteral">&quot;C&quot;</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="12"><highlight class="normal"></highlight><highlight class="preprocessor">#endif</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="13"><highlight class="normal"></highlight></codeline>
<codeline lineno="15"><highlight class="preprocessor">#define<sp/>cisOutput_t<sp/>comm_t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cisInput_t<sp/>comm_t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cis_free<sp/>free_comm</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="18"><highlight class="normal"></highlight></codeline>
<codeline lineno="19"><highlight class="normal"></highlight><highlight class="comment">//==============================================================================</highlight></codeline>
<codeline lineno="40"><highlight class="comment"></highlight><highlight class="comment">//==============================================================================</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="41"><highlight class="normal"></highlight></codeline>
<codeline lineno="52"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="53"><highlight class="normal">cisOutput_t<sp/>cisOutputFmt(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*fmtString){</highlight></codeline>
<codeline lineno="54"><highlight class="normal"><sp/><sp/>cisOutput_t<sp/>ret<sp/>=<sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;send&quot;</highlight><highlight class="normal">,<sp/>_default_comm,</highlight></codeline>
<codeline lineno="55"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">*)fmtString);</highlight></codeline>
<codeline lineno="56"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="57"><highlight class="normal">};</highlight></codeline>
<codeline lineno="58"><highlight class="normal"></highlight></codeline>
<codeline lineno="68"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="69"><highlight class="normal">cisInput_t<sp/>cisInputFmt(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*fmtString){</highlight></codeline>
<codeline lineno="70"><highlight class="normal"><sp/><sp/>cisInput_t<sp/>ret<sp/>=<sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;recv&quot;</highlight><highlight class="normal">,<sp/>_default_comm,</highlight></codeline>
<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">*)fmtString);</highlight></codeline>
<codeline lineno="72"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="73"><highlight class="normal">};</highlight></codeline>
<codeline lineno="74"><highlight class="normal"></highlight></codeline>
<codeline lineno="82"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="83"><highlight class="normal">cisOutput_t<sp/>cisOutput(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{</highlight></codeline>
<codeline lineno="84"><highlight class="normal"><sp/><sp/>cisOutput_t<sp/>ret<sp/>=<sp/>cisOutputFmt(name,<sp/>NULL);</highlight></codeline>
<codeline lineno="85"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="86"><highlight class="normal">};</highlight></codeline>
<codeline lineno="87"><highlight class="normal"></highlight></codeline>
<codeline lineno="95"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="96"><highlight class="normal">cisInput_t<sp/>cisInput(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name){</highlight></codeline>
<codeline lineno="97"><highlight class="normal"><sp/><sp/>cisInput_t<sp/>ret<sp/>=<sp/>cisInputFmt(name,<sp/>NULL);</highlight></codeline>
<codeline lineno="98"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="99"><highlight class="normal">};</highlight></codeline>
<codeline lineno="100"><highlight class="normal"></highlight></codeline>
<codeline lineno="110"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="111"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cis_send(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisOutput_t<sp/>cisQ,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*data,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>len)<sp/>{</highlight></codeline>
<codeline lineno="112"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>comm_send(cisQ,<sp/>data,<sp/>len);</highlight></codeline>
<codeline lineno="113"><highlight class="normal">};</highlight></codeline>
<codeline lineno="114"><highlight class="normal"></highlight></codeline>
<codeline lineno="120"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="121"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cis_send_eof(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisOutput_t<sp/>cisQ)<sp/>{</highlight></codeline>
<codeline lineno="122"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>comm_send_eof(cisQ);</highlight></codeline>
<codeline lineno="123"><highlight class="normal">};</highlight></codeline>
<codeline lineno="124"><highlight class="normal"></highlight></codeline>
<codeline lineno="135"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="136"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cis_recv(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisInput_t<sp/>cisQ,<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*data,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>len){</highlight></codeline>
<codeline lineno="137"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>comm_recv(cisQ,<sp/>data,<sp/>len);</highlight></codeline>
<codeline lineno="138"><highlight class="normal">};</highlight></codeline>
<codeline lineno="139"><highlight class="normal"></highlight></codeline>
<codeline lineno="151"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="152"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cis_send_nolimit(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisOutput_t<sp/>cisQ,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*data,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>len){</highlight></codeline>
<codeline lineno="153"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>comm_send_nolimit(cisQ,<sp/>data,<sp/>len);</highlight></codeline>
<codeline lineno="154"><highlight class="normal">};</highlight></codeline>
<codeline lineno="155"><highlight class="normal"></highlight></codeline>
<codeline lineno="161"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="162"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cis_send_nolimit_eof(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisOutput_t<sp/>cisQ)<sp/>{</highlight></codeline>
<codeline lineno="163"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>comm_send_nolimit_eof(cisQ);</highlight></codeline>
<codeline lineno="164"><highlight class="normal">};</highlight></codeline>
<codeline lineno="165"><highlight class="normal"></highlight></codeline>
<codeline lineno="179"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="180"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cis_recv_nolimit(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisInput_t<sp/>cisQ,<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**data,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>len0){</highlight></codeline>
<codeline lineno="181"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>comm_recv_nolimit(cisQ,<sp/>data,<sp/>len0);</highlight></codeline>
<codeline lineno="182"><highlight class="normal">};</highlight></codeline>
<codeline lineno="183"><highlight class="normal"></highlight></codeline>
<codeline lineno="184"><highlight class="normal"></highlight></codeline>
<codeline lineno="185"><highlight class="normal"></highlight><highlight class="comment">//==============================================================================</highlight></codeline>
<codeline lineno="205"><highlight class="comment"></highlight><highlight class="comment">//==============================================================================</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="206"><highlight class="normal"></highlight></codeline>
<codeline lineno="216"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="217"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>vcisSend(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisOutput_t<sp/>cisQ,<sp/>va_list<sp/>ap)<sp/>{</highlight></codeline>
<codeline lineno="218"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>vcommSend(cisQ,<sp/>ap);</highlight></codeline>
<codeline lineno="219"><highlight class="normal">};</highlight></codeline>
<codeline lineno="220"><highlight class="normal"></highlight></codeline>
<codeline lineno="233"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="234"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>vcisRecv(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisInput_t<sp/>cisQ,<sp/>va_list<sp/>ap)<sp/>{</highlight></codeline>
<codeline lineno="235"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>vcommRecv(cisQ,<sp/>ap);</highlight></codeline>
<codeline lineno="236"><highlight class="normal">};</highlight></codeline>
<codeline lineno="237"><highlight class="normal"></highlight></codeline>
<codeline lineno="247"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="248"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cisSend(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisOutput_t<sp/>cisQ,<sp/>...){</highlight></codeline>
<codeline lineno="249"><highlight class="normal"><sp/><sp/>va_list<sp/>ap;</highlight></codeline>
<codeline lineno="250"><highlight class="normal"><sp/><sp/>va_start(ap,<sp/>cisQ);</highlight></codeline>
<codeline lineno="251"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ret<sp/>=<sp/>vcommSend(cisQ,<sp/>ap);</highlight></codeline>
<codeline lineno="252"><highlight class="normal"><sp/><sp/>va_end(ap);</highlight></codeline>
<codeline lineno="253"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="254"><highlight class="normal">};</highlight></codeline>
<codeline lineno="255"><highlight class="normal"></highlight></codeline>
<codeline lineno="267"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="268"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cisRecv(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisInput_t<sp/>cisQ,<sp/>...){</highlight></codeline>
<codeline lineno="269"><highlight class="normal"><sp/><sp/>va_list<sp/>ap;</highlight></codeline>
<codeline lineno="270"><highlight class="normal"><sp/><sp/>va_start(ap,<sp/>cisQ);</highlight></codeline>
<codeline lineno="271"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ret<sp/>=<sp/>vcommRecv(cisQ,<sp/>ap);</highlight></codeline>
<codeline lineno="272"><highlight class="normal"><sp/><sp/>va_end(ap);</highlight></codeline>
<codeline lineno="273"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="274"><highlight class="normal">};</highlight></codeline>
<codeline lineno="275"><highlight class="normal"></highlight></codeline>
<codeline lineno="286"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="287"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>vcisSend_nolimit(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisOutput_t<sp/>cisQ,<sp/>va_list<sp/>ap)<sp/>{</highlight></codeline>
<codeline lineno="288"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>vcommSend_nolimit(cisQ,<sp/>ap);</highlight></codeline>
<codeline lineno="289"><highlight class="normal">};</highlight></codeline>
<codeline lineno="290"><highlight class="normal"></highlight></codeline>
<codeline lineno="303"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="304"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>vcisRecv_nolimit(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisInput_t<sp/>cisQ,<sp/>va_list<sp/>ap)<sp/>{</highlight></codeline>
<codeline lineno="305"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>vcommRecv_nolimit(cisQ,<sp/>ap);</highlight></codeline>
<codeline lineno="306"><highlight class="normal">};</highlight></codeline>
<codeline lineno="307"><highlight class="normal"></highlight></codeline>
<codeline lineno="318"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="319"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cisSend_nolimit(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisOutput_t<sp/>cisQ,<sp/>...)<sp/>{</highlight></codeline>
<codeline lineno="320"><highlight class="normal"><sp/><sp/>va_list<sp/>ap;</highlight></codeline>
<codeline lineno="321"><highlight class="normal"><sp/><sp/>va_start(ap,<sp/>cisQ);</highlight></codeline>
<codeline lineno="322"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ret<sp/>=<sp/>vcommSend_nolimit(cisQ,<sp/>ap);</highlight></codeline>
<codeline lineno="323"><highlight class="normal"><sp/><sp/>va_end(ap);</highlight></codeline>
<codeline lineno="324"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="325"><highlight class="normal">};</highlight></codeline>
<codeline lineno="326"><highlight class="normal"></highlight></codeline>
<codeline lineno="338"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="339"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>cisRecv_nolimit(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisInput_t<sp/>cisQ,<sp/>...)<sp/>{</highlight></codeline>
<codeline lineno="340"><highlight class="normal"><sp/><sp/>va_list<sp/>ap;</highlight></codeline>
<codeline lineno="341"><highlight class="normal"><sp/><sp/>va_start(ap,<sp/>cisQ);</highlight></codeline>
<codeline lineno="342"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ret<sp/>=<sp/>vcommRecv_nolimit(cisQ,<sp/>ap);</highlight></codeline>
<codeline lineno="343"><highlight class="normal"><sp/><sp/>va_end(ap);</highlight></codeline>
<codeline lineno="344"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="345"><highlight class="normal">};</highlight></codeline>
<codeline lineno="346"><highlight class="normal"></highlight></codeline>
<codeline lineno="347"><highlight class="normal"><sp/></highlight></codeline>
<codeline lineno="348"><highlight class="normal"></highlight><highlight class="comment">//==============================================================================</highlight></codeline>
<codeline lineno="386"><highlight class="comment"></highlight><highlight class="comment">//==============================================================================</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="387"><highlight class="normal"></highlight></codeline>
<codeline lineno="393"><highlight class="preprocessor">#define<sp/>cisRpc_t<sp/>comm_t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="394"><highlight class="normal"></highlight></codeline>
<codeline lineno="405"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight></codeline>
<codeline lineno="406"><highlight class="normal">cisRpc_t<sp/>cisRpc(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*outFormat,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*inFormat)<sp/>{</highlight></codeline>
<codeline lineno="407"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>init_comm(name,<sp/>outFormat,<sp/>RPC_COMM,<sp/>inFormat);</highlight></codeline>
<codeline lineno="408"><highlight class="normal">};</highlight></codeline>
<codeline lineno="409"><highlight class="normal"></highlight></codeline>
<codeline lineno="420"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="421"><highlight class="normal">comm_t<sp/>cisRpcClient(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*outFormat,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*inFormat){</highlight></codeline>
<codeline lineno="422"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>init_comm(name,<sp/>outFormat,<sp/>CLIENT_COMM,<sp/>inFormat);</highlight></codeline>
<codeline lineno="423"><highlight class="normal">};</highlight></codeline>
<codeline lineno="424"><highlight class="normal"></highlight></codeline>
<codeline lineno="435"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="436"><highlight class="normal">comm_t<sp/>cisRpcServer(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*inFormat,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*outFormat){</highlight></codeline>
<codeline lineno="437"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>init_comm(name,<sp/>inFormat,<sp/>SERVER_COMM,<sp/>outFormat);</highlight></codeline>
<codeline lineno="438"><highlight class="normal">};</highlight></codeline>
<codeline lineno="439"><highlight class="normal"></highlight></codeline>
<codeline lineno="450"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="451"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>vrpcSend(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisRpc_t<sp/>rpc,<sp/>va_list<sp/>ap)<sp/>{</highlight></codeline>
<codeline lineno="452"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ret<sp/>=<sp/>vcommSend_nolimit(rpc,<sp/>ap);</highlight></codeline>
<codeline lineno="453"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="454"><highlight class="normal">};</highlight></codeline>
<codeline lineno="455"><highlight class="normal"></highlight></codeline>
<codeline lineno="469"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="470"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>vrpcRecv(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisRpc_t<sp/>rpc,<sp/>va_list<sp/>ap)<sp/>{</highlight></codeline>
<codeline lineno="471"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ret<sp/>=<sp/>vcommRecv_nolimit(rpc,<sp/>ap);</highlight></codeline>
<codeline lineno="472"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="473"><highlight class="normal">};</highlight></codeline>
<codeline lineno="474"><highlight class="normal"></highlight></codeline>
<codeline lineno="485"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="486"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>rpcSend(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisRpc_t<sp/>rpc,<sp/>...){</highlight></codeline>
<codeline lineno="487"><highlight class="normal"><sp/><sp/>va_list<sp/>ap;</highlight></codeline>
<codeline lineno="488"><highlight class="normal"><sp/><sp/>va_start(ap,<sp/>rpc);</highlight></codeline>
<codeline lineno="489"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ret<sp/>=<sp/>vrpcSend(rpc,<sp/>ap);</highlight></codeline>
<codeline lineno="490"><highlight class="normal"><sp/><sp/>va_end(ap);</highlight></codeline>
<codeline lineno="491"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="492"><highlight class="normal">};</highlight></codeline>
<codeline lineno="493"><highlight class="normal"></highlight></codeline>
<codeline lineno="507"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="508"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>rpcRecv(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisRpc_t<sp/>rpc,<sp/>...)<sp/>{</highlight></codeline>
<codeline lineno="509"><highlight class="normal"><sp/><sp/>va_list<sp/>ap;</highlight></codeline>
<codeline lineno="510"><highlight class="normal"><sp/><sp/>va_start(ap,<sp/>rpc);</highlight></codeline>
<codeline lineno="511"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ret<sp/>=<sp/>vrpcRecv(rpc,<sp/>ap);</highlight></codeline>
<codeline lineno="512"><highlight class="normal"><sp/><sp/>va_end(ap);</highlight></codeline>
<codeline lineno="513"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="514"><highlight class="normal">};</highlight></codeline>
<codeline lineno="515"><highlight class="normal"></highlight></codeline>
<codeline lineno="529"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="530"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>vrpcCall(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisRpc_t<sp/>rpc,<sp/>va_list<sp/>ap)<sp/>{</highlight></codeline>
<codeline lineno="531"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>sret,<sp/>rret;</highlight></codeline>
<codeline lineno="532"><highlight class="normal"><sp/><sp/>rret<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="533"><highlight class="normal"></highlight></codeline>
<codeline lineno="534"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Create<sp/>copy<sp/>for<sp/>receiving</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="535"><highlight class="normal"><sp/><sp/>va_list<sp/>op;</highlight></codeline>
<codeline lineno="536"><highlight class="normal"><sp/><sp/>va_copy(op,<sp/>ap);</highlight></codeline>
<codeline lineno="537"><highlight class="normal"><sp/><sp/></highlight></codeline>
<codeline lineno="538"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>pack<sp/>the<sp/>args<sp/>and<sp/>call</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="539"><highlight class="normal"><sp/><sp/>sret<sp/>=<sp/>vcommSend_nolimit(rpc,<sp/>ap);</highlight></codeline>
<codeline lineno="540"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(sret<sp/>&lt;<sp/>0)<sp/>{</highlight></codeline>
<codeline lineno="541"><highlight class="normal"><sp/><sp/><sp/><sp/>cislog_error(</highlight><highlight class="stringliteral">&quot;vrpcCall:<sp/>vcisSend_nolimit<sp/>error:<sp/>ret<sp/>%d:<sp/>%s&quot;</highlight><highlight class="normal">,<sp/>sret,<sp/>strerror(errno));</highlight></codeline>
<codeline lineno="542"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>-1;</highlight></codeline>
<codeline lineno="543"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="544"><highlight class="normal"></highlight></codeline>
<codeline lineno="545"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Advance<sp/>through<sp/>sent<sp/>arguments</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="546"><highlight class="normal"><sp/><sp/>cislog_debug(</highlight><highlight class="stringliteral">&quot;vrpcCall:<sp/>Used<sp/>%d<sp/>arguments<sp/>in<sp/>send&quot;</highlight><highlight class="normal">,<sp/>sret);</highlight></codeline>
<codeline lineno="547"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i;</highlight></codeline>
<codeline lineno="548"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(i<sp/>=<sp/>0;<sp/>i<sp/>&lt;<sp/>sret;<sp/>i++)<sp/>{</highlight></codeline>
<codeline lineno="549"><highlight class="normal"><sp/><sp/><sp/><sp/>va_arg(op,<sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal">*);</highlight></codeline>
<codeline lineno="550"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="551"><highlight class="normal"></highlight></codeline>
<codeline lineno="552"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>unpack<sp/>the<sp/>messages<sp/>into<sp/>the<sp/>remaining<sp/>variable<sp/>arguments</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="553"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>va_list<sp/>op;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="554"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>va_copy(op,<sp/>ap);</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="555"><highlight class="normal"><sp/><sp/>rret<sp/>=<sp/>vcommRecv_nolimit(rpc,<sp/>op);</highlight></codeline>
<codeline lineno="556"><highlight class="normal"><sp/><sp/>va_end(op);</highlight></codeline>
<codeline lineno="557"><highlight class="normal"><sp/><sp/></highlight></codeline>
<codeline lineno="558"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>rret;</highlight></codeline>
<codeline lineno="559"><highlight class="normal">};</highlight></codeline>
<codeline lineno="560"><highlight class="normal"></highlight></codeline>
<codeline lineno="574"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="575"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>rpcCall(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>cisRpc_t<sp/>rpc,<sp/><sp/>...){</highlight></codeline>
<codeline lineno="576"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="577"><highlight class="normal"><sp/><sp/>va_list<sp/>ap;</highlight></codeline>
<codeline lineno="578"><highlight class="normal"><sp/><sp/>va_start(ap,<sp/>rpc);</highlight></codeline>
<codeline lineno="579"><highlight class="normal"><sp/><sp/>ret<sp/>=<sp/>vrpcCall(rpc,<sp/>ap);</highlight></codeline>
<codeline lineno="580"><highlight class="normal"><sp/><sp/>va_end(ap);</highlight></codeline>
<codeline lineno="581"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>ret;</highlight></codeline>
<codeline lineno="582"><highlight class="normal">};</highlight></codeline>
<codeline lineno="583"><highlight class="normal"></highlight></codeline>
<codeline lineno="584"><highlight class="normal"></highlight></codeline>
<codeline lineno="585"><highlight class="normal"></highlight><highlight class="comment">//==============================================================================</highlight></codeline>
<codeline lineno="621"><highlight class="comment"></highlight><highlight class="comment">//==============================================================================</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="622"><highlight class="normal"></highlight></codeline>
<codeline lineno="624"><highlight class="preprocessor">#define<sp/>cisAsciiFileInput_t<sp/>comm_t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="625"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cisAsciiFileOutput_t<sp/>comm_t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="626"><highlight class="normal"></highlight></codeline>
<codeline lineno="632"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="633"><highlight class="normal">comm_t<sp/>cisAsciiFileOutput(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{</highlight></codeline>
<codeline lineno="634"><highlight class="normal"><sp/><sp/>comm_t<sp/>out<sp/>=<sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;send&quot;</highlight><highlight class="normal">,<sp/>_default_comm,<sp/>NULL);</highlight></codeline>
<codeline lineno="635"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>out;</highlight></codeline>
<codeline lineno="636"><highlight class="normal">};</highlight></codeline>
<codeline lineno="637"><highlight class="normal"></highlight></codeline>
<codeline lineno="643"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="644"><highlight class="normal">comm_t<sp/>cisAsciiFileOutput_local(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{</highlight></codeline>
<codeline lineno="645"><highlight class="normal"><sp/><sp/>comm_t<sp/>out<sp/>=<sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;send&quot;</highlight><highlight class="normal">,<sp/>ASCII_FILE_COMM,<sp/>NULL);</highlight></codeline>
<codeline lineno="646"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>out;</highlight></codeline>
<codeline lineno="647"><highlight class="normal">};</highlight></codeline>
<codeline lineno="648"><highlight class="normal"></highlight></codeline>
<codeline lineno="654"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="655"><highlight class="normal">comm_t<sp/>cisAsciiFileInput(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{</highlight></codeline>
<codeline lineno="656"><highlight class="normal"><sp/><sp/>comm_t<sp/>out<sp/>=<sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;recv&quot;</highlight><highlight class="normal">,<sp/>_default_comm,<sp/>NULL);</highlight></codeline>
<codeline lineno="657"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>out;</highlight></codeline>
<codeline lineno="658"><highlight class="normal">};</highlight></codeline>
<codeline lineno="659"><highlight class="normal"></highlight></codeline>
<codeline lineno="660"><highlight class="normal"></highlight></codeline>
<codeline lineno="666"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="667"><highlight class="normal">comm_t<sp/>cisAsciiFileInput_local(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{</highlight></codeline>
<codeline lineno="668"><highlight class="normal"><sp/><sp/>comm_t<sp/>out<sp/>=<sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;recv&quot;</highlight><highlight class="normal">,<sp/>ASCII_FILE_COMM,<sp/>NULL);</highlight></codeline>
<codeline lineno="669"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>out;</highlight></codeline>
<codeline lineno="670"><highlight class="normal">};</highlight></codeline>
<codeline lineno="671"><highlight class="normal"></highlight></codeline>
<codeline lineno="672"><highlight class="normal"></highlight></codeline>
<codeline lineno="673"><highlight class="normal"></highlight></codeline>
<codeline lineno="674"><highlight class="normal"></highlight><highlight class="comment">//==============================================================================</highlight></codeline>
<codeline lineno="753"><highlight class="comment"></highlight><highlight class="comment">//==============================================================================</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="754"><highlight class="normal"></highlight></codeline>
<codeline lineno="756"><highlight class="preprocessor">#define<sp/>cisAsciiTableInput_t<sp/>comm_t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="757"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cisAsciiTableOutput_t<sp/>comm_t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="758"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cisAsciiArrayInput_t<sp/>comm_t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="759"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cisAsciiArrayOutput_t<sp/>comm_t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="760"><highlight class="normal"></highlight></codeline>
<codeline lineno="768"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="769"><highlight class="normal">comm_t<sp/>cisAsciiTableOutput(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*format_str)<sp/>{</highlight></codeline>
<codeline lineno="770"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>flag<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="771"><highlight class="normal"><sp/><sp/>comm_t<sp/>out<sp/>=<sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;send&quot;</highlight><highlight class="normal">,<sp/>_default_comm,<sp/>NULL);</highlight></codeline>
<codeline lineno="772"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(out.valid)<sp/>{</highlight></codeline>
<codeline lineno="773"><highlight class="normal"><sp/><sp/><sp/><sp/>flag<sp/>=<sp/>update_serializer(out.serializer,<sp/>ASCII_TABLE_SERI,</highlight></codeline>
<codeline lineno="774"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">*)format_str);</highlight></codeline>
<codeline lineno="775"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(flag<sp/>==<sp/>0)<sp/>{</highlight></codeline>
<codeline lineno="776"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structascii_table__t" kindref="compound">asciiTable_t</ref><sp/>*table<sp/>=<sp/>(<ref refid="structascii_table__t" kindref="compound">asciiTable_t</ref>*)(out.serializer-&gt;info);</highlight></codeline>
<codeline lineno="777"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>flag<sp/>=<sp/>at_update(table,<sp/>name,<sp/></highlight><highlight class="stringliteral">&quot;0&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="778"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="779"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="780"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>TODO:<sp/>Make<sp/>sure<sp/>this<sp/>is<sp/>freed.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="781"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">/*<sp/>asciiTable_t<sp/>*table<sp/>=<sp/>(asciiTable_t*)malloc(sizeof(asciiTable_t));<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="782"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">/*<sp/>table[0]<sp/>=<sp/>asciiTable(name,<sp/>&quot;0&quot;,<sp/>format_str,<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="783"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">/*<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>NULL,<sp/>NULL,<sp/>NULL);<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="784"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">/*<sp/>out.serializer.type<sp/>=<sp/>ASCII_TABLE_SERI;<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="785"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">/*<sp/>out.serializer.info<sp/>=<sp/>(void*)table;<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="786"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(flag<sp/>&lt;<sp/>0)<sp/>{</highlight></codeline>
<codeline lineno="787"><highlight class="normal"><sp/><sp/><sp/><sp/>out.valid<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="788"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="789"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>out;</highlight></codeline>
<codeline lineno="790"><highlight class="normal">};</highlight></codeline>
<codeline lineno="791"><highlight class="normal"></highlight></codeline>
<codeline lineno="797"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="798"><highlight class="normal">comm_t<sp/>cisAsciiTableInput(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{</highlight></codeline>
<codeline lineno="799"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;recv&quot;</highlight><highlight class="normal">,<sp/>_default_comm,<sp/>NULL);</highlight></codeline>
<codeline lineno="800"><highlight class="normal">};</highlight></codeline>
<codeline lineno="801"><highlight class="normal"></highlight></codeline>
<codeline lineno="809"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="810"><highlight class="normal">comm_t<sp/>cisAsciiTableOutput_local(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*format_str)<sp/>{</highlight></codeline>
<codeline lineno="811"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;send&quot;</highlight><highlight class="normal">,<sp/>ASCII_TABLE_COMM,<sp/>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">*)format_str);</highlight></codeline>
<codeline lineno="812"><highlight class="normal">};</highlight></codeline>
<codeline lineno="813"><highlight class="normal"></highlight></codeline>
<codeline lineno="819"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="820"><highlight class="normal">comm_t<sp/>cisAsciiTableInput_local(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{</highlight></codeline>
<codeline lineno="821"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;recv&quot;</highlight><highlight class="normal">,<sp/>ASCII_TABLE_COMM,<sp/>NULL);</highlight></codeline>
<codeline lineno="822"><highlight class="normal">};</highlight></codeline>
<codeline lineno="823"><highlight class="normal"></highlight></codeline>
<codeline lineno="831"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="832"><highlight class="normal">comm_t<sp/>cisAsciiArrayOutput(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*format_str)<sp/>{</highlight></codeline>
<codeline lineno="833"><highlight class="normal"><sp/><sp/>comm_t<sp/>out<sp/>=<sp/>cisAsciiTableOutput(name,<sp/>format_str);</highlight></codeline>
<codeline lineno="834"><highlight class="normal"><sp/><sp/>out.serializer-&gt;type<sp/>=<sp/>ASCII_TABLE_ARRAY_SERI;</highlight></codeline>
<codeline lineno="835"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>out;</highlight></codeline>
<codeline lineno="836"><highlight class="normal">};</highlight></codeline>
<codeline lineno="837"><highlight class="normal"></highlight></codeline>
<codeline lineno="843"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="844"><highlight class="normal">comm_t<sp/>cisAsciiArrayInput(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{</highlight></codeline>
<codeline lineno="845"><highlight class="normal"><sp/><sp/>comm_t<sp/>out<sp/>=<sp/>cisAsciiTableInput(name);</highlight></codeline>
<codeline lineno="846"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>Don&apos;t<sp/>set<sp/>this<sp/>so<sp/>it<sp/>is<sp/>updated<sp/>when<sp/>it<sp/>is<sp/>received.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="847"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>out.serializer-&gt;type<sp/>=<sp/>ASCII_TABLE_ARRAY_SERI;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="848"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>out;</highlight></codeline>
<codeline lineno="849"><highlight class="normal">};</highlight></codeline>
<codeline lineno="850"><highlight class="normal"></highlight></codeline>
<codeline lineno="858"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="859"><highlight class="normal">comm_t<sp/>cisAsciiArrayOutput_local(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*format_str)<sp/>{</highlight></codeline>
<codeline lineno="860"><highlight class="normal"><sp/><sp/>comm_t<sp/>out<sp/>=<sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;send&quot;</highlight><highlight class="normal">,<sp/>ASCII_TABLE_COMM,<sp/>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">*)format_str);</highlight></codeline>
<codeline lineno="861"><highlight class="normal"><sp/><sp/>out.serializer-&gt;type<sp/>=<sp/>ASCII_TABLE_ARRAY_SERI;</highlight></codeline>
<codeline lineno="862"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>out;</highlight></codeline>
<codeline lineno="863"><highlight class="normal">};</highlight></codeline>
<codeline lineno="864"><highlight class="normal"></highlight></codeline>
<codeline lineno="870"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="871"><highlight class="normal">comm_t<sp/>cisAsciiArrayInput_local(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{</highlight></codeline>
<codeline lineno="872"><highlight class="normal"><sp/><sp/>comm_t<sp/>out<sp/>=<sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;recv&quot;</highlight><highlight class="normal">,<sp/>ASCII_TABLE_COMM,<sp/>NULL);</highlight></codeline>
<codeline lineno="873"><highlight class="normal"><sp/><sp/>out.serializer-&gt;type<sp/>=<sp/>ASCII_TABLE_ARRAY_SERI;</highlight></codeline>
<codeline lineno="874"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>out;</highlight></codeline>
<codeline lineno="875"><highlight class="normal">};</highlight></codeline>
<codeline lineno="876"><highlight class="normal"></highlight></codeline>
<codeline lineno="877"><highlight class="normal"></highlight><highlight class="comment">//==============================================================================</highlight></codeline>
<codeline lineno="908"><highlight class="comment"></highlight><highlight class="comment">//==============================================================================</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="909"><highlight class="normal"></highlight></codeline>
<codeline lineno="911"><highlight class="preprocessor">#define<sp/>cisPlyInput_t<sp/>comm_t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="912"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cisPlyOutput_t<sp/>comm_t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="913"><highlight class="normal"></highlight></codeline>
<codeline lineno="919"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="920"><highlight class="normal">comm_t<sp/>cisPlyOutput(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{</highlight></codeline>
<codeline lineno="921"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>flag<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="922"><highlight class="normal"><sp/><sp/>comm_t<sp/>out<sp/>=<sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;send&quot;</highlight><highlight class="normal">,<sp/>_default_comm,<sp/>NULL);</highlight></codeline>
<codeline lineno="923"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(out.valid)<sp/>{</highlight></codeline>
<codeline lineno="924"><highlight class="normal"><sp/><sp/><sp/><sp/>flag<sp/>=<sp/>update_serializer(out.serializer,<sp/>PLY_SERI,<sp/>NULL);</highlight></codeline>
<codeline lineno="925"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="926"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(flag<sp/>&lt;<sp/>0)<sp/>{</highlight></codeline>
<codeline lineno="927"><highlight class="normal"><sp/><sp/><sp/><sp/>out.valid<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="928"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="929"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>out;</highlight></codeline>
<codeline lineno="930"><highlight class="normal">};</highlight></codeline>
<codeline lineno="931"><highlight class="normal"></highlight></codeline>
<codeline lineno="937"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="938"><highlight class="normal">comm_t<sp/>cisPlyInput(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{</highlight></codeline>
<codeline lineno="939"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;recv&quot;</highlight><highlight class="normal">,<sp/>_default_comm,<sp/>NULL);</highlight></codeline>
<codeline lineno="940"><highlight class="normal">};</highlight></codeline>
<codeline lineno="941"><highlight class="normal"></highlight></codeline>
<codeline lineno="942"><highlight class="normal"></highlight></codeline>
<codeline lineno="943"><highlight class="normal"></highlight><highlight class="comment">//==============================================================================</highlight></codeline>
<codeline lineno="974"><highlight class="comment"></highlight><highlight class="comment">//==============================================================================</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="975"><highlight class="normal"></highlight></codeline>
<codeline lineno="977"><highlight class="preprocessor">#define<sp/>cisObjInput_t<sp/>comm_t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="978"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cisObjOutput_t<sp/>comm_t</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="979"><highlight class="normal"></highlight></codeline>
<codeline lineno="985"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="986"><highlight class="normal">comm_t<sp/>cisObjOutput(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{</highlight></codeline>
<codeline lineno="987"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>flag<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="988"><highlight class="normal"><sp/><sp/>comm_t<sp/>out<sp/>=<sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;send&quot;</highlight><highlight class="normal">,<sp/>_default_comm,<sp/>NULL);</highlight></codeline>
<codeline lineno="989"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(out.valid)<sp/>{</highlight></codeline>
<codeline lineno="990"><highlight class="normal"><sp/><sp/><sp/><sp/>flag<sp/>=<sp/>update_serializer(out.serializer,<sp/>OBJ_SERI,<sp/>NULL);</highlight></codeline>
<codeline lineno="991"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="992"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(flag<sp/>&lt;<sp/>0)<sp/>{</highlight></codeline>
<codeline lineno="993"><highlight class="normal"><sp/><sp/><sp/><sp/>out.valid<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="994"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="995"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>out;</highlight></codeline>
<codeline lineno="996"><highlight class="normal">};</highlight></codeline>
<codeline lineno="997"><highlight class="normal"></highlight></codeline>
<codeline lineno="1003"><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1004"><highlight class="normal">comm_t<sp/>cisObjInput(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>*name)<sp/>{</highlight></codeline>
<codeline lineno="1005"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>init_comm(name,<sp/></highlight><highlight class="stringliteral">&quot;recv&quot;</highlight><highlight class="normal">,<sp/>_default_comm,<sp/>NULL);</highlight></codeline>
<codeline lineno="1006"><highlight class="normal">};</highlight></codeline>
<codeline lineno="1007"><highlight class="normal"></highlight></codeline>
<codeline lineno="1008"><highlight class="normal"></highlight></codeline>
<codeline lineno="1009"><highlight class="normal"></highlight><highlight class="preprocessor">#ifdef<sp/>__cplusplus<sp/></highlight><highlight class="comment">/*<sp/>If<sp/>this<sp/>is<sp/>a<sp/>C++<sp/>compiler,<sp/>end<sp/>C<sp/>linkage<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1010"><highlight class="normal">}</highlight></codeline>
<codeline lineno="1011"><highlight class="normal"></highlight><highlight class="preprocessor">#endif</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="1012"><highlight class="normal"></highlight></codeline>
<codeline lineno="1013"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/></highlight><highlight class="comment">/*CISINTERFACE_H_*/</highlight><highlight class="preprocessor"></highlight></codeline>
    </programlisting>
    <location file="/root/cis_interface/cis_interface/cis_interface/interface/CisInterface.h"/>
  </compounddef>
</doxygen>
