<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_112) on Sun Feb 26 17:08:10 EST 2017 -->
<title>ApplicationUtilities (Edgent v1.1.0)</title>
<meta name="date" content="2017-02-26">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="ApplicationUtilities (Edgent v1.1.0)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ApplicationUtilities.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/edgent/samples/apps/AbstractApplication.html" title="class in org.apache.edgent.samples.apps"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/edgent/samples/apps/JsonTuples.html" title="class in org.apache.edgent.samples.apps"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/edgent/samples/apps/ApplicationUtilities.html" target="_top">Frames</a></li>
<li><a href="ApplicationUtilities.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.edgent.samples.apps</div>
<h2 title="Class ApplicationUtilities" class="title">Class ApplicationUtilities</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.edgent.samples.apps.ApplicationUtilities</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">ApplicationUtilities</span>
extends java.lang.Object</pre>
<div class="block">Some general purpose application configuration driven utilities.
 <p>
 Utilities include:
 <ul>
 <li>Get a property name for a sensor configuration item</li>
 <li>Get a Range value for a sensor range item</li>
 <li>Log a stream</li>
 <li>Conditionally trace a stream</li>
 </ul></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/samples/apps/ApplicationUtilities.html#ApplicationUtilities-java.util.Properties-">ApplicationUtilities</a></span>(java.util.Properties&nbsp;props)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/analytics/sensors/Range.html" title="class in org.apache.edgent.analytics.sensors">Range</a>&lt;java.lang.Byte&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/samples/apps/ApplicationUtilities.html#getRangeByte-java.lang.String-java.lang.String-">getRangeByte</a></span>(java.lang.String&nbsp;sensorId,
            java.lang.String&nbsp;label)</code>
<div class="block">Get the Range for a sensor range configuration item.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/analytics/sensors/Range.html" title="class in org.apache.edgent.analytics.sensors">Range</a>&lt;java.lang.Double&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/samples/apps/ApplicationUtilities.html#getRangeDouble-java.lang.String-java.lang.String-">getRangeDouble</a></span>(java.lang.String&nbsp;sensorId,
              java.lang.String&nbsp;label)</code>
<div class="block">Get the Range for a sensor range configuration item.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/analytics/sensors/Range.html" title="class in org.apache.edgent.analytics.sensors">Range</a>&lt;java.lang.Float&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/samples/apps/ApplicationUtilities.html#getRangeFloat-java.lang.String-java.lang.String-">getRangeFloat</a></span>(java.lang.String&nbsp;sensorId,
             java.lang.String&nbsp;label)</code>
<div class="block">Get the Range for a sensor range configuration item.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/analytics/sensors/Range.html" title="class in org.apache.edgent.analytics.sensors">Range</a>&lt;java.lang.Integer&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/samples/apps/ApplicationUtilities.html#getRangeInteger-java.lang.String-java.lang.String-">getRangeInteger</a></span>(java.lang.String&nbsp;sensorId,
               java.lang.String&nbsp;label)</code>
<div class="block">Get the Range for a sensor range configuration item.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/analytics/sensors/Range.html" title="class in org.apache.edgent.analytics.sensors">Range</a>&lt;java.lang.Short&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/samples/apps/ApplicationUtilities.html#getRangeShort-java.lang.String-java.lang.String-">getRangeShort</a></span>(java.lang.String&nbsp;sensorId,
             java.lang.String&nbsp;label)</code>
<div class="block">Get the Range for a sensor range configuration item.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/samples/apps/ApplicationUtilities.html#getSensorPropertyName-java.lang.String-java.lang.String-java.lang.String-">getSensorPropertyName</a></span>(java.lang.String&nbsp;sensorId,
                     java.lang.String&nbsp;label,
                     java.lang.String&nbsp;kind)</code>
