Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > c9cfbd1355daacaf3b34517a6d7b18cc > files > 539

libdap-doc-3.11.0-2.fc15.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>libdap++: libdap::ConstraintEvaluator Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">libdap++&#160;<span id="projectnumber">Updated for version 3.8.2</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('classlibdap_1_1ConstraintEvaluator.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<h1>libdap::ConstraintEvaluator Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="libdap::ConstraintEvaluator" -->
<p>Evaluate a constraint expression.  
</p>

<p><code>#include &lt;<a class="el" href="ConstraintEvaluator_8h_source.html">ConstraintEvaluator.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for libdap::ConstraintEvaluator:</div>
<div class="dyncontent">
<div class="center"><img src="classlibdap_1_1ConstraintEvaluator__coll__graph.png" border="0" usemap="#libdap_1_1ConstraintEvaluator_coll__map" alt="Collaboration graph"/></div>
<map name="libdap_1_1ConstraintEvaluator_coll__map" id="libdap_1_1ConstraintEvaluator_coll__map">
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classlibdap_1_1ConstraintEvaluator-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><b>function</b></td></tr>
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="structlibdap_1_1Clause.html">Clause</a> * &gt;<br class="typebreak"/>
::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#abffbe592e2282493954bdfe3ceac7445">Clause_citer</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="structlibdap_1_1Clause.html">Clause</a> * &gt;<br class="typebreak"/>
::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a369a03eac7969bb6955cfc90ababb8aa">Clause_iter</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classlibdap_1_1BaseType.html">BaseType</a> * &gt;<br class="typebreak"/>
::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a9702bcb82a4a27c93665490d651cf816">Constants_citer</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classlibdap_1_1BaseType.html">BaseType</a> * &gt;<br class="typebreak"/>
::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a1c38b776ba27bc78a1e484a45bbe8747">Constants_iter</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::list&lt; function &gt;<br class="typebreak"/>
::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#afabff19845fae4d5ccfcc492b33c79c2">Functions_citer</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef std::list&lt; function &gt;<br class="typebreak"/>
::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#ae80dcd9458c825dd656d223e34d8b3b2">Functions_iter</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a796b573bb1ec8bbce8c22c4caf58af2e">append_clause</a> (int op, <a class="el" href="classlibdap_1_1rvalue.html">rvalue</a> *arg1, <a class="el" href="namespacelibdap.html#a443d3b7d9ceaa4ec25e5bfcc555ce056">rvalue_list</a> *arg2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a clause to a constraint expression.  <a href="#a796b573bb1ec8bbce8c22c4caf58af2e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a2439b21977caf80d57c5faa0342dfcb4">append_clause</a> (bool_func func, <a class="el" href="namespacelibdap.html#a443d3b7d9ceaa4ec25e5bfcc555ce056">rvalue_list</a> *args)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a clause to a constraint expression.  <a href="#a2439b21977caf80d57c5faa0342dfcb4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#af4769219d99fe7ec3f4f4d7b1cd560dc">append_clause</a> (btp_func func, <a class="el" href="namespacelibdap.html#a443d3b7d9ceaa4ec25e5bfcc555ce056">rvalue_list</a> *args)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a clause to a constraint expression.  <a href="#af4769219d99fe7ec3f4f4d7b1cd560dc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#abf7511f38a4c5f8fc0cde0eca91ef338">append_constant</a> (<a class="el" href="classlibdap_1_1BaseType.html">BaseType</a> *btp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a155da913af4458d96fa60ecd0ecbe377">boolean_expression</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Does the current constraint expression return a boolean value?  <a href="#a155da913af4458d96fa60ecd0ecbe377"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a369a03eac7969bb6955cfc90ababb8aa">Clause_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a81135cc86f8bef397b59577dfa224f62">clause_begin</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a369a03eac7969bb6955cfc90ababb8aa">Clause_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#ad193b3ca4cef59d2b46c04ab08f4675f">clause_end</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a5c53cfac881da05b7ed6eb6404b0c4f9">clause_value</a> (<a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a369a03eac7969bb6955cfc90ababb8aa">Clause_iter</a> &amp;i, <a class="el" href="classlibdap_1_1DDS.html">DDS</a> &amp;dds)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a61250e6c1cec9b2411a529c7fb4efd94">ConstraintEvaluator</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlibdap_1_1BaseType.html">BaseType</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a3d433bb6769cc95fb299249b5e5d74c4">eval_function</a> (<a class="el" href="classlibdap_1_1DDS.html">DDS</a> &amp;dds, const string &amp;dataset)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate a function-valued constraint expression.  <a href="#a3d433bb6769cc95fb299249b5e5d74c4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlibdap_1_1DDS.html">DDS</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#ab0dba1657e9aadd85b3ce713c6a4036a">eval_function_clauses</a> (<a class="el" href="classlibdap_1_1DDS.html">DDS</a> &amp;dds)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate a function-valued constraint expression that contains several function calls.  <a href="#ab0dba1657e9aadd85b3ce713c6a4036a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlibdap_1_1DataDDS.html">DataDDS</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a0e36171a34caa85d21e18adbd83a831b">eval_function_clauses</a> (<a class="el" href="classlibdap_1_1DataDDS.html">DataDDS</a> &amp;dds)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate a function-valued constraint expression that contains several function calls. Takes and returns a <a class="el" href="classlibdap_1_1DataDDS.html" title="Holds a DAP2 DDS.">DataDDS</a>.  <a href="#a0e36171a34caa85d21e18adbd83a831b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#aa0066a57cf00c975f6ccbc2e90c64742">eval_selection</a> (<a class="el" href="classlibdap_1_1DDS.html">DDS</a> &amp;dds, const string &amp;dataset)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate a boolean-valued constraint expression. This is main method for the evaluator ans is called by the <a class="el" href="classlibdap_1_1BaseType.html#a1f45893684a69b50b37817b88230de9f" title="Move data to the net.">BaseType::serialize()</a> methods.  <a href="#aa0066a57cf00c975f6ccbc2e90c64742"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a9985c6a30247ced32a4b6e764deebf45">function_clauses</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Does the current constraint expression return a <a class="el" href="classlibdap_1_1DDS.html">DDS</a> pointer?  <a href="#a9985c6a30247ced32a4b6e764deebf45"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#add46ce1d9ef36fa26a2913d8d7c51096">functional_expression</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Does the current constraint expression return a <a class="el" href="classlibdap_1_1BaseType.html" title="The basic data type for the DODS DAP types.">BaseType</a> pointer? This method does not evaluate the clause, it provides information to the evaluator regarding _how_ to evaluate the clause.  <a href="#add46ce1d9ef36fa26a2913d8d7c51096"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#aaeb4a7662178b992d9e36ff1dc0fc2bc">parse_constraint</a> (const string &amp;constraint, <a class="el" href="classlibdap_1_1DDS.html">DDS</a> &amp;dds)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse the constraint expression given the current <a class="el" href="classlibdap_1_1DDS.html">DDS</a>.  <a href="#aaeb4a7662178b992d9e36ff1dc0fc2bc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#ae46662e1cbe013a6f6ad65d2e0c24186">~ConstraintEvaluator</a> ()</td></tr>
<tr><td colspan="2"><div class="groupHeader">External Function Accessors</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>The Constraint Evaluator carries with it a list of external functions it can use while evaluate a constraint expression. If a constraint contains any of these functions, the entries in the list allow the parser to evaluate it. The functions are of three types: those that return boolean values, those that return real (also called <a class="el" href="classlibdap_1_1BaseType.html" title="The basic data type for the DODS DAP types.">BaseType</a>) values, and those that are applied during evaluation of the projection for side effect</p>
<dl class="note"><dt><b>Note:</b></dt><dd>The <a class="el" href="classlibdap_1_1ConstraintEvaluator.html#ac42a51af20507806f1e04e24ed9cb0ac" title="Add a boolean function to the list.">add_function()</a> methods will replace a function of the same name, so it is possible to overwrite functions in specific handlers if the handler need special behavior to implement one of the standard functions.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd>ce_functions for the standard functions</dd></dl>
<p>These methods are used to manipulate this list of known external functions. </p>
</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#ac42a51af20507806f1e04e24ed9cb0ac">add_function</a> (const string &amp;name, bool_func f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a boolean function to the list.  <a href="#ac42a51af20507806f1e04e24ed9cb0ac"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#aeabb00757399afe777712b43dfdefd27">add_function</a> (const string &amp;name, btp_func f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a <a class="el" href="classlibdap_1_1BaseType.html" title="The basic data type for the DODS DAP types.">BaseType</a> function to the list.  <a href="#aeabb00757399afe777712b43dfdefd27"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a029d3512841dcdb09b46024ff40e8e4e">add_function</a> (const string &amp;name, proj_func f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a projection function to the list.  <a href="#a029d3512841dcdb09b46024ff40e8e4e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#ac8da439f904b56b42bab23e6d6483a5d">find_function</a> (const string &amp;name, bool_func *f) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a Boolean function with a given name in the function list.  <a href="#ac8da439f904b56b42bab23e6d6483a5d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a065950f0bc91ea2ae3ed06f6cd23e1f9">find_function</a> (const string &amp;name, btp_func *f) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a <a class="el" href="classlibdap_1_1BaseType.html" title="The basic data type for the DODS DAP types.">BaseType</a> function with a given name in the function list.  <a href="#a065950f0bc91ea2ae3ed06f6cd23e1f9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a1f59dced0a1aa7d31f5c46169188a8c3">find_function</a> (const string &amp;name, proj_func *f) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a projection function with a given name in the function list.  <a href="#a1f59dced0a1aa7d31f5c46169188a8c3"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#abdcdfafb252f26c4af32af89b0f699dc">func_name_is</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock">
<p>Definition at line <a class="el" href="ConstraintEvaluator_8h_source.html#l00046">46</a> of file <a class="el" href="ConstraintEvaluator_8h_source.html">ConstraintEvaluator.h</a>.</p>
</div><hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="abffbe592e2282493954bdfe3ceac7445"></a><!-- doxytag: member="libdap::ConstraintEvaluator::Clause_citer" ref="abffbe592e2282493954bdfe3ceac7445" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="structlibdap_1_1Clause.html">Clause</a> *&gt;::const_iterator <a class="el" href="classlibdap_1_1ConstraintEvaluator.html#abffbe592e2282493954bdfe3ceac7445">libdap::ConstraintEvaluator::Clause_citer</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8h_source.html#l00090">90</a> of file <a class="el" href="ConstraintEvaluator_8h_source.html">ConstraintEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a369a03eac7969bb6955cfc90ababb8aa"></a><!-- doxytag: member="libdap::ConstraintEvaluator::Clause_iter" ref="a369a03eac7969bb6955cfc90ababb8aa" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="structlibdap_1_1Clause.html">Clause</a> *&gt;::iterator <a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a369a03eac7969bb6955cfc90ababb8aa">libdap::ConstraintEvaluator::Clause_iter</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8h_source.html#l00091">91</a> of file <a class="el" href="ConstraintEvaluator_8h_source.html">ConstraintEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9702bcb82a4a27c93665490d651cf816"></a><!-- doxytag: member="libdap::ConstraintEvaluator::Constants_citer" ref="a9702bcb82a4a27c93665490d651cf816" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="classlibdap_1_1BaseType.html">BaseType</a> *&gt;::const_iterator <a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a9702bcb82a4a27c93665490d651cf816">libdap::ConstraintEvaluator::Constants_citer</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8h_source.html#l00093">93</a> of file <a class="el" href="ConstraintEvaluator_8h_source.html">ConstraintEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1c38b776ba27bc78a1e484a45bbe8747"></a><!-- doxytag: member="libdap::ConstraintEvaluator::Constants_iter" ref="a1c38b776ba27bc78a1e484a45bbe8747" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="classlibdap_1_1BaseType.html">BaseType</a> *&gt;::iterator <a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a1c38b776ba27bc78a1e484a45bbe8747">libdap::ConstraintEvaluator::Constants_iter</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8h_source.html#l00094">94</a> of file <a class="el" href="ConstraintEvaluator_8h_source.html">ConstraintEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="afabff19845fae4d5ccfcc492b33c79c2"></a><!-- doxytag: member="libdap::ConstraintEvaluator::Functions_citer" ref="afabff19845fae4d5ccfcc492b33c79c2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::list&lt;function&gt;::const_iterator <a class="el" href="classlibdap_1_1ConstraintEvaluator.html#afabff19845fae4d5ccfcc492b33c79c2">libdap::ConstraintEvaluator::Functions_citer</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8h_source.html#l00096">96</a> of file <a class="el" href="ConstraintEvaluator_8h_source.html">ConstraintEvaluator.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae80dcd9458c825dd656d223e34d8b3b2"></a><!-- doxytag: member="libdap::ConstraintEvaluator::Functions_iter" ref="ae80dcd9458c825dd656d223e34d8b3b2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::list&lt;function&gt;::iterator <a class="el" href="classlibdap_1_1ConstraintEvaluator.html#ae80dcd9458c825dd656d223e34d8b3b2">libdap::ConstraintEvaluator::Functions_iter</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8h_source.html#l00097">97</a> of file <a class="el" href="ConstraintEvaluator_8h_source.html">ConstraintEvaluator.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a61250e6c1cec9b2411a529c7fb4efd94"></a><!-- doxytag: member="libdap::ConstraintEvaluator::ConstraintEvaluator" ref="a61250e6c1cec9b2411a529c7fb4efd94" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">libdap::ConstraintEvaluator::ConstraintEvaluator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00049">49</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

