<!DOCTYPE html >
<html>
        <head>
          <title>plan - io.gearpump.streaming.dsl.plan</title>
          <meta name="description" content="plan - io.gearpump.streaming.dsl.plan" />
          <meta name="keywords" content="plan io.gearpump.streaming.dsl.plan" />
          <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
          
      <link href="../../../../../lib/template.css" media="screen" type="text/css" rel="stylesheet" />
      <link href="../../../../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css" />
      <script type="text/javascript" src="../../../../../lib/jquery.js" id="jquery-js"></script>
      <script type="text/javascript" src="../../../../../lib/jquery-ui.js"></script>
      <script type="text/javascript" src="../../../../../lib/template.js"></script>
      <script type="text/javascript" src="../../../../../lib/tools.tooltip.js"></script>
      
      <script type="text/javascript">
         if(top === self) {
            var url = '../../../../../index.html';
            var hash = 'io.gearpump.streaming.dsl.plan.package';
            var anchor = window.location.hash;
            var anchor_opt = '';
            if (anchor.length >= 1)
              anchor_opt = '@' + anchor.substring(1);
            window.location.href = url + '#' + hash + anchor_opt;
         }
   	  </script>
    
        </head>
        <body class="value">
      <div id="definition">
        <img src="../../../../../lib/package_big.png" />
        <p id="owner"><a href="../../../../package.html" class="extype" name="io">io</a>.<a href="../../../package.html" class="extype" name="io.gearpump">gearpump</a>.<a href="../../package.html" class="extype" name="io.gearpump.streaming">streaming</a>.<a href="../package.html" class="extype" name="io.gearpump.streaming.dsl">dsl</a></p>
        <h1>plan</h1><span class="permalink">
      <a href="../../../../../index.html#io.gearpump.streaming.dsl.plan.package" title="Permalink" target="_top">
        <img src="../../../../../lib/permalink.png" />
      </a>
    </span>
      </div>

      <h4 id="signature" class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">package</span>
      </span>
      <span class="symbol">
        <span class="name">plan</span>
      </span>
      </h4>
      
          <div id="comment" class="fullcommenttop"></div>
        

      <div id="mbrsel">
        <div id="textfilter"><span class="pre"></span><span class="input"><input id="mbrsel-input" type="text" accesskey="/" /></span><span class="post"></span></div>
        
        
        <div id="visbl">
            <span class="filtertype">Visibility</span>
            <ol><li class="public in"><span>Public</span></li><li class="all out"><span>All</span></li></ol>
          </div>
      </div>

      <div id="template">
        <div id="allMembers">
        

        <div id="types" class="types members">
              <h3>Type Members</h3>
              <ol><li name="io.gearpump.streaming.dsl.plan.OpTranslator" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="OpTranslatorextendsSerializable"></a>
      <a id="OpTranslator:OpTranslator"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a href="OpTranslator.html"><span class="name">OpTranslator</span></a><span class="result"> extends <span class="extype" name="java.io.Serializable">Serializable</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../../index.html#io.gearpump.streaming.dsl.plan.package@OpTranslatorextendsSerializable" title="Permalink" target="_top">
        <img src="../../../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt">Translate a OP to a TaskDescription
</p>
    </li><li name="io.gearpump.streaming.dsl.plan.Planner" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="PlannerextendsAnyRef"></a>
      <a id="Planner:Planner"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <a href="Planner.html"><span class="name">Planner</span></a><span class="result"> extends <span class="extype" name="scala.AnyRef">AnyRef</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../../index.html#io.gearpump.streaming.dsl.plan.package@PlannerextendsAnyRef" title="Permalink" target="_top">
        <img src="../../../../../lib/permalink.png" />
      </a>
    </span>
      
    </li></ol>
            </div>

        

        <div id="values" class="values members">
              <h3>Value Members</h3>
              <ol><li name="io.gearpump.streaming.dsl.plan.OpTranslator" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="OpTranslator"></a>
      <a id="OpTranslator:OpTranslator"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">object</span>
      </span>
      <span class="symbol">
        <a href="OpTranslator$.html"><span class="name">OpTranslator</span></a><span class="result"> extends <span class="extype" name="scala.Serializable">Serializable</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../../index.html#io.gearpump.streaming.dsl.plan.package@OpTranslator" title="Permalink" target="_top">
        <img src="../../../../../lib/permalink.png" />
      </a>
    </span>
      
    </li></ol>
            </div>

        

        
        </div>

        <div id="inheritedMembers">
        
        
        </div>

        <div id="groupedMembers">
        <div class="group" name="Ungrouped">
              <h3>Ungrouped</h3>
              
            </div>
        </div>

      </div>

      <div id="tooltip"></div>

      <div id="footer">  </div>


    </body>
      </html>