<div class="block">Get the property name for a sensor's configuration item.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/samples/apps/ApplicationUtilities.html#logStream-org.apache.edgent.topology.TStream-java.lang.String-java.lang.String-">logStream</a></span>(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;&nbsp;stream,
         java.lang.String&nbsp;eventTag,
         java.lang.String&nbsp;baseName)</code>
<div class="block">Log every tuple on the stream using the <code>FileStreams</code> connector.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/samples/apps/ApplicationUtilities.html#traceStream-org.apache.edgent.topology.TStream-java.lang.String-org.apache.edgent.function.Supplier-">traceStream</a></span>(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;&nbsp;stream,
           java.lang.String&nbsp;sensorId,
           <a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;java.lang.String&gt;&nbsp;label)</code>
<div class="block">Trace a stream to System.out if the sensor id's "label" has been configured
 to enable tracing.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/samples/apps/ApplicationUtilities.html#traceStream-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-">traceStream</a></span>(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;&nbsp;stream,
           <a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;java.lang.String&gt;&nbsp;label)</code>
<div class="block">Trace a stream to System.out if the "label" has been configured
 to enable tracing.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="ApplicationUtilities-java.util.Properties-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ApplicationUtilities</h4>
<pre>public&nbsp;ApplicationUtilities(java.util.Properties&nbsp;props)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="traceStream-org.apache.edgent.topology.TStream-java.lang.String-org.apache.edgent.function.Supplier-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>traceStream</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;&nbsp;traceStream(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;&nbsp;stream,
                                  java.lang.String&nbsp;sensorId,
                                  <a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;java.lang.String&gt;&nbsp;label)</pre>
<div class="block">Trace a stream to System.out if the sensor id's "label" has been configured
 to enable tracing.
 <p>
 If tracing has not been enabled in the config, the topology will not
 be augmented to trace the stream.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Tuple type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stream</code> - the stream to trace</dd>
<dd><code>sensorId</code> - the sensor id</dd>
<dd><code>label</code> - some unique label</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the input stream</dd>
</dl>
</li>
</ul>
<a name="traceStream-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>traceStream</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;&nbsp;traceStream(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;&nbsp;stream,
                                  <a href="../../../../../org/apache/edgent/function/Supplier.html" title="interface in org.apache.edgent.function">Supplier</a>&lt;java.lang.String&gt;&nbsp;label)</pre>
<div class="block">Trace a stream to System.out if the "label" has been configured
 to enable tracing.
 <p>
 If tracing has not been enabled in the config, the topology will not
 be augmented to trace the stream.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Tuple type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stream</code> - the stream to trace</dd>
<dd><code>label</code> - some unique label</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the input stream</dd>
</dl>
</li>
</ul>
<a name="getSensorPropertyName-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSensorPropertyName</h4>
<pre>public&nbsp;java.lang.String&nbsp;getSensorPropertyName(java.lang.String&nbsp;sensorId,
                                              java.lang.String&nbsp;label,
                                              java.lang.String&nbsp;kind)</pre>
<div class="block">Get the property name for a sensor's configuration item.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sensorId</code> - the sensor's id</dd>
<dd><code>label</code> - the label for an instance of "kind" (e.g., "tempThreshold")</dd>
<dd><code>kind</code> - the kind of configuration item (e.g., "range")</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the configuration property name</dd>
</dl>
</li>
</ul>
<a name="getRangeInteger-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRangeInteger</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/analytics/sensors/Range.html" title="class in org.apache.edgent.analytics.sensors">Range</a>&lt;java.lang.Integer&gt;&nbsp;getRangeInteger(java.lang.String&nbsp;sensorId,
                                                java.lang.String&nbsp;label)</pre>
<div class="block">Get the Range for a sensor range configuration item.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sensorId</code> - the sensor's id</dd>
<dd><code>label</code> - the range's label</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Range</dd>
</dl>
</li>
</ul>
<a name="getRangeByte-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRangeByte</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/analytics/sensors/Range.html" title="class in org.apache.edgent.analytics.sensors">Range</a>&lt;java.lang.Byte&gt;&nbsp;getRangeByte(java.lang.String&nbsp;sensorId,
                                          java.lang.String&nbsp;label)</pre>