<p>References <a class="el" href="ce__functions_8cc_source.html#l01030">libdap::register_functions()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classlibdap_1_1ConstraintEvaluator_a61250e6c1cec9b2411a529c7fb4efd94_cgraph.png" border="0" usemap="#classlibdap_1_1ConstraintEvaluator_a61250e6c1cec9b2411a529c7fb4efd94_cgraph" alt=""/></div>
<map name="classlibdap_1_1ConstraintEvaluator_a61250e6c1cec9b2411a529c7fb4efd94_cgraph" id="classlibdap_1_1ConstraintEvaluator_a61250e6c1cec9b2411a529c7fb4efd94_cgraph">
<area shape="rect" id="node3" href="namespacelibdap.html#a5eeabecdc04289ca1ed78d333f29129d" title="libdap::register_functions" alt="" coords="557,1315,840,1341"/><area shape="rect" id="node5" href="classlibdap_1_1ConstraintEvaluator.html#ac42a51af20507806f1e04e24ed9cb0ac" title="Add a boolean function to the list." alt="" coords="888,1175,1320,1201"/><area shape="rect" id="node7" href="namespacelibdap.html#abd2a0e965db0ed47f0206b4c646d9edd" title="libdap::function_geoarray" alt="" coords="968,1225,1240,1252"/><area shape="rect" id="node9" href="namespacelibdap.html#a97ebb2cf77302bf3dda2934593964ec4" title="libdap::function_geogrid" alt="" coords="973,1276,1235,1303"/><area shape="rect" id="node86" href="namespacelibdap.html#ad495b5febe1ea2b30f9fce7e31e98c9e" title="libdap::function_grid" alt="" coords="1519,1377,1751,1404"/><area shape="rect" id="node98" href="namespacelibdap.html#acb70f051b4691bdf6d1333a2a7a442f0" title="libdap::function_linear_scale" alt="" coords="1479,1732,1791,1759"/><area shape="rect" id="node126" href="namespacelibdap.html#a69a45fe57f5b17b8ab202f454b2f7556" title="libdap::function_version" alt="" coords="973,1465,1235,1492"/><area shape="rect" id="node11" href="classlibdap_1_1GridGeoConstraint.html#affdc6145014a519bef4874d14716b3cf" title="libdap::GridGeoConstraint::apply_constraint_to_data" alt="" coords="1369,693,1900,720"/><area shape="rect" id="node19" href="classlibdap_1_1BaseType.html#a1da003c53f2e663223f603ab3fbd7c8e" title="Read data into a local buffer." alt="" coords="2555,693,2797,720"/><area shape="rect" id="node21" href="classlibdap_1_1Grid.html#a905ac86a44a9d8ce576056ba244cf558" title="Returns the Grid Array. This method returns the array using an Array*, so no cast is required..." alt="" coords="2085,1124,2336,1151"/><area shape="rect" id="node51" href="classlibdap_1_1Grid.html#a2e9d2e436c0ff138a977dbba54c018eb" title="Returns an iterator referencing the first Map vector." alt="" coords="2085,1175,2336,1201"/><area shape="rect" id="node53" href="classlibdap_1_1Grid.html#aaebbf2a5329ec01b6527b4bafde87837" title="libdap::Grid::map_end" alt="" coords="2095,1225,2327,1252"/><area shape="rect" id="node60" href="classlibdap_1_1Vector.html#a58712de8871e28a48fdc95e72a09df71" title="Indicates that the data is ready to send." alt="" coords="2535,85,2817,112"/><area shape="rect" id="node68" href="namespacelibdap.html#a3c8b08223f4ea1841cf82dfc743a0d3a" title="libdap::extract_double_value" alt="" coords="2060,1631,2361,1657"/><area shape="rect" id="node72" href="classlibdap_1_1GridGeoConstraint.html#a712d428422dd23582291ba1ad13137dd" title="libdap::GridGeoConstraint::get_constrained_grid" alt="" coords="1389,9,1880,36"/><area shape="rect" id="node74" href="structlibdap_1_1gse__arg.html#a63b69a5efec365819548d800d29b7a2a" title="libdap::gse_arg::get_gsec" alt="" coords="2075,1377,2347,1404"/><area shape="rect" id="node78" href="classlibdap_1_1BaseType.html#a0b130311c9901fb8a7ab11ea19090ef0" title="libdap::BaseType::ptr_duplicate" alt="" coords="1469,1225,1800,1252"/><area shape="rect" id="node81" href="classlibdap_1_1GeoConstraint.html#a971205af9b456f4594f01aa513b6543c" title="libdap::GeoConstraint::set_bounding_box" alt="" coords="1429,1276,1840,1303"/><area shape="rect" id="node84" href="classlibdap_1_1Str.html#ac4083a612e46a9ef2d1cddc2d40a955f" title="libdap::Str::set_value" alt="" coords="2089,1529,2332,1556"/><area shape="rect" id="node13" href="classlibdap_1_1Array.html#a538f7c336e26b873f50e033d553bba26" title="Adds a constraint to an Array dimension." alt="" coords="2520,187,2832,213"/><area shape="rect" id="node15" href="classlibdap_1_1Array.html#ae6e6943cd895fa8dc1c58621ffad42a0" title="libdap::Array::dim_begin" alt="" coords="2545,1681,2807,1708"/><area shape="rect" id="node17" href="classlibdap_1_1GeoConstraint.html#a74bb5010981355c8d688a2fd77613f80" title="libdap::GeoConstraint::flip_latitude_within_array" alt="" coords="1955,313,2467,340"/><area shape="rect" id="node23" href="classlibdap_1_1GeoConstraint.html#a05febc86a7353548656d76cbe659d4ed" title="libdap::GeoConstraint::get_array_data" alt="" coords="2015,364,2407,391"/><area shape="rect" id="node25" href="classlibdap_1_1GeoConstraint.html#a93b13c51f03265b77c26c639253eb84c" title="libdap::GeoConstraint::get_array_data_size" alt="" coords="1989,415,2432,441"/><area shape="rect" id="node27" href="classlibdap_1_1GeoConstraint.html#ae1606e5fc999c32610a2ae2d60205a81" title="libdap::GeoConstraint::get_lat" alt="" coords="2049,465,2372,492"/><area shape="rect" id="node29" href="classlibdap_1_1GeoConstraint.html#a19dbb0b321d3e195a39dc086cacdfc53" title="libdap::GeoConstraint::get_lat_dim" alt="" coords="2029,516,2392,543"/><area shape="rect" id="node31" href="classlibdap_1_1GeoConstraint.html#a3f924c14bc89937c3db0b141f873b238" title="libdap::GeoConstraint::get_latitude_index_bottom" alt="" coords="1960,567,2461,593"/><area shape="rect" id="node33" href="classlibdap_1_1GeoConstraint.html#ae0593d431954560825dcd96ded2141a7" title="libdap::GeoConstraint::get_latitude_index_top" alt="" coords="1975,617,2447,644"/><area shape="rect" id="node35" href="classlibdap_1_1GeoConstraint.html#ac2f5c3f3e098c91f23e194fe7b775af8" title="libdap::GeoConstraint::get_latitude_sense" alt="" coords="1995,668,2427,695"/><area shape="rect" id="node37" href="classlibdap_1_1GeoConstraint.html#a695f79c26e7eef89c380788d3c1d5507" title="libdap::GeoConstraint::get_lon" alt="" coords="2049,719,2372,745"/><area shape="rect" id="node39" href="classlibdap_1_1GeoConstraint.html#a5eee5cc9788b429e77bfde9f10bfe751" title="libdap::GeoConstraint::get_lon_dim" alt="" coords="2029,769,2392,796"/><area shape="rect" id="node41" href="classlibdap_1_1GeoConstraint.html#a505eb309753eabe0c6a5bb3d412a3579" title="libdap::GeoConstraint::get_lon_length" alt="" coords="2015,820,2407,847"/><area shape="rect" id="node43" href="classlibdap_1_1GeoConstraint.html#a8550d6aea8efad6f197b3350c19a25dc" title="libdap::GeoConstraint::get_longitude_index_left" alt="" coords="1965,871,2456,897"/><area shape="rect" id="node45" href="classlibdap_1_1GeoConstraint.html#a8f7a2a062f1fa421de74bd41339c9e1b" title="libdap::GeoConstraint::get_longitude_index_right" alt="" coords="1960,921,2461,948"/><area shape="rect" id="node47" href="classlibdap_1_1GeoConstraint.html#aee72b66c9ca298aebea679d2c410f7a6" title="libdap::GeoConstraint::get_longitude_notation" alt="" coords="1975,972,2447,999"/><area shape="rect" id="node49" href="classlibdap_1_1GeoConstraint.html#ac572f71506b0214a755b30ba7e0def94" title="libdap::GeoConstraint::is_bounding_box_set" alt="" coords="1989,111,2432,137"/><area shape="rect" id="node56" href="classlibdap_1_1GeoConstraint.html#aa893256d558152f07e08ec6f250fa089" title="libdap::GeoConstraint::reorder_data_longitude_axis" alt="" coords="1949,212,2472,239"/><area shape="rect" id="node62" href="classlibdap_1_1Vector.html#a96ecf84f2798065878755d9a9014ee69" title="Reads data into the Vector buffer. Thrown if called for Structure, Sequence or Grid." alt="" coords="2085,1479,2336,1505"/><area shape="rect" id="node64" href="classlibdap_1_1Vector.html#a5990bd42b49e44c7b7da76e039896ba3" title="libdap::Vector::length" alt="" coords="2555,1580,2797,1607"/><area shape="rect" id="node66" href="classlibdap_1_1BaseType.html#abc6b2d7099f00bb5f324ec129bff2a17" title="Returns the type of the class instance." alt="" coords="2555,1757,2797,1784"/><area shape="rect" id="node92" href="classlibdap_1_1Grid.html#a0c4a5aefa252d3eab94b8a0ce5232dc6" title="libdap::Grid::ptr_duplicate" alt="" coords="2065,1327,2356,1353"/><area shape="rect" id="node95" href="classlibdap_1_1Vector.html#a64815467570490a4a6cddc89f09a2413" title="Indicates that the data is ready to send." alt="" coords="2069,1580,2352,1607"/><area shape="rect" id="node100" href="classlibdap_1_1Array.html#ac9a68fa480403f9b80285073c653570c" title="Add the BaseType pointer to this constructor type instance." alt="" coords="2089,1732,2332,1759"/><area shape="rect" id="node104" href="namespacelibdap.html#a7e55035aed27d6e56f7219405c803628" title="libdap::double_eq" alt="" coords="2115,2087,2307,2113"/><area shape="rect" id="node106" href="namespacelibdap.html#ae9717ce6442b4909dcd7add356a7ff88" title="libdap::extract_double_array" alt="" coords="2060,1985,2361,2012"/><area shape="rect" id="node108" href="classlibdap_1_1BaseType.html#a0a0c6b5d57813607dc06255b8e0b9bdc" title="Returns the name of the class instance." alt="" coords="2555,2011,2797,2037"/><area shape="rect" id="node112" href="classlibdap_1_1BaseType.html#aeabb771d731dbcef92fff731fb429f85" title="libdap::BaseType::get_parent" alt="" coords="2060,1884,2361,1911"/><area shape="rect" id="node118" href="classlibdap_1_1Vector.html#ac6ffab2a00584c2963c0d521ad4028b5" title="set the value of a byte array" alt="" coords="2075,1783,2347,1809"/><area shape="rect" id="node123" href="classlibdap_1_1BaseType.html#ac360679317a411d7812ca235a1528281" title="Loads class data." alt="" coords="2075,1935,2347,1961"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ae46662e1cbe013a6f6ad65d2e0c24186"></a><!-- doxytag: member="libdap::ConstraintEvaluator::~ConstraintEvaluator" ref="ae46662e1cbe013a6f6ad65d2e0c24186" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">libdap::ConstraintEvaluator::~ConstraintEvaluator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00054">54</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ac42a51af20507806f1e04e24ed9cb0ac"></a><!-- doxytag: member="libdap::ConstraintEvaluator::add_function" ref="ac42a51af20507806f1e04e24ed9cb0ac" args="(const string &amp;name, bool_func f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libdap::ConstraintEvaluator::add_function </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool_func&#160;</td>
          <td class="paramname"><em>f</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00197">197</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

