blob: 1ab45cefa360ae38d10ab966df3905a5c1bdeab5 [file] [log] [blame]
<!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:09 EST 2017 -->
<title>IotpGateway (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="IotpGateway (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,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":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/IotpGateway.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/connectors/iotp/IotpDevice.html" title="class in org.apache.edgent.connectors.iotp"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/edgent/connectors/iotp/IotpGateway.html" target="_top">Frames</a></li>
<li><a href="IotpGateway.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><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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.connectors.iotp</div>
<h2 title="Class IotpGateway" class="title">Class IotpGateway</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.edgent.connectors.iotp.IotpGateway</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot">IotDevice</a>, <a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html" title="interface in org.apache.edgent.connectors.iot">IotGateway</a>, <a href="../../../../../org/apache/edgent/topology/TopologyElement.html" title="interface in org.apache.edgent.topology">TopologyElement</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">IotpGateway</span>
extends java.lang.Object
implements <a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html" title="interface in org.apache.edgent.connectors.iot">IotGateway</a></pre>
<div class="block">An IoT Gateway Device Connector to IBM Watson IoT Platform (WIoTP).
<p>
<b>This class is incubating and is subject to change.</b>
<p>
See <a href="../../../../../org/apache/edgent/connectors/iotp/IotpDevice.html" title="class in org.apache.edgent.connectors.iotp"><code>IotpDevice</code></a> for common WIoTP documentation references.
<p>
<code>IotpGateway</code> establishes its own WIoTP <code>GatewayCallback</code>
handler in its embedded or the passed in WIoTP <code>GatewayClient</code>.
An application can use
<a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#setExternalCallbackHandler-com.ibm.iotf.client.gateway.GatewayCallback-"><code>setExternalCallbackHandler</code></a>
to also receive and process callbacks.
<p>
Limitations:
<ul>
<li><code>IotProvider</code> and <code>PublishSubscribeService</code> do not yet support
the gateway model. An IotProvider may be initialized with an IotpGateway
but the PublishSubscribeService mechanism will only publish events and receive
commands for the gateway device, not any of its connected devices.
</li>
</ul></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#ATTR_DEVICE_ID">ATTR_DEVICE_ID</a></span></code>
<div class="block">WIoTP Device Id identifier key.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#ATTR_DEVICE_TYPE">ATTR_DEVICE_TYPE</a></span></code>
<div class="block">WIoTP Device Type identifier key.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.edgent.connectors.iot.IotDevice">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.apache.edgent.connectors.iot.<a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot">IotDevice</a></h3>
<code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_DEVICE">CMD_DEVICE</a>, <a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_FORMAT">CMD_FORMAT</a>, <a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_ID">CMD_ID</a>, <a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_PAYLOAD">CMD_PAYLOAD</a>, <a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_TS">CMD_TS</a>, <a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#RESERVED_ID_PREFIX">RESERVED_ID_PREFIX</a></code></li>
</ul>
</li>
</ul>
<!-- ======== 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/connectors/iotp/IotpGateway.html#IotpGateway-org.apache.edgent.topology.Topology-java.io.File-">IotpGateway</a></span>(<a href="../../../../../org/apache/edgent/topology/Topology.html" title="interface in org.apache.edgent.topology">Topology</a>&nbsp;topology,
java.io.File&nbsp;optionsFile)</code>
<div class="block">Create a connector for the IoT gateway device specified by <code>optionsFile</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#IotpGateway-org.apache.edgent.topology.Topology-com.ibm.iotf.client.gateway.GatewayClient-">IotpGateway</a></span>(<a href="../../../../../org/apache/edgent/topology/Topology.html" title="interface in org.apache.edgent.topology">Topology</a>&nbsp;topology,
com.ibm.iotf.client.gateway.GatewayClient&nbsp;gatewayClient)</code>
<div class="block">Create a connector using the supplied WIoTP <code>DeviceClient</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#IotpGateway-org.apache.edgent.topology.Topology-java.util.Properties-">IotpGateway</a></span>(<a href="../../../../../org/apache/edgent/topology/Topology.html" title="interface in org.apache.edgent.topology">Topology</a>&nbsp;topology,
java.util.Properties&nbsp;options)</code>
<div class="block">Create a connector for the IoT gateway device specified by <code>options</code>.</div>
</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/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#commands-java.lang.String...-">commands</a></span>(java.lang.String...&nbsp;commands)</code>
<div class="block">Create a stream of device commands as JSON objects.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#commandsForDevice-java.util.Set-java.lang.String...-">commandsForDevice</a></span>(java.util.Set&lt;java.lang.String&gt;&nbsp;fqDeviceIds,
java.lang.String...&nbsp;commands)</code>
<div class="block">Create a stream of device commands as JSON objects.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#commandsForDevice-java.lang.String-java.lang.String...-">commandsForDevice</a></span>(java.lang.String&nbsp;fqDeviceId,
java.lang.String...&nbsp;commands)</code>
<div class="block">Create a stream of device commands as JSON objects.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#commandsForType-java.lang.String-java.lang.String...-">commandsForType</a></span>(java.lang.String&nbsp;deviceTypeId,
java.lang.String...&nbsp;commands)</code>
<div class="block">Create a stream of device commands as JSON objects.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/topology/TSink.html" title="interface in org.apache.edgent.topology">TSink</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#events-org.apache.edgent.topology.TStream-org.apache.edgent.function.Function-org.apache.edgent.function.UnaryOperator-org.apache.edgent.function.Function-">events</a></span>(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,java.lang.String&gt;&nbsp;eventId,
<a href="../../../../../org/apache/edgent/function/UnaryOperator.html" title="interface in org.apache.edgent.function">UnaryOperator</a>&lt;com.google.gson.JsonObject&gt;&nbsp;payload,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,java.lang.Integer&gt;&nbsp;qos)</code>
<div class="block">Publish a stream's tuples as device events.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/topology/TSink.html" title="interface in org.apache.edgent.topology">TSink</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#events-org.apache.edgent.topology.TStream-java.lang.String-int-">events</a></span>(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
java.lang.String&nbsp;eventId,
int&nbsp;qos)</code>
<div class="block">Publish a stream's tuples as device events.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/topology/TSink.html" title="interface in org.apache.edgent.topology">TSink</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#eventsForDevice-org.apache.edgent.function.Function-org.apache.edgent.topology.TStream-org.apache.edgent.function.Function-org.apache.edgent.function.UnaryOperator-org.apache.edgent.function.Function-">eventsForDevice</a></span>(<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,java.lang.String&gt;&nbsp;fqDeviceId,
<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,java.lang.String&gt;&nbsp;eventId,
<a href="../../../../../org/apache/edgent/function/UnaryOperator.html" title="interface in org.apache.edgent.function">UnaryOperator</a>&lt;com.google.gson.JsonObject&gt;&nbsp;payload,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,java.lang.Integer&gt;&nbsp;qos)</code>
<div class="block">Publish a stream's tuples as device events.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/topology/TSink.html" title="interface in org.apache.edgent.topology">TSink</a>&lt;com.google.gson.JsonObject&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#eventsForDevice-java.lang.String-org.apache.edgent.topology.TStream-java.lang.String-int-">eventsForDevice</a></span>(java.lang.String&nbsp;fqDeviceId,
<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
java.lang.String&nbsp;eventId,
int&nbsp;qos)</code>
<div class="block">Publish a stream's tuples as device events.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#getDeviceId--">getDeviceId</a></span>()</code>
<div class="block">Get the device's unique opaque device identifier.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#getDeviceType--">getDeviceType</a></span>()</code>
<div class="block">Get the device's opaque device type identifier.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot">IotDevice</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#getIotDevice-java.util.Map-">getIotDevice</a></span>(java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;deviceIdAttrs)</code>
<div class="block">Get an <a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot"><code>IotDevice</code></a> for a connected device.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot">IotDevice</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#getIotDevice-java.lang.String-">getIotDevice</a></span>(java.lang.String&nbsp;fqDeviceId)</code>
<div class="block">Get an <a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot"><code>IotDevice</code></a> for a connected device.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#getIotDeviceId-java.util.Map-">getIotDeviceId</a></span>(java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;deviceIdAttrs)</code>
<div class="block">Get a <code>deviceId</code> for a device.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>com.ibm.iotf.client.gateway.GatewayCallback</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#setExternalCallbackHandler-com.ibm.iotf.client.gateway.GatewayCallback-">setExternalCallbackHandler</a></span>(com.ibm.iotf.client.gateway.GatewayCallback&nbsp;handler)</code>
<div class="block">Set an external WIoTP <code>GatewayCallback</code> handler.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/edgent/topology/Topology.html" title="interface in org.apache.edgent.topology">Topology</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#topology--">topology</a></span>()</code>
<div class="block">Topology this element is contained in.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#toString--">toString</a></span>()</code>&nbsp;</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, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="ATTR_DEVICE_TYPE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ATTR_DEVICE_TYPE</h4>
<pre>public static final&nbsp;java.lang.String ATTR_DEVICE_TYPE</pre>
<div class="block">WIoTP Device Type identifier key.
Key is "deviceType".</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#getIotDevice-java.util.Map-"><code>getIotDevice(Map)</code></a>,
<a href="../../../../../constant-values.html#org.apache.edgent.connectors.iotp.IotpGateway.ATTR_DEVICE_TYPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ATTR_DEVICE_ID">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ATTR_DEVICE_ID</h4>
<pre>public static final&nbsp;java.lang.String ATTR_DEVICE_ID</pre>
<div class="block">WIoTP Device Id identifier key.
Key is "deviceId".</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#getIotDevice-java.util.Map-"><code>getIotDevice(Map)</code></a>,
<a href="../../../../../constant-values.html#org.apache.edgent.connectors.iotp.IotpGateway.ATTR_DEVICE_ID">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="IotpGateway-org.apache.edgent.topology.Topology-java.util.Properties-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>IotpGateway</h4>
<pre>public&nbsp;IotpGateway(<a href="../../../../../org/apache/edgent/topology/Topology.html" title="interface in org.apache.edgent.topology">Topology</a>&nbsp;topology,
java.util.Properties&nbsp;options)</pre>
<div class="block">Create a connector for the IoT gateway device specified by <code>options</code>.
<BR>
These properties must be set in <code>options</code>.
<UL>
<LI><code>org=</code><em>organization identifier</em></LI>
<LI><code>type=</code><em>gateway device type</em></LI>
<LI><code>id=</code><em>gateway device identifier</em></LI>
<LI><code>auth-method=token</code></LI>
<LI><code>auth-token=</code><em>authorization token</em></LI>
</UL>
For example:
<pre>
<code>
Properties options = new Properties();
options.setProperty("org", "uguhsp");
options.setProperty("type", "iotsample-gateway");
options.setProperty("id", "00aabbccde03");
options.setProperty("auth-method", "token");
options.setProperty("auth-token", "AJfKQV@&amp;bBo@VX6Dcg");
IotDevice iotDevice = new IotpDevice(options);
</code>
</pre>
<p>
Connecting to the server occurs when the topology is submitted for
execution.
</p>
<p>
See the IBM Watson IoT Platform documentation for additional properties.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>options</code> - control options</dd>
<dd><code>topology</code> - the connector's associated <code>Topology</code>.</dd>
</dl>
</li>
</ul>
<a name="IotpGateway-org.apache.edgent.topology.Topology-java.io.File-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>IotpGateway</h4>
<pre>public&nbsp;IotpGateway(<a href="../../../../../org/apache/edgent/topology/Topology.html" title="interface in org.apache.edgent.topology">Topology</a>&nbsp;topology,
java.io.File&nbsp;optionsFile)</pre>
<div class="block">Create a connector for the IoT gateway device specified by <code>optionsFile</code>.
<BR>
The format of the file is:
<pre>
<code>
[device]
org = <em>organization identifier</em>
type = <em>gateway device type</em>
id = <em>gateway device identifier</em>
auth-method = token
auth-token = <em>authorization token</em>
</code>
</pre>
For example:
<pre>
<code>
[device]
org = uguhsp
type = iotsample-gateway
id = 00aabbccde03
auth-method = token
auth-token = AJfKQV@&amp;bBo@VX6Dcg
</code>
</pre>
<p>
Connecting to the server occurs when the topology is submitted for
execution.
</p>
<p>
See the IBM Watson IoT Platform documentation for additional properties.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topology</code> - the connector's associated <code>Topology</code>.</dd>
<dd><code>optionsFile</code> - File containing connection information.</dd>
</dl>
</li>
</ul>
<a name="IotpGateway-org.apache.edgent.topology.Topology-com.ibm.iotf.client.gateway.GatewayClient-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>IotpGateway</h4>
<pre>public&nbsp;IotpGateway(<a href="../../../../../org/apache/edgent/topology/Topology.html" title="interface in org.apache.edgent.topology">Topology</a>&nbsp;topology,
com.ibm.iotf.client.gateway.GatewayClient&nbsp;gatewayClient)</pre>
<div class="block">Create a connector using the supplied WIoTP <code>DeviceClient</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topology</code> - the connector's associated <code>Topology</code>.</dd>
<dd><code>gatewayClient</code> - a WIoTP device client API object.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getDeviceType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeviceType</h4>
<pre>public&nbsp;java.lang.String&nbsp;getDeviceType()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#getDeviceType--">IotDevice</a></code></span></div>
<div class="block">Get the device's opaque device type identifier.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#getDeviceType--">getDeviceType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot">IotDevice</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the device's type</dd>
</dl>
</li>
</ul>
<a name="getDeviceId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeviceId</h4>
<pre>public&nbsp;java.lang.String&nbsp;getDeviceId()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#getDeviceId--">IotDevice</a></code></span></div>
<div class="block">Get the device's unique opaque device identifier.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#getDeviceId--">getDeviceId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot">IotDevice</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the device's id</dd>
</dl>
</li>
</ul>
<a name="events-org.apache.edgent.topology.TStream-org.apache.edgent.function.Function-org.apache.edgent.function.UnaryOperator-org.apache.edgent.function.Function-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>events</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/topology/TSink.html" title="interface in org.apache.edgent.topology">TSink</a>&lt;com.google.gson.JsonObject&gt;&nbsp;events(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,java.lang.String&gt;&nbsp;eventId,
<a href="../../../../../org/apache/edgent/function/UnaryOperator.html" title="interface in org.apache.edgent.function">UnaryOperator</a>&lt;com.google.gson.JsonObject&gt;&nbsp;payload,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,java.lang.Integer&gt;&nbsp;qos)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#events-org.apache.edgent.topology.TStream-org.apache.edgent.function.Function-org.apache.edgent.function.UnaryOperator-org.apache.edgent.function.Function-">IotDevice</a></code></span></div>
<div class="block">Publish a stream's tuples as device events.
<p>
Each tuple is published as a device event with the supplied functions
providing the event identifier, payload and QoS. The event identifier and
QoS can be generated based upon the tuple.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#events-org.apache.edgent.topology.TStream-org.apache.edgent.function.Function-org.apache.edgent.function.UnaryOperator-org.apache.edgent.function.Function-">events</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot">IotDevice</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stream</code> - Stream to be published.</dd>
<dd><code>eventId</code> - function to supply the event identifier.</dd>
<dd><code>payload</code> - function to supply the event's payload.</dd>
<dd><code>qos</code> - function to supply the event's delivery Quality of Service.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>TSink sink element representing termination of this stream.</dd>
</dl>
</li>
</ul>
<a name="events-org.apache.edgent.topology.TStream-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>events</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/topology/TSink.html" title="interface in org.apache.edgent.topology">TSink</a>&lt;com.google.gson.JsonObject&gt;&nbsp;events(<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
java.lang.String&nbsp;eventId,
int&nbsp;qos)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#events-org.apache.edgent.topology.TStream-java.lang.String-int-">IotDevice</a></code></span></div>
<div class="block">Publish a stream's tuples as device events.
<p>
Each tuple is published as a device event with fixed event identifier and
QoS.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#events-org.apache.edgent.topology.TStream-java.lang.String-int-">events</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot">IotDevice</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stream</code> - Stream to be published.</dd>
<dd><code>eventId</code> - Event identifier.</dd>
<dd><code>qos</code> - Event's delivery Quality of Service.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>TSink sink element representing termination of this stream.</dd>
</dl>
</li>
</ul>
<a name="commands-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commands</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;commands(java.lang.String...&nbsp;commands)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#commands-java.lang.String...-">IotDevice</a></code></span></div>
<div class="block">Create a stream of device commands as JSON objects.
Each command sent to the device matching <code>commands</code> will result in a tuple
on the stream. The JSON object has these keys:
<UL>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_DEVICE"><code>device</code></a> - Command's opaque target device's id String.
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_ID"><code>command</code></a> - Command identifier as a String</LI>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_TS"><code>tsms</code></a> - Timestamp of the command in milliseconds since the 1970/1/1 epoch.</LI>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_FORMAT"><code>format</code></a> - Format of the command as a String</LI>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_PAYLOAD"><code>payload</code></a> - Payload of the command
<UL>
<LI>If <code>format</code> is <code>json</code> then <code>payload</code> is JSON</LI>
<LI>Otherwise <code>payload</code> is String</LI>
</UL>
</LI>
</UL></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#commands-java.lang.String...-">commands</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot">IotDevice</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>commands</code> - Command identifiers to include. If no command identifiers are provided then the
stream will contain all of this IotDevice's device commands.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Stream containing device commands.</dd>
</dl>
</li>
</ul>
<a name="topology--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>topology</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/topology/Topology.html" title="interface in org.apache.edgent.topology">Topology</a>&nbsp;topology()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/edgent/topology/TopologyElement.html#topology--">TopologyElement</a></code></span></div>
<div class="block">Topology this element is contained in.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/topology/TopologyElement.html#topology--">topology</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/topology/TopologyElement.html" title="interface in org.apache.edgent.topology">TopologyElement</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Topology this element is contained in.</dd>
</dl>
</li>
</ul>
<a name="getIotDeviceId-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIotDeviceId</h4>
<pre>public&nbsp;java.lang.String&nbsp;getIotDeviceId(java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;deviceIdAttrs)</pre>
<div class="block">Get a <code>deviceId</code> for a device.
Logically equivalent to <code>getIotDevice(deviceIdAttrs).getDeviceId()</code>.
No external validation of the attribute values is performed.
<p>
The device's WIoTP deviceType and deviceId must be supplied
using the <a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#ATTR_DEVICE_TYPE"><code>ATTR_DEVICE_TYPE</code></a> and <a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#ATTR_DEVICE_ID"><code>ATTR_DEVICE_ID</code></a>
keys respectively.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#getIotDeviceId-java.util.Map-">getIotDeviceId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html" title="interface in org.apache.edgent.connectors.iot">IotGateway</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>deviceIdAttrs</code> - IotGateway implementation specific attributes
that identify a device.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>deviceId</dd>
</dl>
</li>
</ul>
<a name="getIotDevice-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIotDevice</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot">IotDevice</a>&nbsp;getIotDevice(java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;deviceIdAttrs)</pre>
<div class="block">Get an <a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot"><code>IotDevice</code></a> for a connected device.
No external validation of the attribute values is performed.
<p>
See <a href="../../../../../org/apache/edgent/connectors/iotp/IotpGateway.html#getIotDeviceId-java.util.Map-"><code>getIotDeviceId(Map)</code></a> for the required attribute keys.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#getIotDevice-java.util.Map-">getIotDevice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html" title="interface in org.apache.edgent.connectors.iot">IotGateway</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>deviceIdAttrs</code> - IotGateway implementation specific attributes
that identify a device.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>IotDevice</dd>
</dl>
</li>
</ul>
<a name="getIotDevice-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIotDevice</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot">IotDevice</a>&nbsp;getIotDevice(java.lang.String&nbsp;fqDeviceId)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#getIotDevice-java.lang.String-">IotGateway</a></code></span></div>
<div class="block">Get an <a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html" title="interface in org.apache.edgent.connectors.iot"><code>IotDevice</code></a> for a connected device.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#getIotDevice-java.lang.String-">getIotDevice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html" title="interface in org.apache.edgent.connectors.iot">IotGateway</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fqDeviceId</code> - a value from <a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#getDeviceId--"><code>IotDevice.getDeviceId()</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>IotDevice</dd>
</dl>
</li>
</ul>
<a name="eventsForDevice-org.apache.edgent.function.Function-org.apache.edgent.topology.TStream-org.apache.edgent.function.Function-org.apache.edgent.function.UnaryOperator-org.apache.edgent.function.Function-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>eventsForDevice</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/topology/TSink.html" title="interface in org.apache.edgent.topology">TSink</a>&lt;com.google.gson.JsonObject&gt;&nbsp;eventsForDevice(<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,java.lang.String&gt;&nbsp;fqDeviceId,
<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,java.lang.String&gt;&nbsp;eventId,
<a href="../../../../../org/apache/edgent/function/UnaryOperator.html" title="interface in org.apache.edgent.function">UnaryOperator</a>&lt;com.google.gson.JsonObject&gt;&nbsp;payload,
<a href="../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;com.google.gson.JsonObject,java.lang.Integer&gt;&nbsp;qos)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#eventsForDevice-org.apache.edgent.function.Function-org.apache.edgent.topology.TStream-org.apache.edgent.function.Function-org.apache.edgent.function.UnaryOperator-org.apache.edgent.function.Function-">IotGateway</a></code></span></div>
<div class="block">Publish a stream's tuples as device events.
Each tuple is published as a device event with the supplied functions
providing the device identifier, event identifier, payload and QoS.
The values can be generated based upon the tuple.
<p>
Events for a particular device can also be published via its
<a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#events-org.apache.edgent.topology.TStream-org.apache.edgent.function.Function-org.apache.edgent.function.UnaryOperator-org.apache.edgent.function.Function-"><code>IotDevice.events()</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#eventsForDevice-org.apache.edgent.function.Function-org.apache.edgent.topology.TStream-org.apache.edgent.function.Function-org.apache.edgent.function.UnaryOperator-org.apache.edgent.function.Function-">eventsForDevice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html" title="interface in org.apache.edgent.connectors.iot">IotGateway</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fqDeviceId</code> - function to supply the device-id that the event is associated with.</dd>
<dd><code>stream</code> - Stream to be published.</dd>
<dd><code>eventId</code> - function to supply the event identifier.</dd>
<dd><code>payload</code> - function to supply the event's payload.</dd>
<dd><code>qos</code> - function to supply the event's delivery Quality of Service.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>TSink sink element representing termination of this stream.</dd>
</dl>
</li>
</ul>
<a name="eventsForDevice-java.lang.String-org.apache.edgent.topology.TStream-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>eventsForDevice</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/topology/TSink.html" title="interface in org.apache.edgent.topology">TSink</a>&lt;com.google.gson.JsonObject&gt;&nbsp;eventsForDevice(java.lang.String&nbsp;fqDeviceId,
<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;stream,
java.lang.String&nbsp;eventId,
int&nbsp;qos)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#eventsForDevice-java.lang.String-org.apache.edgent.topology.TStream-java.lang.String-int-">IotGateway</a></code></span></div>
<div class="block">Publish a stream's tuples as device events.
Each tuple is published as a device event with the supplied
device identifier, event identifier and QoS.
<p>
Events for a particular device can also be published via its
<a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#events-org.apache.edgent.topology.TStream-java.lang.String-int-"><code>IotDevice.event()</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#eventsForDevice-java.lang.String-org.apache.edgent.topology.TStream-java.lang.String-int-">eventsForDevice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html" title="interface in org.apache.edgent.connectors.iot">IotGateway</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fqDeviceId</code> - Device-id that the event is associated with.</dd>
<dd><code>stream</code> - Stream to be published.</dd>
<dd><code>eventId</code> - Event identifier.</dd>
<dd><code>qos</code> - Event's delivery Quality of Service.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>TSink sink element representing termination of this stream.</dd>
</dl>
</li>
</ul>
<a name="commandsForDevice-java.util.Set-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commandsForDevice</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;commandsForDevice(java.util.Set&lt;java.lang.String&gt;&nbsp;fqDeviceIds,
java.lang.String...&nbsp;commands)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#commandsForDevice-java.util.Set-java.lang.String...-">IotGateway</a></code></span></div>
<div class="block">Create a stream of device commands as JSON objects.
Each command sent to one of the specified <code>deviceIds</code> matching <code>commands</code> will
result in a tuple on the stream. The JSON object has these keys:
<UL>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_DEVICE"><code>device</code></a> - Command's opaque target device's id String.
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_ID"><code>command</code></a> - Command identifier as a String</LI>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_TS"><code>tsms</code></a> - Timestamp of the command in milliseconds since the 1970/1/1 epoch.</LI>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_FORMAT"><code>format</code></a> - Format of the command as a String</LI>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_PAYLOAD"><code>payload</code></a> - Payload of the command
<UL>
<LI>If <code>format</code> is <code>json</code> then <code>payload</code> is JSON</LI>
<LI>Otherwise <code>payload</code> is String</LI>
</UL>
</LI>
</UL>
Logically equivalent to a union of a collection of individual IotDevice specific
command streams but enables an IotGateway implementation to implement it more efficiently.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#commandsForDevice-java.util.Set-java.lang.String...-">commandsForDevice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html" title="interface in org.apache.edgent.connectors.iot">IotGateway</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fqDeviceIds</code> - Filter to include commands for the specified deviceIds
If the set is empty no filtering occurs. The commands for any device are included.</dd>
<dd><code>commands</code> - Command identifiers to include. If no command identifiers are provided then the
stream will contain all device commands for the specified devices.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Stream containing device commands.</dd>
</dl>
</li>
</ul>
<a name="commandsForDevice-java.lang.String-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commandsForDevice</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;commandsForDevice(java.lang.String&nbsp;fqDeviceId,
java.lang.String...&nbsp;commands)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#commandsForDevice-java.lang.String-java.lang.String...-">IotGateway</a></code></span></div>
<div class="block">Create a stream of device commands as JSON objects.
Each command sent to the specified <code>deviceId</code> matching <code>commands</code> will
result in a tuple on the stream. The JSON object has these keys:
<UL>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_DEVICE"><code>device</code></a> - Command's target device's opaque id String.
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_ID"><code>command</code></a> - Command identifier as a String</LI>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_TS"><code>tsms</code></a> - Timestamp of the command in milliseconds since the 1970/1/1 epoch.</LI>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_FORMAT"><code>format</code></a> - Format of the command as a String</LI>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_PAYLOAD"><code>payload</code></a> - Payload of the command
<UL>
<LI>If <code>format</code> is <code>json</code> then <code>payload</code> is JSON</LI>
<LI>Otherwise <code>payload</code> is String</LI>
</UL>
</LI>
</UL>
<P>
Equivalent to <code>commandsForDevice(Collections.singleton(deviceId)), ...</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#commandsForDevice-java.lang.String-java.lang.String...-">commandsForDevice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html" title="interface in org.apache.edgent.connectors.iot">IotGateway</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fqDeviceId</code> - Filter to include commands for the specified deviceId</dd>
<dd><code>commands</code> - Command identifiers to include. If no command identifiers are provided then the
stream will contain all device commands for the specified device.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Stream containing device commands.</dd>
</dl>
</li>
</ul>
<a name="commandsForType-java.lang.String-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commandsForType</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;com.google.gson.JsonObject&gt;&nbsp;commandsForType(java.lang.String&nbsp;deviceTypeId,
java.lang.String...&nbsp;commands)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#commandsForType-java.lang.String-java.lang.String...-">IotGateway</a></code></span></div>
<div class="block">Create a stream of device commands as JSON objects.
Each command sent to connected devices of type <code>deviceTypeId</code> matching <code>commands</code>
will result in a tuple on the stream. The JSON object has these keys:
<UL>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_DEVICE"><code>device</code></a> - Command's target device's opaque id String.
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_ID"><code>command</code></a> - Command identifier as a String</LI>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_TS"><code>tsms</code></a> - Timestamp of the command in milliseconds since the 1970/1/1 epoch.</LI>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_FORMAT"><code>format</code></a> - Format of the command as a String</LI>
<LI><a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#CMD_PAYLOAD"><code>payload</code></a> - Payload of the command
<UL>
<LI>If <code>format</code> is <code>json</code> then <code>payload</code> is JSON</LI>
<LI>Otherwise <code>payload</code> is String</LI>
</UL>
</LI>
</UL>
<P>
An IoT connector implementation may throw
<code>UnsupportedOperationException</code>
if it does not support this capability. See the implementation's documentation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html#commandsForType-java.lang.String-java.lang.String...-">commandsForType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/edgent/connectors/iot/IotGateway.html" title="interface in org.apache.edgent.connectors.iot">IotGateway</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>deviceTypeId</code> - Only return commands for connected devices with the specified
device type id value (a value from <a href="../../../../../org/apache/edgent/connectors/iot/IotDevice.html#getDeviceType--"><code>IotDevice.getDeviceType()</code></a>).</dd>
<dd><code>commands</code> - Command identifiers to include. If no command identifiers are provided then the
stream will contain all device commands for devices with the specified device type id.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Stream containing device commands.</dd>
</dl>
</li>
</ul>
<a name="setExternalCallbackHandler-com.ibm.iotf.client.gateway.GatewayCallback-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setExternalCallbackHandler</h4>
<pre>public&nbsp;com.ibm.iotf.client.gateway.GatewayCallback&nbsp;setExternalCallbackHandler(com.ibm.iotf.client.gateway.GatewayCallback&nbsp;handler)</pre>
<div class="block">Set an external WIoTP <code>GatewayCallback</code> handler.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>handler</code> - the handler to call. May be null.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the previously set handler. May be null.</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></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/IotpGateway.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/connectors/iotp/IotpDevice.html" title="class in org.apache.edgent.connectors.iotp"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/edgent/connectors/iotp/IotpGateway.html" target="_top">Frames</a></li>
<li><a href="IotpGateway.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><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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>