<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
<HTML>
<HEAD>
<meta name="generator" content="JDiff v1.0.9">
<!-- Generated by the JDiff Javadoc doclet -->
<!-- (http://www.jdiff.org) -->
<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
<TITLE>
Constructor Additions Index
</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="../stylesheet-jdiff.css" TITLE="Style">
</HEAD>
<BODY>
<a NAME="topheader"></a>
<table summary="Index for Constructors" width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <td bgcolor="#FFFFCC">
<font size="+1"><a href="constructors_index_all.html" class="staysblack">All Constructors</a></font>
  </td>
  </tr>
  <tr>
  <td bgcolor="#FFFFFF">
  <FONT SIZE="-1">
<font color="#999999">Removals</font>
  </FONT>
  </td>
  </tr>
  <tr>
  <td bgcolor="#FFFFFF">
  <FONT SIZE="-1">
<b>Additions</b>
  </FONT>
  </td>
  </tr>
  <tr>
  <td bgcolor="#FFFFFF">
  <FONT SIZE="-1">
<A HREF="constructors_index_changes.html"class="hiddenlink">Changes</A>
  </FONT>
  </td>
  </tr>
  <tr>
  <td>
<font size="-2"><b>Bold</b>&nbsp;is&nbsp;New,&nbsp;<strike>strike</strike>&nbsp;is&nbsp;deleted</font>
  </td>
  </tr>
</table><br>
<A NAME="A"></A>
<br><font size="+2">A</font>&nbsp;
<a href="#C"><font size="-2">C</font></a> 
 <a href="#topheader"><font size="-2">TOP</font></a>
<br>
<nobr><A HREF="org.apache.hadoop.yarn.util.AbstractLivelinessMonitor.html#org.apache.hadoop.yarn.util.AbstractLivelinessMonitor.ctor_added(java.lang.String)" class="hiddenlink" target="rightframe"><b>AbstractLivelinessMonitor</b>
(<code>String</code>)</A></nobr>&nbsp;constructor<br>
<nobr><A HREF="org.apache.hadoop.yarn.event.AsyncDispatcher.html#org.apache.hadoop.yarn.event.AsyncDispatcher.ctor_added(java.lang.String)" class="hiddenlink" target="rightframe"><b>AsyncDispatcher</b>
(<code>String</code>)</A></nobr>&nbsp;constructor<br>
<A NAME="C"></A>
<br><font size="+2">C</font>&nbsp;
<a href="#A"><font size="-2">A</font></a> 
 <a href="#topheader"><font size="-2">TOP</font></a>
<br>
<i>ContainerTokenIdentifier</i><br>
&nbsp;&nbsp;<nobr><A HREF="org.apache.hadoop.yarn.security.ContainerTokenIdentifier.html#org.apache.hadoop.yarn.security.ContainerTokenIdentifier.ctor_added(org.apache.hadoop.yarn.api.records.ContainerId, int, java.lang.String, java.lang.String, org.apache.hadoop.yarn.api.records.Resource, long, int, long, org.apache.hadoop.yarn.api.records.Priority, long, org.apache.hadoop.yarn.api.records.LogAggregationContext, java.lang.String, org.apache.hadoop.yarn.server.api.ContainerType, org.apache.hadoop.yarn.api.records.ExecutionType)" class="hiddenlink" target="rightframe"><b>ContainerTokenIdentifier</b>
(<code>ContainerId, int, String, String, Resource, long, int, long, Priority, long, LogAggregationContext, String, ContainerType, ExecutionType</code>)</A></nobr>&nbsp;constructor<br>
&nbsp;&nbsp;<nobr><A HREF="org.apache.hadoop.yarn.security.ContainerTokenIdentifier.html#org.apache.hadoop.yarn.security.ContainerTokenIdentifier.ctor_added(org.apache.hadoop.yarn.api.records.ContainerId, int, java.lang.String, java.lang.String, org.apache.hadoop.yarn.api.records.Resource, long, int, long, org.apache.hadoop.yarn.api.records.Priority, long, org.apache.hadoop.yarn.api.records.LogAggregationContext, java.lang.String, org.apache.hadoop.yarn.server.api.ContainerType, org.apache.hadoop.yarn.api.records.ExecutionType, long)" class="hiddenlink" target="rightframe"><b>ContainerTokenIdentifier</b>
(<code>ContainerId, int, String, String, Resource, long, int, long, Priority, long, LogAggregationContext, String, ContainerType, ExecutionType, long</code>)</A></nobr>&nbsp;constructor<br>
&nbsp;&nbsp;<nobr><A HREF="org.apache.hadoop.yarn.security.ContainerTokenIdentifier.html#org.apache.hadoop.yarn.security.ContainerTokenIdentifier.ctor_added(org.apache.hadoop.yarn.api.records.ContainerId, int, java.lang.String, java.lang.String, org.apache.hadoop.yarn.api.records.Resource, long, int, long, org.apache.hadoop.yarn.api.records.Priority, long, org.apache.hadoop.yarn.api.records.LogAggregationContext, java.lang.String, org.apache.hadoop.yarn.server.api.ContainerType, org.apache.hadoop.yarn.api.records.ExecutionType, long, java.util.Set)" class="hiddenlink" target="rightframe"><b>ContainerTokenIdentifier</b>
(<code>ContainerId, int, String, String, Resource, long, int, long, Priority, long, LogAggregationContext, String, ContainerType, ExecutionType, long, Set</code>)</A></nobr>&nbsp;constructor<br>
&nbsp;&nbsp;<nobr><A HREF="org.apache.hadoop.yarn.security.ContainerTokenIdentifier.html#org.apache.hadoop.yarn.security.ContainerTokenIdentifier.ctor_added(org.apache.hadoop.yarn.api.records.ContainerId, java.lang.String, java.lang.String, org.apache.hadoop.yarn.api.records.Resource, long, int, long, org.apache.hadoop.yarn.api.records.Priority, long, org.apache.hadoop.yarn.api.records.LogAggregationContext, java.lang.String)" class="hiddenlink" target="rightframe"><b>ContainerTokenIdentifier</b>
(<code>ContainerId, String, String, Resource, long, int, long, Priority, long, LogAggregationContext, String</code>)</A></nobr>&nbsp;constructor<br>
&nbsp;&nbsp;<nobr><A HREF="org.apache.hadoop.yarn.security.ContainerTokenIdentifier.html#org.apache.hadoop.yarn.security.ContainerTokenIdentifier.ctor_added(org.apache.hadoop.yarn.api.records.ContainerId, java.lang.String, java.lang.String, org.apache.hadoop.yarn.api.records.Resource, long, int, long, org.apache.hadoop.yarn.api.records.Priority, long, org.apache.hadoop.yarn.api.records.LogAggregationContext, java.lang.String, org.apache.hadoop.yarn.server.api.ContainerType)" class="hiddenlink" target="rightframe"><b>ContainerTokenIdentifier</b>
(<code>ContainerId, String, String, Resource, long, int, long, Priority, long, LogAggregationContext, String, ContainerType</code>)</A></nobr>&nbsp;constructor<br>
</BODY>
</HTML>