<p>References <a class="el" href="ConstraintEvaluator_8h_source.html#l00087">func_name_is</a>.</p>

<p>Referenced by <a class="el" href="ce__functions_8cc_source.html#l01030">libdap::register_functions()</a>.</p>

</div>
</div>
<a class="anchor" id="aeabb00757399afe777712b43dfdefd27"></a><!-- doxytag: member="libdap::ConstraintEvaluator::add_function" ref="aeabb00757399afe777712b43dfdefd27" args="(const string &amp;name, btp_func f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libdap::ConstraintEvaluator::add_function </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">btp_func&#160;</td>
          <td class="paramname"><em>f</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00206">206</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

<p>References <a class="el" href="ConstraintEvaluator_8h_source.html#l00087">func_name_is</a>.</p>

</div>
</div>
<a class="anchor" id="a029d3512841dcdb09b46024ff40e8e4e"></a><!-- doxytag: member="libdap::ConstraintEvaluator::add_function" ref="a029d3512841dcdb09b46024ff40e8e4e" args="(const string &amp;name, proj_func f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libdap::ConstraintEvaluator::add_function </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">proj_func&#160;</td>
          <td class="paramname"><em>f</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00215">215</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

<p>References <a class="el" href="ConstraintEvaluator_8h_source.html#l00087">func_name_is</a>.</p>