<div class="block">Get the Range for a sensor range configuration item.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sensorId</code> - the sensor's id</dd>
<dd><code>label</code> - the range's label</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Range</dd>
</dl>
</li>
</ul>
<a name="getRangeShort-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRangeShort</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/analytics/sensors/Range.html" title="class in org.apache.edgent.analytics.sensors">Range</a>&lt;java.lang.Short&gt;&nbsp;getRangeShort(java.lang.String&nbsp;sensorId,
                                            java.lang.String&nbsp;label)</pre>
<div class="block">Get the Range for a sensor range configuration item.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sensorId</code> - the sensor's id</dd>
<dd><code>label</code> - the range's label</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Range</dd>
</dl>
</li>
</ul>
<a name="getRangeFloat-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRangeFloat</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/analytics/sensors/Range.html" title="class in org.apache.edgent.analytics.sensors">Range</a>&lt;java.lang.Float&gt;&nbsp;getRangeFloat(java.lang.String&nbsp;sensorId,
                                            java.lang.String&nbsp;label)</pre>
<div class="block">Get the Range for a sensor range configuration item.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sensorId</code> - the sensor's id</dd>
<dd><code>label</code> - the range's label</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Range</dd>
</dl>
</li>
</ul>
<a name="getRangeDouble-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRangeDouble</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/analytics/sensors/Range.html" title="class in org.apache.edgent.analytics.sensors">Range</a>&lt;java.lang.Double&gt;&nbsp;getRangeDouble(java.lang.String&nbsp;sensorId,
                                              java.lang.String&nbsp;label)</pre>
<div class="block">Get the Range for a sensor range configuration item.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sensorId</code> - the sensor's id</dd>
<dd><code>label</code> - the range's label</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Range</dd>
</dl>
</li>
</ul>
<a name="logStream-org.apache.edgent.topology.TStream-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>logStream</h4>
<pre>public&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;&nbsp;logStream(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;&nbsp;stream,
                                java.lang.String&nbsp;eventTag,
                                java.lang.String&nbsp;baseName)</pre>
<div class="block">Log every tuple on the stream using the <code>FileStreams</code> connector.
 <p>
 The logs are added to the directory as specified
 by the "application.log.dir" property.
 The directory will be created as needed.
 <p>
 The "active" (open / being written) log file name is <code>.&lt;baseName&gt;</code>.
 <br>
 Completed stable logs have a name of <code>&lt;baseName&gt;_YYYYMMDD_HHMMSS</code>.
 <p>
 The log entry format being used is:
 <code>[&lt;date&gt;] [&lt;eventTag&gt;] &lt;tuple&gt;.toString()</code>
 <p>
 See <a href="../../../../../org/apache/edgent/connectors/file/FileStreams.html#textFileWriter-org.apache.edgent.topology.TStream-org.apache.edgent.function.Supplier-org.apache.edgent.function.Supplier-"><code>FileStreams.textFileWriter(TStream, org.apache.edgent.function.Supplier, org.apache.edgent.function.Supplier)</code></a></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Tuple type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stream</code> - the TStream</dd>
<dd><code>baseName</code> - the base log name</dd>
<dd><code>eventTag</code> - a tag that gets added to the log entry</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the input stream</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ApplicationUtilities.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><a href="http://edgent.incubator.apache.org">Apache Edgent (incubating)</a></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/edgent/samples/apps/AbstractApplication.html" title="class in org.apache.edgent.samples.apps"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/edgent/samples/apps/JsonTuples.html" title="class in org.apache.edgent.samples.apps"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/edgent/samples/apps/ApplicationUtilities.html" target="_top">Frames</a></li>
<li><a href="ApplicationUtilities.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2017 The Apache Software Foundation. All Rights Reserved - 4744f56-20170226-1707</small></p>
</body>
</html>