</div>
</div>
<a class="anchor" id="a2439b21977caf80d57c5faa0342dfcb4"></a><!-- doxytag: member="libdap::ConstraintEvaluator::append_clause" ref="a2439b21977caf80d57c5faa0342dfcb4" args="(bool_func func, rvalue_list *args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libdap::ConstraintEvaluator::append_clause </td>
          <td>(</td>
          <td class="paramtype">bool_func&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacelibdap.html#a443d3b7d9ceaa4ec25e5bfcc555ce056">rvalue_list</a> *&#160;</td>
          <td class="paramname"><em>args</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function adds a boolean function clause to the constraint expression.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>A pointer to a boolean function from the list of supported functions. </td></tr>
    <tr><td class="paramname">args</td><td>A list of arguments to that function. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00125">125</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

</div>
</div>
<a class="anchor" id="af4769219d99fe7ec3f4f4d7b1cd560dc"></a><!-- doxytag: member="libdap::ConstraintEvaluator::append_clause" ref="af4769219d99fe7ec3f4f4d7b1cd560dc" args="(btp_func func, rvalue_list *args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libdap::ConstraintEvaluator::append_clause </td>
          <td>(</td>
          <td class="paramtype">btp_func&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacelibdap.html#a443d3b7d9ceaa4ec25e5bfcc555ce056">rvalue_list</a> *&#160;</td>
          <td class="paramname"><em>args</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function adds a real-valued (<a class="el" href="classlibdap_1_1BaseType.html" title="The basic data type for the DODS DAP types.">BaseType</a>) function clause to the constraint expression.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>A pointer to a <a class="el" href="classlibdap_1_1BaseType.html" title="The basic data type for the DODS DAP types.">BaseType</a> function from the list of supported functions. </td></tr>
    <tr><td class="paramname">args</td><td>A list of arguments to that function. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00142">142</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a796b573bb1ec8bbce8c22c4caf58af2e"></a><!-- doxytag: member="libdap::ConstraintEvaluator::append_clause" ref="a796b573bb1ec8bbce8c22c4caf58af2e" args="(int op, rvalue *arg1, rvalue_list *arg2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libdap::ConstraintEvaluator::append_clause </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classlibdap_1_1rvalue.html">rvalue</a> *&#160;</td>
          <td class="paramname"><em>arg1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacelibdap.html#a443d3b7d9ceaa4ec25e5bfcc555ce056">rvalue_list</a> *&#160;</td>
          <td class="paramname"><em>arg2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function adds an operator clause to the constraint expression.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">op</td><td>An integer indicating the operator in use. These values are generated by <code>bison</code>. </td></tr>
    <tr><td class="paramname">arg1</td><td>A pointer to the argument on the left side of the operator. </td></tr>
    <tr><td class="paramname">arg2</td><td>A pointer to a list of the arguments on the right side of the operator. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00108">108</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

</div>
</div>
<a class="anchor" id="abf7511f38a4c5f8fc0cde0eca91ef338"></a><!-- doxytag: member="libdap::ConstraintEvaluator::append_constant" ref="abf7511f38a4c5f8fc0cde0eca91ef338" args="(BaseType *btp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libdap::ConstraintEvaluator::append_constant </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classlibdap_1_1BaseType.html">BaseType</a> *&#160;</td>
          <td class="paramname"><em>btp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The Constraint Evaluator maintains a list of <a class="el" href="classlibdap_1_1BaseType.html" title="The basic data type for the DODS DAP types.">BaseType</a> pointers for all the constants that the constraint expression parser generates. These objects are deleted by the Constraint Evaluator destructor. Note that there are no list accessors; these constants are never accessed from the list. The list is simply a convenient way to make sure the constants are disposed of properly. </p>

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00157">157</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a155da913af4458d96fa60ecd0ecbe377"></a><!-- doxytag: member="libdap::ConstraintEvaluator::boolean_expression" ref="a155da913af4458d96fa60ecd0ecbe377" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libdap::ConstraintEvaluator::boolean_expression </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00392">392</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a81135cc86f8bef397b59577dfa224f62"></a><!-- doxytag: member="libdap::ConstraintEvaluator::clause_begin" ref="a81135cc86f8bef397b59577dfa224f62" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a369a03eac7969bb6955cfc90ababb8aa">ConstraintEvaluator::Clause_iter</a> libdap::ConstraintEvaluator::clause_begin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the first clause in a parsed constraint expression. </p>

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00070">70</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

</div>
</div>
<a class="anchor" id="ad193b3ca4cef59d2b46c04ab08f4675f"></a><!-- doxytag: member="libdap::ConstraintEvaluator::clause_end" ref="ad193b3ca4cef59d2b46c04ab08f4675f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a369a03eac7969bb6955cfc90ababb8aa">ConstraintEvaluator::Clause_iter</a> libdap::ConstraintEvaluator::clause_end </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a reference to the end of the list of clauses in a parsed constraint expression. It does not reference the last clause </p>

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00078">78</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a5c53cfac881da05b7ed6eb6404b0c4f9"></a><!-- doxytag: member="libdap::ConstraintEvaluator::clause_value" ref="a5c53cfac881da05b7ed6eb6404b0c4f9" args="(Clause_iter &amp;i, DDS &amp;dds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libdap::ConstraintEvaluator::clause_value </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a369a03eac7969bb6955cfc90ababb8aa">Clause_iter</a> &amp;&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classlibdap_1_1DDS.html">DDS</a> &amp;&#160;</td>
          <td class="paramname"><em>dds</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the value of the indicated clause of a constraint expression. </p>

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00086">86</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a3d433bb6769cc95fb299249b5e5d74c4"></a><!-- doxytag: member="libdap::ConstraintEvaluator::eval_function" ref="a3d433bb6769cc95fb299249b5e5d74c4" args="(DDS &amp;dds, const string &amp;dataset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classlibdap_1_1BaseType.html">BaseType</a> * libdap::ConstraintEvaluator::eval_function </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classlibdap_1_1DDS.html">DDS</a> &amp;&#160;</td>
          <td class="paramname"><em>dds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>dataset</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00288">288</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

<p>References <a class="el" href="Clause_8cc_source.html#l00156">libdap::Clause::value()</a>.</p>

<p>Referenced by <a class="el" href="DODSFilter_8cc_source.html#l01016">libdap::DODSFilter::send_data()</a>, and <a class="el" href="DODSFilter_8cc_source.html#l01268">libdap::DODSFilter::send_data_ddx()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classlibdap_1_1ConstraintEvaluator_a3d433bb6769cc95fb299249b5e5d74c4_cgraph.png" border="0" usemap="#classlibdap_1_1ConstraintEvaluator_a3d433bb6769cc95fb299249b5e5d74c4_cgraph" alt=""/></div>
<map name="classlibdap_1_1ConstraintEvaluator_a3d433bb6769cc95fb299249b5e5d74c4_cgraph" id="classlibdap_1_1ConstraintEvaluator_a3d433bb6769cc95fb299249b5e5d74c4_cgraph">
<area shape="rect" id="node3" href="structlibdap_1_1Clause.html#abfff44c4db49ad7462d14665b2458588" title="Evaluate a clause which returns a boolean value This method must only be evaluated for clauses with r..." alt="" coords="496,81,728,108"/><area shape="rect" id="node5" href="namespacelibdap.html#a928b16257bc714971a2a3c91cb42d882" title="libdap::build_btp_args" alt="" coords="1067,31,1309,57"/><area shape="rect" id="node13" href="classlibdap_1_1rvalue.html#a5ec1d2d66b162aa9ad82b658e70ce7de" title="libdap::rvalue::bvalue" alt="" coords="776,56,1019,83"/><area shape="rect" id="node16" href="structlibdap_1_1Clause.html#aeaccc72688521a8b08aeae970d983473" title="Checks the &quot;representation invariant&quot; of a clause." alt="" coords="796,107,999,133"/><area shape="rect" id="node18" href="classlibdap_1_1BaseType.html#a8a0000be2a244e3e07abda3020af8800" title="Evaluate relational operators." alt="" coords="781,157,1013,184"/><area shape="rect" id="node7" href="namespacelibdap.html#a317edea830aab50d2137a5bd313cc86a" title="libdap::long_to_string" alt="" coords="1357,5,1600,32"/><area shape="rect" id="node11" href="namespacelibdap.html#a36c4fc80766718669c9790c6cb20c895" title="sanitize the size of an array. Test for integer overflow when dynamically allocating an array..." alt="" coords="1393,56,1564,83"/><area shape="rect" id="node9" href="namespacelibdap.html#a576580781bca7dcd4b5a84cc06892aff" title="libdap::append_long_to_string" alt="" coords="1648,5,1960,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a0e36171a34caa85d21e18adbd83a831b"></a><!-- doxytag: member="libdap::ConstraintEvaluator::eval_function_clauses" ref="a0e36171a34caa85d21e18adbd83a831b" args="(DataDDS &amp;dds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classlibdap_1_1DataDDS.html">DataDDS</a> * libdap::ConstraintEvaluator::eval_function_clauses </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classlibdap_1_1DataDDS.html">DataDDS</a> &amp;&#160;</td>
          <td class="paramname"><em>dds</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a0e36171a34caa85d21e18adbd83a831b" title="Evaluate a function-valued constraint expression that contains several function calls. Takes and returns a DataDDS.">ConstraintEvaluator::eval_function_clauses(DataDDS &amp;dds)</a> </dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Added for libdap 3.11 </dd></dl>

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00367">367</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

<p>References <a class="el" href="DDS_8cc_source.html#l00572">libdap::DDS::add_var()</a>, <a class="el" href="DDS_8cc_source.html#l00444">libdap::DDS::get_dataset_name()</a>, <a class="el" href="DDS_8h_source.html#l00230">libdap::DDS::get_factory()</a>, <a class="el" href="DataDDS_8h_source.html#l00129">libdap::DataDDS::get_protocol()</a>, <a class="el" href="DataDDS_8h_source.html#l00109">libdap::DataDDS::get_version()</a>, <a class="el" href="BaseType_8cc_source.html#l00517">libdap::BaseType::set_send_p()</a>, and <a class="el" href="Clause_8cc_source.html#l00156">libdap::Clause::value()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classlibdap_1_1ConstraintEvaluator_a0e36171a34caa85d21e18adbd83a831b_cgraph.png" border="0" usemap="#classlibdap_1_1ConstraintEvaluator_a0e36171a34caa85d21e18adbd83a831b_cgraph" alt=""/></div>
<map name="classlibdap_1_1ConstraintEvaluator_a0e36171a34caa85d21e18adbd83a831b_cgraph" id="classlibdap_1_1ConstraintEvaluator_a0e36171a34caa85d21e18adbd83a831b_cgraph">
<area shape="rect" id="node3" href="classlibdap_1_1DDS.html#ade87418e97ee5c7efd92279cd41e421c" title="Adds a copy of the variable to the DDS. Using the ptr_duplicate() method, perform a deep copy on the ..." alt="" coords="621,31,843,57"/><area shape="rect" id="node12" href="classlibdap_1_1DDS.html#ac83ef5e2bc4e75da5a21ead478aeff0c" title="libdap::DDS::get_dataset_name" alt="" coords="576,81,888,108"/><area shape="rect" id="node14" href="classlibdap_1_1DDS.html#aa75678c230c20aaf7626f954de04644f" title="libdap::DDS::get_factory" alt="" coords="601,132,863,159"/><area shape="rect" id="node16" href="classlibdap_1_1DataDDS.html#af43fc4392606e00c25ad9d8af7fc2a8f" title="libdap::DataDDS::get_protocol" alt="" coords="576,183,888,209"/><area shape="rect" id="node18" href="classlibdap_1_1DataDDS.html#ab6769571c1bfd8700df805366549f6cf" title="Get the server version string, unparsed." alt="" coords="581,233,883,260"/><area shape="rect" id="node20" href="classlibdap_1_1BaseType.html#aba7b27635c95b74536de18393133628e" title="libdap::BaseType::set_send_p" alt="" coords="581,284,883,311"/><area shape="rect" id="node24" href="structlibdap_1_1Clause.html#abfff44c4db49ad7462d14665b2458588" title="Evaluate a clause which returns a boolean value This method must only be evaluated for clauses with r..." alt="" coords="616,360,848,387"/><area shape="rect" id="node5" href="classlibdap_1_1Structure.html#aa2e403ad2ce9b78f279a18799f61b353" title="libdap::Structure::add_var" alt="" coords="936,56,1219,83"/><area shape="rect" id="node7" href="classlibdap_1_1BaseType.html#a0b130311c9901fb8a7ab11ea19090ef0" title="libdap::BaseType::ptr_duplicate" alt="" coords="1268,5,1599,32"/><area shape="rect" id="node9" href="classlibdap_1_1BaseType.html#a5b6a39f6ce6594fa74f3fc899ac9a966" title="libdap::BaseType::set_parent" alt="" coords="1283,56,1584,83"/><area shape="rect" id="node22" href="classlibdap_1_1BaseType.html#a0a0c6b5d57813607dc06255b8e0b9bdc" title="Returns the name of the class instance." alt="" coords="956,259,1199,285"/><area shape="rect" id="node26" href="namespacelibdap.html#a928b16257bc714971a2a3c91cb42d882" title="libdap::build_btp_args" alt="" coords="1312,335,1555,361"/><area shape="rect" id="node34" href="classlibdap_1_1rvalue.html#a5ec1d2d66b162aa9ad82b658e70ce7de" title="libdap::rvalue::bvalue" alt="" coords="956,360,1199,387"/><area shape="rect" id="node37" href="structlibdap_1_1Clause.html#aeaccc72688521a8b08aeae970d983473" title="Checks the &quot;representation invariant&quot; of a clause." alt="" coords="976,411,1179,437"/><area shape="rect" id="node39" href="classlibdap_1_1BaseType.html#a8a0000be2a244e3e07abda3020af8800" title="Evaluate relational operators." alt="" coords="961,461,1193,488"/><area shape="rect" id="node28" href="namespacelibdap.html#a317edea830aab50d2137a5bd313cc86a" title="libdap::long_to_string" alt="" coords="1648,309,1891,336"/><area shape="rect" id="node32" href="namespacelibdap.html#a36c4fc80766718669c9790c6cb20c895" title="sanitize the size of an array. Test for integer overflow when dynamically allocating an array..." alt="" coords="1684,360,1855,387"/><area shape="rect" id="node30" href="namespacelibdap.html#a576580781bca7dcd4b5a84cc06892aff" title="libdap::append_long_to_string" alt="" coords="1939,309,2251,336"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ab0dba1657e9aadd85b3ce713c6a4036a"></a><!-- doxytag: member="libdap::ConstraintEvaluator::eval_function_clauses" ref="ab0dba1657e9aadd85b3ce713c6a4036a" args="(DDS &amp;dds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classlibdap_1_1DDS.html">DDS</a> * libdap::ConstraintEvaluator::eval_function_clauses </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classlibdap_1_1DDS.html">DDS</a> &amp;&#160;</td>
          <td class="paramname"><em>dds</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This method can be called for any function-valued constraint expression. Unlike <a class="el" href="classlibdap_1_1ConstraintEvaluator.html#a3d433bb6769cc95fb299249b5e5d74c4" title="Evaluate a function-valued constraint expression.">eval_function()</a>, it will package the return value in a new <a class="el" href="classlibdap_1_1DDS.html">DDS</a> object. The server should free this object once it has been serialized and sent.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>While there is another type of function that can appear in a CE (a 'projection function') those are evaluated by the ce parser - they are used to insert new variables into the <a class="el" href="classlibdap_1_1DDS.html">DDS</a> as a side effect of CE evaluation. That kind of function can never appear here; these are all functions that return <a class="el" href="classlibdap_1_1BaseType.html" title="The basic data type for the DODS DAP types.">BaseType</a> pointers.</dd>
<dd>
Added for libdap 3.11 </dd></dl>

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00341">341</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

<p>References <a class="el" href="DDS_8cc_source.html#l00572">libdap::DDS::add_var()</a>, <a class="el" href="DDS_8cc_source.html#l00444">libdap::DDS::get_dataset_name()</a>, <a class="el" href="DDS_8h_source.html#l00230">libdap::DDS::get_factory()</a>, <a class="el" href="BaseType_8cc_source.html#l00517">libdap::BaseType::set_send_p()</a>, and <a class="el" href="Clause_8cc_source.html#l00156">libdap::Clause::value()</a>.</p>

<p>Referenced by <a class="el" href="DODSFilter_8cc_source.html#l01016">libdap::DODSFilter::send_data()</a>, and <a class="el" href="DODSFilter_8cc_source.html#l01268">libdap::DODSFilter::send_data_ddx()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classlibdap_1_1ConstraintEvaluator_ab0dba1657e9aadd85b3ce713c6a4036a_cgraph.png" border="0" usemap="#classlibdap_1_1ConstraintEvaluator_ab0dba1657e9aadd85b3ce713c6a4036a_cgraph" alt=""/></div>
<map name="classlibdap_1_1ConstraintEvaluator_ab0dba1657e9aadd85b3ce713c6a4036a_cgraph" id="classlibdap_1_1ConstraintEvaluator_ab0dba1657e9aadd85b3ce713c6a4036a_cgraph">
<area shape="rect" id="node3" href="classlibdap_1_1DDS.html#ade87418e97ee5c7efd92279cd41e421c" title="Adds a copy of the variable to the DDS. Using the ptr_duplicate() method, perform a deep copy on the ..." alt="" coords="621,31,843,57"/><area shape="rect" id="node12" href="classlibdap_1_1DDS.html#ac83ef5e2bc4e75da5a21ead478aeff0c" title="libdap::DDS::get_dataset_name" alt="" coords="576,81,888,108"/><area shape="rect" id="node14" href="classlibdap_1_1DDS.html#aa75678c230c20aaf7626f954de04644f" title="libdap::DDS::get_factory" alt="" coords="601,132,863,159"/><area shape="rect" id="node16" href="classlibdap_1_1BaseType.html#aba7b27635c95b74536de18393133628e" title="libdap::BaseType::set_send_p" alt="" coords="581,183,883,209"/><area shape="rect" id="node20" href="structlibdap_1_1Clause.html#abfff44c4db49ad7462d14665b2458588" title="Evaluate a clause which returns a boolean value This method must only be evaluated for clauses with r..." alt="" coords="616,259,848,285"/><area shape="rect" id="node5" href="classlibdap_1_1Structure.html#aa2e403ad2ce9b78f279a18799f61b353" title="libdap::Structure::add_var" alt="" coords="936,56,1219,83"/><area shape="rect" id="node7" href="classlibdap_1_1BaseType.html#a0b130311c9901fb8a7ab11ea19090ef0" title="libdap::BaseType::ptr_duplicate" alt="" coords="1268,5,1599,32"/><area shape="rect" id="node9" href="classlibdap_1_1BaseType.html#a5b6a39f6ce6594fa74f3fc899ac9a966" title="libdap::BaseType::set_parent" alt="" coords="1283,56,1584,83"/><area shape="rect" id="node18" href="classlibdap_1_1BaseType.html#a0a0c6b5d57813607dc06255b8e0b9bdc" title="Returns the name of the class instance." alt="" coords="956,157,1199,184"/><area shape="rect" id="node22" href="namespacelibdap.html#a928b16257bc714971a2a3c91cb42d882" title="libdap::build_btp_args" alt="" coords="1312,233,1555,260"/><area shape="rect" id="node30" href="classlibdap_1_1rvalue.html#a5ec1d2d66b162aa9ad82b658e70ce7de" title="libdap::rvalue::bvalue" alt="" coords="956,259,1199,285"/><area shape="rect" id="node33" href="structlibdap_1_1Clause.html#aeaccc72688521a8b08aeae970d983473" title="Checks the &quot;representation invariant&quot; of a clause." alt="" coords="976,309,1179,336"/><area shape="rect" id="node35" href="classlibdap_1_1BaseType.html#a8a0000be2a244e3e07abda3020af8800" title="Evaluate relational operators." alt="" coords="961,360,1193,387"/><area shape="rect" id="node24" href="namespacelibdap.html#a317edea830aab50d2137a5bd313cc86a" title="libdap::long_to_string" alt="" coords="1648,208,1891,235"/><area shape="rect" id="node28" href="namespacelibdap.html#a36c4fc80766718669c9790c6cb20c895" title="sanitize the size of an array. Test for integer overflow when dynamically allocating an array..." alt="" coords="1684,259,1855,285"/><area shape="rect" id="node26" href="namespacelibdap.html#a576580781bca7dcd4b5a84cc06892aff" title="libdap::append_long_to_string" alt="" coords="1939,208,2251,235"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="aa0066a57cf00c975f6ccbc2e90c64742"></a><!-- doxytag: member="libdap::ConstraintEvaluator::eval_selection" ref="aa0066a57cf00c975f6ccbc2e90c64742" args="(DDS &amp;dds, const string &amp;dataset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libdap::ConstraintEvaluator::eval_selection </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classlibdap_1_1DDS.html">DDS</a> &amp;&#160;</td>
          <td class="paramname"><em>dds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>dataset</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dds</td><td>Use these variables when evaluating the expressions. </td></tr>
    <tr><td class="paramname">dataset</td><td>This string is passed to the read() methods. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>True if the expression is true, false otherwise. </dd></dl>

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00414">414</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

<p>References <a class="el" href="debug_8h_source.html#l00058">DBG</a>.</p>

<p>Referenced by <a class="el" href="Sequence_8cc_source.html#l00606">libdap::Sequence::read_row()</a>, <a class="el" href="Vector_8cc_source.html#l00636">libdap::Vector::serialize()</a>, <a class="el" href="UInt32_8cc_source.html#l00121">libdap::UInt32::serialize()</a>, <a class="el" href="UInt16_8cc_source.html#l00120">libdap::UInt16::serialize()</a>, <a class="el" href="Structure_8cc_source.html#l00300">libdap::Structure::serialize()</a>, <a class="el" href="Str_8cc_source.html#l00132">libdap::Str::serialize()</a>, <a class="el" href="Int32_8cc_source.html#l00129">libdap::Int32::serialize()</a>, <a class="el" href="Int16_8cc_source.html#l00118">libdap::Int16::serialize()</a>, <a class="el" href="Grid_8cc_source.html#l00236">libdap::Grid::serialize()</a>, <a class="el" href="Float64_8cc_source.html#l00127">libdap::Float64::serialize()</a>, <a class="el" href="Float32_8cc_source.html#l00125">libdap::Float32::serialize()</a>, and <a class="el" href="Byte_8cc_source.html#l00132">libdap::Byte::serialize()</a>.</p>

</div>
</div>
<a class="anchor" id="a1f59dced0a1aa7d31f5c46169188a8c3"></a><!-- doxytag: member="libdap::ConstraintEvaluator::find_function" ref="a1f59dced0a1aa7d31f5c46169188a8c3" args="(const string &amp;name, proj_func *f) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libdap::ConstraintEvaluator::find_function </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">proj_func *&#160;</td>
          <td class="paramname"><em>f</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00256">256</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

</div>
</div>
<a class="anchor" id="ac8da439f904b56b42bab23e6d6483a5d"></a><!-- doxytag: member="libdap::ConstraintEvaluator::find_function" ref="ac8da439f904b56b42bab23e6d6483a5d" args="(const string &amp;name, bool_func *f) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libdap::ConstraintEvaluator::find_function </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool_func *&#160;</td>
          <td class="paramname"><em>f</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00224">224</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a065950f0bc91ea2ae3ed06f6cd23e1f9"></a><!-- doxytag: member="libdap::ConstraintEvaluator::find_function" ref="a065950f0bc91ea2ae3ed06f6cd23e1f9" args="(const string &amp;name, btp_func *f) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libdap::ConstraintEvaluator::find_function </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">btp_func *&#160;</td>
          <td class="paramname"><em>f</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00240">240</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a9985c6a30247ced32a4b6e764deebf45"></a><!-- doxytag: member="libdap::ConstraintEvaluator::function_clauses" ref="a9985c6a30247ced32a4b6e764deebf45" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libdap::ConstraintEvaluator::function_clauses </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This method does not evaluate the clauses, it provides information to the evaluator regarding _how_ to evaluate the clause.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Added for libdap 3.11</dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>True if the clause is a function that returns a DDS* and false otherwise </dd></dl>

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00311">311</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

<p>References <a class="el" href="Clause_8cc_source.html#l00139">libdap::Clause::value_clause()</a>.</p>

<p>Referenced by <a class="el" href="DODSFilter_8cc_source.html#l01016">libdap::DODSFilter::send_data()</a>, and <a class="el" href="DODSFilter_8cc_source.html#l01268">libdap::DODSFilter::send_data_ddx()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classlibdap_1_1ConstraintEvaluator_a9985c6a30247ced32a4b6e764deebf45_cgraph.png" border="0" usemap="#classlibdap_1_1ConstraintEvaluator_a9985c6a30247ced32a4b6e764deebf45_cgraph" alt=""/></div>
<map name="classlibdap_1_1ConstraintEvaluator_a9985c6a30247ced32a4b6e764deebf45_cgraph" id="classlibdap_1_1ConstraintEvaluator_a9985c6a30247ced32a4b6e764deebf45_cgraph">
<area shape="rect" id="node3" href="structlibdap_1_1Clause.html#a7bd5122be1851f0bf32ec1c58b46eaa9" title="Return true if the clause returns a value in a BaseType pointer." alt="" coords="527,5,828,32"/><area shape="rect" id="node5" href="structlibdap_1_1Clause.html#aeaccc72688521a8b08aeae970d983473" title="Checks the &quot;representation invariant&quot; of a clause." alt="" coords="877,5,1080,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="add46ce1d9ef36fa26a2913d8d7c51096"></a><!-- doxytag: member="libdap::ConstraintEvaluator::functional_expression" ref="add46ce1d9ef36fa26a2913d8d7c51096" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libdap::ConstraintEvaluator::functional_expression </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>True if the clause is a function that returns a BaseType* and false otherwise </dd></dl>

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00277">277</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

<p>References <a class="el" href="Clause_8cc_source.html#l00139">libdap::Clause::value_clause()</a>.</p>

<p>Referenced by <a class="el" href="DODSFilter_8cc_source.html#l01016">libdap::DODSFilter::send_data()</a>, <a class="el" href="DODSFilter_8cc_source.html#l01268">libdap::DODSFilter::send_data_ddx()</a>, <a class="el" href="DODSFilter_8cc_source.html#l00816">libdap::DODSFilter::send_dds()</a>, and <a class="el" href="DODSFilter_8cc_source.html#l01185">libdap::DODSFilter::send_ddx()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classlibdap_1_1ConstraintEvaluator_add46ce1d9ef36fa26a2913d8d7c51096_cgraph.png" border="0" usemap="#classlibdap_1_1ConstraintEvaluator_add46ce1d9ef36fa26a2913d8d7c51096_cgraph" alt=""/></div>
<map name="classlibdap_1_1ConstraintEvaluator_add46ce1d9ef36fa26a2913d8d7c51096_cgraph" id="classlibdap_1_1ConstraintEvaluator_add46ce1d9ef36fa26a2913d8d7c51096_cgraph">
<area shape="rect" id="node3" href="structlibdap_1_1Clause.html#a7bd5122be1851f0bf32ec1c58b46eaa9" title="Return true if the clause returns a value in a BaseType pointer." alt="" coords="577,5,879,32"/><area shape="rect" id="node5" href="structlibdap_1_1Clause.html#aeaccc72688521a8b08aeae970d983473" title="Checks the &quot;representation invariant&quot; of a clause." alt="" coords="928,5,1131,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="aaeb4a7662178b992d9e36ff1dc0fc2bc"></a><!-- doxytag: member="libdap::ConstraintEvaluator::parse_constraint" ref="aaeb4a7662178b992d9e36ff1dc0fc2bc" args="(const string &amp;constraint, DDS &amp;dds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libdap::ConstraintEvaluator::parse_constraint </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>constraint</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classlibdap_1_1DDS.html">DDS</a> &amp;&#160;</td>
          <td class="paramname"><em>dds</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Evaluate the constraint expression; return the value of the expression. As a side effect, mark the <a class="el" href="classlibdap_1_1DDS.html">DDS</a> so that BaseType's mfuncs can be used to correctly read the variable's value and send it to the client.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">constraint</td><td>A string containing the constraint expression. </td></tr>
    <tr><td class="paramname">dds</td><td>The <a class="el" href="classlibdap_1_1DDS.html">DDS</a> that provides the environment within which the constraint is evaluated. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">Throws</td><td><a class="el" href="classlibdap_1_1Error.html" title="A class for error processing.">Error</a> if the constraint does not parse. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="ConstraintEvaluator_8cc_source.html#l00450">450</a> of file <a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a>.</p>

<p>References <a class="el" href="ConstraintEvaluator_8cc.html#a829e836debe59adfa593dc370b8cb2d0">ce_expr_delete_buffer()</a>, <a class="el" href="ConstraintEvaluator_8cc.html#a7a3a151376fbd8a427288eab509bfd06">ce_expr_string()</a>, <a class="el" href="ConstraintEvaluator_8cc.html#a955ba7cba10608969e986cd241a15155">ce_expr_switch_to_buffer()</a>, and <a class="el" href="ConstraintEvaluator_8cc.html#aba9ee772d54adb658f5dd2e1b71d3c2b">ce_exprparse()</a>.</p>

<p>Referenced by <a class="el" href="DODSFilter_8cc_source.html#l01016">libdap::DODSFilter::send_data()</a>, <a class="el" href="DODSFilter_8cc_source.html#l01268">libdap::DODSFilter::send_data_ddx()</a>, <a class="el" href="DODSFilter_8cc_source.html#l00816">libdap::DODSFilter::send_dds()</a>, and <a class="el" href="DODSFilter_8cc_source.html#l01185">libdap::DODSFilter::send_ddx()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classlibdap_1_1ConstraintEvaluator_aaeb4a7662178b992d9e36ff1dc0fc2bc_cgraph.png" border="0" usemap="#classlibdap_1_1ConstraintEvaluator_aaeb4a7662178b992d9e36ff1dc0fc2bc_cgraph" alt=""/></div>
<map name="classlibdap_1_1ConstraintEvaluator_aaeb4a7662178b992d9e36ff1dc0fc2bc_cgraph" id="classlibdap_1_1ConstraintEvaluator_aaeb4a7662178b992d9e36ff1dc0fc2bc_cgraph">
<area shape="rect" id="node3" href="ConstraintEvaluator_8cc.html#a829e836debe59adfa593dc370b8cb2d0" title="ce_expr_delete_buffer" alt="" coords="541,5,773,32"/><area shape="rect" id="node5" href="ConstraintEvaluator_8cc.html#a7a3a151376fbd8a427288eab509bfd06" title="ce_expr_string" alt="" coords="576,56,739,83"/><area shape="rect" id="node7" href="ConstraintEvaluator_8cc.html#a955ba7cba10608969e986cd241a15155" title="ce_expr_switch_to_buffer" alt="" coords="527,107,788,133"/><area shape="rect" id="node9" href="ConstraintEvaluator_8cc.html#aba9ee772d54adb658f5dd2e1b71d3c2b" title="ce_exprparse" alt="" coords="587,157,728,184"/></map>
</div>
</p>

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="abdcdfafb252f26c4af32af89b0f699dc"></a><!-- doxytag: member="libdap::ConstraintEvaluator::func_name_is" ref="abdcdfafb252f26c4af32af89b0f699dc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class func_name_is<code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="ConstraintEvaluator_8h_source.html#l00087">87</a> of file <a class="el" href="ConstraintEvaluator_8h_source.html">ConstraintEvaluator.h</a>.</p>

<p>Referenced by <a class="el" href="ConstraintEvaluator_8cc_source.html#l00197">add_function()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="ConstraintEvaluator_8h_source.html">ConstraintEvaluator.h</a></li>
<li><a class="el" href="ConstraintEvaluator_8cc_source.html">ConstraintEvaluator.cc</a></li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacelibdap.html">libdap</a>      </li>
      <li class="navelem"><a class="el" href="classlibdap_1_1ConstraintEvaluator.html">ConstraintEvaluator</a>      </li>
      <li class="footer">Generated on Tue Feb 8 2011 for libdap++ by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
    </ul>
  </div>

</body>
</html>