<!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.7.0_131) on Wed Mar 29 10:23:48 UTC 2017 -->
<title>MesosSchedulerDriver</title>
<meta name="date" content="2017-03-29">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="MesosSchedulerDriver";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../org/apache/mesos/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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/mesos/MesosNativeLibrary.Version.html" title="class in org.apache.mesos"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../org/apache/mesos/Protos.html" title="class in org.apache.mesos"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/mesos/MesosSchedulerDriver.html" target="_top">Frames</a></li>
<li><a href="MesosSchedulerDriver.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All 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.mesos</div>
<h2 title="Class MesosSchedulerDriver" class="title">Class MesosSchedulerDriver</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.mesos.MesosSchedulerDriver</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">MesosSchedulerDriver</span>
extends java.lang.Object
implements <a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></pre>
<div class="block">Concrete implementation of a SchedulerDriver that connects a
 Scheduler with a Mesos master. The MesosSchedulerDriver is
 thread-safe.
 <p>
 Note that scheduler failover is supported in Mesos. After a
 scheduler is registered with Mesos it may failover (to a new
 process on the same machine or across multiple machines) by
 creating a new driver with the ID given to it in <a href="../../../org/apache/mesos/Scheduler.html#registered(org.apache.mesos.SchedulerDriver,%20org.apache.mesos.Protos.FrameworkID,%20org.apache.mesos.Protos.MasterInfo)"><code>Scheduler.registered(org.apache.mesos.SchedulerDriver, org.apache.mesos.Protos.FrameworkID, org.apache.mesos.Protos.MasterInfo)</code></a>.
 <p>
 The driver is responsible for invoking the Scheduler callbacks as
 it communicates with the Mesos master.
 <p>
 Note that blocking on the MesosSchedulerDriver (e.g., via <a href="../../../org/apache/mesos/MesosSchedulerDriver.html#join()"><code>join()</code></a>) doesn't affect the scheduler callbacks in anyway because
 they are handled by a different thread.
 <p>
 <p>
 Note that the driver uses GLOG to do its own logging. GLOG flags can
 be set via environment variables, prefixing the flag name with
 "GLOG_", e.g., "GLOG_v=1". For Mesos specific logging flags see
 src/logging/flags.hpp. Mesos flags can also be set via environment
 variables, prefixing the flag name with "MESOS_", e.g.,
 "MESOS_QUIET=1".
 <p>
 See src/examples/java/TestFramework.java for an example of using
 the MesosSchedulerDriver.</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="overviewSummary" 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><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#MesosSchedulerDriver(org.apache.mesos.Scheduler,%20org.apache.mesos.Protos.FrameworkInfo,%20java.lang.String)">MesosSchedulerDriver</a></strong>(<a href="../../../org/apache/mesos/Scheduler.html" title="interface in org.apache.mesos">Scheduler</a>&nbsp;scheduler,
                    <a href="../../../org/apache/mesos/Protos.FrameworkInfo.html" title="class in org.apache.mesos">Protos.FrameworkInfo</a>&nbsp;framework,
                    java.lang.String&nbsp;master)</code>
<div class="block">Creates a new driver for the specified scheduler.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#MesosSchedulerDriver(org.apache.mesos.Scheduler,%20org.apache.mesos.Protos.FrameworkInfo,%20java.lang.String,%20boolean)">MesosSchedulerDriver</a></strong>(<a href="../../../org/apache/mesos/Scheduler.html" title="interface in org.apache.mesos">Scheduler</a>&nbsp;scheduler,
                    <a href="../../../org/apache/mesos/Protos.FrameworkInfo.html" title="class in org.apache.mesos">Protos.FrameworkInfo</a>&nbsp;framework,
                    java.lang.String&nbsp;master,
                    boolean&nbsp;implicitAcknowledgements)</code>
<div class="block">Same as the other constructors, except that it accepts the newly
 introduced 'implicitAcknowledgements' parameter.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#MesosSchedulerDriver(org.apache.mesos.Scheduler,%20org.apache.mesos.Protos.FrameworkInfo,%20java.lang.String,%20boolean,%20org.apache.mesos.Protos.Credential)">MesosSchedulerDriver</a></strong>(<a href="../../../org/apache/mesos/Scheduler.html" title="interface in org.apache.mesos">Scheduler</a>&nbsp;scheduler,
                    <a href="../../../org/apache/mesos/Protos.FrameworkInfo.html" title="class in org.apache.mesos">Protos.FrameworkInfo</a>&nbsp;framework,
                    java.lang.String&nbsp;master,
                    boolean&nbsp;implicitAcknowledgements,
                    <a href="../../../org/apache/mesos/Protos.Credential.html" title="class in org.apache.mesos">Protos.Credential</a>&nbsp;credential)</code>
<div class="block">Same as the other constructors, except that it accepts the newly
 introduced 'implicitAcknowledgements' and 'credentials' parameters.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#MesosSchedulerDriver(org.apache.mesos.Scheduler,%20org.apache.mesos.Protos.FrameworkInfo,%20java.lang.String,%20org.apache.mesos.Protos.Credential)">MesosSchedulerDriver</a></strong>(<a href="../../../org/apache/mesos/Scheduler.html" title="interface in org.apache.mesos">Scheduler</a>&nbsp;scheduler,
                    <a href="../../../org/apache/mesos/Protos.FrameworkInfo.html" title="class in org.apache.mesos">Protos.FrameworkInfo</a>&nbsp;framework,
                    java.lang.String&nbsp;master,
                    <a href="../../../org/apache/mesos/Protos.Credential.html" title="class in org.apache.mesos">Protos.Credential</a>&nbsp;credential)</code>
<div class="block">Same as the other constructors, except that it accepts the newly
 introduced 'credential' parameter.</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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#abort()">abort</a></strong>()</code>
<div class="block">Aborts the driver so that no more callbacks can be made to the
 scheduler.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#acceptOffers(java.util.Collection,%20java.util.Collection,%20org.apache.mesos.Protos.Filters)">acceptOffers</a></strong>(java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&gt;&nbsp;offerIds,
            java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.Offer.Operation.html" title="class in org.apache.mesos">Protos.Offer.Operation</a>&gt;&nbsp;operations,
            <a href="../../../org/apache/mesos/Protos.Filters.html" title="class in org.apache.mesos">Protos.Filters</a>&nbsp;filters)</code>
<div class="block">Accepts the given offers and performs a sequence of operations on
 those accepted offers.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#acknowledgeStatusUpdate(org.apache.mesos.Protos.TaskStatus)">acknowledgeStatusUpdate</a></strong>(<a href="../../../org/apache/mesos/Protos.TaskStatus.html" title="class in org.apache.mesos">Protos.TaskStatus</a>&nbsp;status)</code>
<div class="block">Acknowledges the status update.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#declineOffer(org.apache.mesos.Protos.OfferID)">declineOffer</a></strong>(<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&nbsp;offerId)</code>
<div class="block">Declines an offer in its entirety.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#declineOffer(org.apache.mesos.Protos.OfferID,%20org.apache.mesos.Protos.Filters)">declineOffer</a></strong>(<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&nbsp;offerId,
            <a href="../../../org/apache/mesos/Protos.Filters.html" title="class in org.apache.mesos">Protos.Filters</a>&nbsp;filters)</code>
<div class="block">Declines an offer in its entirety and applies the specified
 filters on the resources (see mesos.proto for a description of
 Filters).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#finalize()">finalize</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#initialize()">initialize</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#join()">join</a></strong>()</code>
<div class="block">Waits for the driver to be stopped or aborted, possibly
 <i>blocking</i> the current thread indefinitely.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#killTask(org.apache.mesos.Protos.TaskID)">killTask</a></strong>(<a href="../../../org/apache/mesos/Protos.TaskID.html" title="class in org.apache.mesos">Protos.TaskID</a>&nbsp;taskId)</code>
<div class="block">Kills the specified task.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#launchTasks(java.util.Collection,%20java.util.Collection)">launchTasks</a></strong>(java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&gt;&nbsp;offerIds,
           java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.TaskInfo.html" title="class in org.apache.mesos">Protos.TaskInfo</a>&gt;&nbsp;tasks)</code>
<div class="block">Launches the given set of tasks.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#launchTasks(java.util.Collection,%20java.util.Collection,%20org.apache.mesos.Protos.Filters)">launchTasks</a></strong>(java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&gt;&nbsp;offerIds,
           java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.TaskInfo.html" title="class in org.apache.mesos">Protos.TaskInfo</a>&gt;&nbsp;tasks,
           <a href="../../../org/apache/mesos/Protos.Filters.html" title="class in org.apache.mesos">Protos.Filters</a>&nbsp;filters)</code>
<div class="block">Launches the given set of tasks.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#launchTasks(org.apache.mesos.Protos.OfferID,%20java.util.Collection)">launchTasks</a></strong>(<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&nbsp;offerId,
           java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.TaskInfo.html" title="class in org.apache.mesos">Protos.TaskInfo</a>&gt;&nbsp;tasks)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#launchTasks(org.apache.mesos.Protos.OfferID,%20java.util.Collection,%20org.apache.mesos.Protos.Filters)">launchTasks</a></strong>(<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&nbsp;offerId,
           java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.TaskInfo.html" title="class in org.apache.mesos">Protos.TaskInfo</a>&gt;&nbsp;tasks,
           <a href="../../../org/apache/mesos/Protos.Filters.html" title="class in org.apache.mesos">Protos.Filters</a>&nbsp;filters)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#reconcileTasks(java.util.Collection)">reconcileTasks</a></strong>(java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.TaskStatus.html" title="class in org.apache.mesos">Protos.TaskStatus</a>&gt;&nbsp;statuses)</code>
<div class="block">Allows the framework to query the status for non-terminal tasks.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#requestResources(java.util.Collection)">requestResources</a></strong>(java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.Request.html" title="class in org.apache.mesos">Protos.Request</a>&gt;&nbsp;requests)</code>
<div class="block">Requests resources from Mesos (see mesos.proto for a description
 of Request and how, for example, to request resources
 from specific slaves).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#reviveOffers()">reviveOffers</a></strong>()</code>
<div class="block">Removes all filters, previously set by the framework (via <a href="../../../org/apache/mesos/SchedulerDriver.html#launchTasks(java.util.Collection,%20java.util.Collection,%20org.apache.mesos.Protos.Filters)"><code>SchedulerDriver.launchTasks(java.util.Collection&lt;org.apache.mesos.Protos.OfferID&gt;, java.util.Collection&lt;org.apache.mesos.Protos.TaskInfo&gt;, org.apache.mesos.Protos.Filters)</code></a>).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#run()">run</a></strong>()</code>
<div class="block">Starts and immediately joins (i.e., blocks on) the driver.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#sendFrameworkMessage(org.apache.mesos.Protos.ExecutorID,%20org.apache.mesos.Protos.SlaveID,%20byte[])">sendFrameworkMessage</a></strong>(<a href="../../../org/apache/mesos/Protos.ExecutorID.html" title="class in org.apache.mesos">Protos.ExecutorID</a>&nbsp;executorId,
                    <a href="../../../org/apache/mesos/Protos.SlaveID.html" title="class in org.apache.mesos">Protos.SlaveID</a>&nbsp;slaveId,
                    byte[]&nbsp;data)</code>
<div class="block">Sends a message from the framework to one of its executors.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#start()">start</a></strong>()</code>
<div class="block">Starts the scheduler driver.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#stop()">stop</a></strong>()</code>
<div class="block">Stops the scheduler driver assuming no failover.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#stop(boolean)">stop</a></strong>(boolean&nbsp;failover)</code>
<div class="block">Stops the scheduler driver.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a></code></td>
<td class="colLast"><code><strong><a href="../../../org/apache/mesos/MesosSchedulerDriver.html#suppressOffers()">suppressOffers</a></strong>()</code>
<div class="block">Inform Mesos master to stop sending offers to the framework.</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, 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="MesosSchedulerDriver(org.apache.mesos.Scheduler, org.apache.mesos.Protos.FrameworkInfo, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MesosSchedulerDriver</h4>
<pre>public&nbsp;MesosSchedulerDriver(<a href="../../../org/apache/mesos/Scheduler.html" title="interface in org.apache.mesos">Scheduler</a>&nbsp;scheduler,
                    <a href="../../../org/apache/mesos/Protos.FrameworkInfo.html" title="class in org.apache.mesos">Protos.FrameworkInfo</a>&nbsp;framework,
                    java.lang.String&nbsp;master)</pre>
<div class="block">Creates a new driver for the specified scheduler. The master
 should be one of:
 <pre>
 <code>host:port
     zk://host1:port1,host2:port2,.../path
     zk://username:password@host1:port1,host2:port2,.../path
     file:///path/to/file (where file contains one of the above)
 </code>
 </pre>
 <p>
 The driver will attempt to "failover" if the specified
 FrameworkInfo includes a valid FrameworkID.
 <p>
 Any Mesos configuration options are read from environment
 variables, as well as any configuration files found through the
 environment variables.
 <p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>scheduler</code> - The scheduler implementation which callbacks are invoked
                  upon scheduler events.</dd><dd><code>framework</code> - The frameworkInfo describing the current framework.</dd><dd><code>master</code> - The address to the currently active Mesos master.</dd></dl>
</li>
</ul>
<a name="MesosSchedulerDriver(org.apache.mesos.Scheduler, org.apache.mesos.Protos.FrameworkInfo, java.lang.String, org.apache.mesos.Protos.Credential)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MesosSchedulerDriver</h4>
<pre>public&nbsp;MesosSchedulerDriver(<a href="../../../org/apache/mesos/Scheduler.html" title="interface in org.apache.mesos">Scheduler</a>&nbsp;scheduler,
                    <a href="../../../org/apache/mesos/Protos.FrameworkInfo.html" title="class in org.apache.mesos">Protos.FrameworkInfo</a>&nbsp;framework,
                    java.lang.String&nbsp;master,
                    <a href="../../../org/apache/mesos/Protos.Credential.html" title="class in org.apache.mesos">Protos.Credential</a>&nbsp;credential)</pre>
<div class="block">Same as the other constructors, except that it accepts the newly
 introduced 'credential' parameter.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>scheduler</code> - The scheduler implementation which callbacks are invoked
                    upon scheduler events.</dd><dd><code>framework</code> - The frameworkInfo describing the current framework.</dd><dd><code>master</code> - The address to the currently active Mesos master.</dd><dd><code>credential</code> - The credentials that will be used used to authenticate
                    calls from this scheduler.</dd></dl>
</li>
</ul>
<a name="MesosSchedulerDriver(org.apache.mesos.Scheduler, org.apache.mesos.Protos.FrameworkInfo, java.lang.String, boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MesosSchedulerDriver</h4>
<pre>public&nbsp;MesosSchedulerDriver(<a href="../../../org/apache/mesos/Scheduler.html" title="interface in org.apache.mesos">Scheduler</a>&nbsp;scheduler,
                    <a href="../../../org/apache/mesos/Protos.FrameworkInfo.html" title="class in org.apache.mesos">Protos.FrameworkInfo</a>&nbsp;framework,
                    java.lang.String&nbsp;master,
                    boolean&nbsp;implicitAcknowledgements)</pre>
<div class="block">Same as the other constructors, except that it accepts the newly
 introduced 'implicitAcknowledgements' parameter.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>scheduler</code> - The scheduler implementation which callbacks are invoked
                    upon scheduler events.</dd><dd><code>framework</code> - The frameworkInfo describing the current framework.</dd><dd><code>master</code> - The address to the currently active Mesos master.</dd><dd><code>implicitAcknowledgements</code> - Whether the driver should send
            acknowledgements on behalf of the scheduler. Setting this to
            false allows schedulers to perform their own acknowledgements,
            which enables asynchronous / batch processing of status updates.</dd></dl>
</li>
</ul>
<a name="MesosSchedulerDriver(org.apache.mesos.Scheduler, org.apache.mesos.Protos.FrameworkInfo, java.lang.String, boolean, org.apache.mesos.Protos.Credential)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MesosSchedulerDriver</h4>
<pre>public&nbsp;MesosSchedulerDriver(<a href="../../../org/apache/mesos/Scheduler.html" title="interface in org.apache.mesos">Scheduler</a>&nbsp;scheduler,
                    <a href="../../../org/apache/mesos/Protos.FrameworkInfo.html" title="class in org.apache.mesos">Protos.FrameworkInfo</a>&nbsp;framework,
                    java.lang.String&nbsp;master,
                    boolean&nbsp;implicitAcknowledgements,
                    <a href="../../../org/apache/mesos/Protos.Credential.html" title="class in org.apache.mesos">Protos.Credential</a>&nbsp;credential)</pre>
<div class="block">Same as the other constructors, except that it accepts the newly
 introduced 'implicitAcknowledgements' and 'credentials' parameters.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>scheduler</code> - The scheduler implementation which callbacks are invoked
                    upon scheduler events.</dd><dd><code>framework</code> - The frameworkInfo describing the current framework.</dd><dd><code>master</code> - The address to the currently active Mesos master.</dd><dd><code>implicitAcknowledgements</code> - Whether the driver should send
            acknowledgements on behalf of the scheduler. Setting this to
            false allows schedulers to perform their own acknowledgements,
            which enables asynchronous / batch processing of status updates.</dd><dd><code>credential</code> - The credentials that will be used used to authenticate
                    calls from this scheduler.</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="start()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;start()</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#start()">SchedulerDriver</a></code></strong></div>
<div class="block">Starts the scheduler driver. This needs to be called before any
 other driver calls are made.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#start()">start</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos"><code>Protos.Status</code></a></dd></dl>
</li>
</ul>
<a name="stop(boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;stop(boolean&nbsp;failover)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#stop(boolean)">SchedulerDriver</a></code></strong></div>
<div class="block">Stops the scheduler driver. If the 'failover' flag is set to
 false then it is expected that this framework will never
 reconnect to Mesos. So Mesos will unregister the framework
 and shutdown all its tasks and executors. If 'failover' is true,
 all executors and tasks will remain running (for some framework
 specific failover timeout) allowing the scheduler to reconnect
 (possibly in the same process, or from a different process, for
 example, on a different machine).</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#stop(boolean)">stop</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>failover</code> - Whether framework failover is expected.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos"><code>Protos.Status</code></a></dd></dl>
</li>
</ul>
<a name="stop()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;stop()</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#stop()">SchedulerDriver</a></code></strong></div>
<div class="block">Stops the scheduler driver assuming no failover. This will
 cause Mesos to unregister the framework and shutdown all
 its tasks and executors. Please see <a href="../../../org/apache/mesos/SchedulerDriver.html#stop(boolean)"><code>SchedulerDriver.stop(boolean)</code></a>
 for more details.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#stop()">stop</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd></dl>
</li>
</ul>
<a name="abort()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>abort</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;abort()</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#abort()">SchedulerDriver</a></code></strong></div>
<div class="block">Aborts the driver so that no more callbacks can be made to the
 scheduler. The semantics of abort and stop have deliberately been
 separated so that code can detect an aborted driver (i.e., via
 the return status of <a href="../../../org/apache/mesos/SchedulerDriver.html#join()"><code>SchedulerDriver.join()</code></a>, see below), and instantiate
 and start another driver if desired (from within the same
 process).</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#abort()">abort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd></dl>
</li>
</ul>
<a name="join()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>join</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;join()</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#join()">SchedulerDriver</a></code></strong></div>
<div class="block">Waits for the driver to be stopped or aborted, possibly
 <i>blocking</i> the current thread indefinitely. The return status of
 this function can be used to determine if the driver was aborted
 (see mesos.proto for a description of Status).</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#join()">join</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd></dl>
</li>
</ul>
<a name="run()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;run()</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#run()">SchedulerDriver</a></code></strong></div>
<div class="block">Starts and immediately joins (i.e., blocks on) the driver.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#run()">run</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd></dl>
</li>
</ul>
<a name="requestResources(java.util.Collection)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requestResources</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;requestResources(java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.Request.html" title="class in org.apache.mesos">Protos.Request</a>&gt;&nbsp;requests)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#requestResources(java.util.Collection)">SchedulerDriver</a></code></strong></div>
<div class="block">Requests resources from Mesos (see mesos.proto for a description
 of Request and how, for example, to request resources
 from specific slaves). Any resources available are offered to the
 framework via <a href="../../../org/apache/mesos/Scheduler.html#resourceOffers(org.apache.mesos.SchedulerDriver,%20java.util.List)"><code>Scheduler.resourceOffers(org.apache.mesos.SchedulerDriver, java.util.List&lt;org.apache.mesos.Protos.Offer&gt;)</code></a> callback,
 asynchronously.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#requestResources(java.util.Collection)">requestResources</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>requests</code> - The resource requests.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/apache/mesos/Protos.Request.html" title="class in org.apache.mesos"><code>Protos.Request</code></a>, 
<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos"><code>Protos.Status</code></a></dd></dl>
</li>
</ul>
<a name="launchTasks(org.apache.mesos.Protos.OfferID, java.util.Collection)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>launchTasks</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;launchTasks(<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&nbsp;offerId,
                        java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.TaskInfo.html" title="class in org.apache.mesos">Protos.TaskInfo</a>&gt;&nbsp;tasks)</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#launchTasks(org.apache.mesos.Protos.OfferID,%20java.util.Collection)">launchTasks</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>offerId</code> - The offer ID.</dd><dd><code>tasks</code> - The collection of tasks to be launched.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd></dl>
</li>
</ul>
<a name="launchTasks(org.apache.mesos.Protos.OfferID, java.util.Collection, org.apache.mesos.Protos.Filters)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>launchTasks</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;launchTasks(<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&nbsp;offerId,
                        java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.TaskInfo.html" title="class in org.apache.mesos">Protos.TaskInfo</a>&gt;&nbsp;tasks,
                        <a href="../../../org/apache/mesos/Protos.Filters.html" title="class in org.apache.mesos">Protos.Filters</a>&nbsp;filters)</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#launchTasks(org.apache.mesos.Protos.OfferID,%20java.util.Collection,%20org.apache.mesos.Protos.Filters)">launchTasks</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>offerId</code> - The offer ID.</dd><dd><code>tasks</code> - The collection of tasks to be launched.</dd><dd><code>filters</code> - The filters to set for any remaining resources.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd></dl>
</li>
</ul>
<a name="launchTasks(java.util.Collection, java.util.Collection)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>launchTasks</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;launchTasks(java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&gt;&nbsp;offerIds,
                        java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.TaskInfo.html" title="class in org.apache.mesos">Protos.TaskInfo</a>&gt;&nbsp;tasks)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#launchTasks(java.util.Collection,%20java.util.Collection)">SchedulerDriver</a></code></strong></div>
<div class="block">Launches the given set of tasks. See above for details.
 Note that this may add a default filter (see mesos.proto)
 for the remaining resources. Notably the MesosSchedulerDriver
 does so.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#launchTasks(java.util.Collection,%20java.util.Collection)">launchTasks</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>offerIds</code> - The collection of offer IDs.</dd><dd><code>tasks</code> - The collection of tasks to be launched.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd></dl>
</li>
</ul>
<a name="launchTasks(java.util.Collection, java.util.Collection, org.apache.mesos.Protos.Filters)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>launchTasks</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;launchTasks(java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&gt;&nbsp;offerIds,
                        java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.TaskInfo.html" title="class in org.apache.mesos">Protos.TaskInfo</a>&gt;&nbsp;tasks,
                        <a href="../../../org/apache/mesos/Protos.Filters.html" title="class in org.apache.mesos">Protos.Filters</a>&nbsp;filters)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#launchTasks(java.util.Collection,%20java.util.Collection,%20org.apache.mesos.Protos.Filters)">SchedulerDriver</a></code></strong></div>
<div class="block">Launches the given set of tasks. Any remaining resources (i.e.,
 those that are not used by the launched tasks or their executors)
 will be considered declined. Note that this includes resources
 used by tasks that the framework attempted to launch but failed
 (with TASK_ERROR) due to a malformed task description. The
 specified filters are applied on all unused resources (see
 mesos.proto for a description of Filters). Available resources
 are aggregated when multiple offers are provided. Note that all
 offers must belong to the same slave. Invoking this function with
 an empty collection of tasks declines offers in their entirety
 (see <a href="../../../org/apache/mesos/SchedulerDriver.html#declineOffer(org.apache.mesos.Protos.OfferID,%20org.apache.mesos.Protos.Filters)"><code>SchedulerDriver.declineOffer(org.apache.mesos.Protos.OfferID, org.apache.mesos.Protos.Filters)</code></a>).</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#launchTasks(java.util.Collection,%20java.util.Collection,%20org.apache.mesos.Protos.Filters)">launchTasks</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>offerIds</code> - The collection of offer IDs.</dd><dd><code>tasks</code> - The collection of tasks to be launched.</dd><dd><code>filters</code> - The filters to set for any remaining resources.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos"><code>Protos.OfferID</code></a>, 
<a href="../../../org/apache/mesos/Protos.TaskInfo.html" title="class in org.apache.mesos"><code>Protos.TaskInfo</code></a>, 
<a href="../../../org/apache/mesos/Protos.Filters.html" title="class in org.apache.mesos"><code>Protos.Filters</code></a>, 
<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos"><code>Protos.Status</code></a></dd></dl>
</li>
</ul>
<a name="killTask(org.apache.mesos.Protos.TaskID)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>killTask</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;killTask(<a href="../../../org/apache/mesos/Protos.TaskID.html" title="class in org.apache.mesos">Protos.TaskID</a>&nbsp;taskId)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#killTask(org.apache.mesos.Protos.TaskID)">SchedulerDriver</a></code></strong></div>
<div class="block">Kills the specified task. Note that attempting to kill a task is
 currently not reliable. If, for example, a scheduler fails over
 while it was attempting to kill a task it will need to retry in
 the future Likewise, if unregistered / disconnected, the request
 will be dropped (these semantics may be changed in the future).</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#killTask(org.apache.mesos.Protos.TaskID)">killTask</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>taskId</code> - The ID of the task to be killed.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd></dl>
</li>
</ul>
<a name="acceptOffers(java.util.Collection, java.util.Collection, org.apache.mesos.Protos.Filters)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acceptOffers</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;acceptOffers(java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&gt;&nbsp;offerIds,
                         java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.Offer.Operation.html" title="class in org.apache.mesos">Protos.Offer.Operation</a>&gt;&nbsp;operations,
                         <a href="../../../org/apache/mesos/Protos.Filters.html" title="class in org.apache.mesos">Protos.Filters</a>&nbsp;filters)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#acceptOffers(java.util.Collection,%20java.util.Collection,%20org.apache.mesos.Protos.Filters)">SchedulerDriver</a></code></strong></div>
<div class="block">Accepts the given offers and performs a sequence of operations on
 those accepted offers. See Offer.Operation in mesos.proto for the
 set of available operations. Any remaining resources (i.e., those
 that are not used by the launched tasks or their executors) will
 be considered declined. Note that this includes resources used by
 tasks that the framework attempted to launch but failed (with
 TASK_ERROR) due to a malformed task description. The specified
 filters are applied on all unused resources (see mesos.proto for
 a description of Filters). Available resources are aggregated
 when multiple offers are provided. Note that all offers must
 belong to the same slave.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#acceptOffers(java.util.Collection,%20java.util.Collection,%20org.apache.mesos.Protos.Filters)">acceptOffers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>offerIds</code> - The collection of offer IDs.</dd><dd><code>operations</code> - The collection of offer operations to perform.</dd><dd><code>filters</code> - The filters to set for any remaining resources.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos"><code>Protos.OfferID</code></a>, 
<code>Offer.Operation</code>, 
<a href="../../../org/apache/mesos/Protos.Filters.html" title="class in org.apache.mesos"><code>Protos.Filters</code></a>, 
<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos"><code>Protos.Status</code></a></dd></dl>
</li>
</ul>
<a name="declineOffer(org.apache.mesos.Protos.OfferID)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>declineOffer</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;declineOffer(<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&nbsp;offerId)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#declineOffer(org.apache.mesos.Protos.OfferID)">SchedulerDriver</a></code></strong></div>
<div class="block">Declines an offer in its entirety. See above for details.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#declineOffer(org.apache.mesos.Protos.OfferID)">declineOffer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>offerId</code> - The ID of the offer to be declined.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos"><code>Protos.OfferID</code></a>, 
<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos"><code>Protos.Status</code></a></dd></dl>
</li>
</ul>
<a name="declineOffer(org.apache.mesos.Protos.OfferID, org.apache.mesos.Protos.Filters)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>declineOffer</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;declineOffer(<a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos">Protos.OfferID</a>&nbsp;offerId,
                         <a href="../../../org/apache/mesos/Protos.Filters.html" title="class in org.apache.mesos">Protos.Filters</a>&nbsp;filters)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#declineOffer(org.apache.mesos.Protos.OfferID,%20org.apache.mesos.Protos.Filters)">SchedulerDriver</a></code></strong></div>
<div class="block">Declines an offer in its entirety and applies the specified
 filters on the resources (see mesos.proto for a description of
 Filters). Note that this can be done at any time, it is not
 necessary to do this within the <a href="../../../org/apache/mesos/Scheduler.html#resourceOffers(org.apache.mesos.SchedulerDriver,%20java.util.List)"><code>Scheduler.resourceOffers(org.apache.mesos.SchedulerDriver, java.util.List&lt;org.apache.mesos.Protos.Offer&gt;)</code></a>
 callback.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#declineOffer(org.apache.mesos.Protos.OfferID,%20org.apache.mesos.Protos.Filters)">declineOffer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>offerId</code> - The ID of the offer to be declined.</dd><dd><code>filters</code> - The filters to set for any remaining resources.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/apache/mesos/Protos.OfferID.html" title="class in org.apache.mesos"><code>Protos.OfferID</code></a>, 
<a href="../../../org/apache/mesos/Protos.Filters.html" title="class in org.apache.mesos"><code>Protos.Filters</code></a>, 
<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos"><code>Protos.Status</code></a></dd></dl>
</li>
</ul>
<a name="reviveOffers()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reviveOffers</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;reviveOffers()</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#reviveOffers()">SchedulerDriver</a></code></strong></div>
<div class="block">Removes all filters, previously set by the framework (via <a href="../../../org/apache/mesos/SchedulerDriver.html#launchTasks(java.util.Collection,%20java.util.Collection,%20org.apache.mesos.Protos.Filters)"><code>SchedulerDriver.launchTasks(java.util.Collection&lt;org.apache.mesos.Protos.OfferID&gt;, java.util.Collection&lt;org.apache.mesos.Protos.TaskInfo&gt;, org.apache.mesos.Protos.Filters)</code></a>). This enables the framework to receive offers
 from those filtered slaves.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#reviveOffers()">reviveOffers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos"><code>Protos.Status</code></a></dd></dl>
</li>
</ul>
<a name="suppressOffers()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>suppressOffers</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;suppressOffers()</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#suppressOffers()">SchedulerDriver</a></code></strong></div>
<div class="block">Inform Mesos master to stop sending offers to the framework. The
 scheduler should call reviveOffers() to resume getting offers.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#suppressOffers()">suppressOffers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos"><code>Protos.Status</code></a></dd></dl>
</li>
</ul>
<a name="acknowledgeStatusUpdate(org.apache.mesos.Protos.TaskStatus)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acknowledgeStatusUpdate</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;acknowledgeStatusUpdate(<a href="../../../org/apache/mesos/Protos.TaskStatus.html" title="class in org.apache.mesos">Protos.TaskStatus</a>&nbsp;status)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#acknowledgeStatusUpdate(org.apache.mesos.Protos.TaskStatus)">SchedulerDriver</a></code></strong></div>
<div class="block">Acknowledges the status update. This should only be called
 once the status update is processed durably by the scheduler.
 Not that explicit acknowledgements must be requested via the
 constructor argument, otherwise a call to this method will
 cause the driver to crash.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#acknowledgeStatusUpdate(org.apache.mesos.Protos.TaskStatus)">acknowledgeStatusUpdate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>status</code> - The status to acknowledge.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/apache/mesos/Protos.TaskStatus.html" title="class in org.apache.mesos"><code>Protos.TaskStatus</code></a></dd></dl>
</li>
</ul>
<a name="sendFrameworkMessage(org.apache.mesos.Protos.ExecutorID, org.apache.mesos.Protos.SlaveID, byte[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendFrameworkMessage</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;sendFrameworkMessage(<a href="../../../org/apache/mesos/Protos.ExecutorID.html" title="class in org.apache.mesos">Protos.ExecutorID</a>&nbsp;executorId,
                                 <a href="../../../org/apache/mesos/Protos.SlaveID.html" title="class in org.apache.mesos">Protos.SlaveID</a>&nbsp;slaveId,
                                 byte[]&nbsp;data)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#sendFrameworkMessage(org.apache.mesos.Protos.ExecutorID,%20org.apache.mesos.Protos.SlaveID,%20byte[])">SchedulerDriver</a></code></strong></div>
<div class="block">Sends a message from the framework to one of its executors. These
 messages are best effort; do not expect a framework message to be
 retransmitted in any reliable fashion.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#sendFrameworkMessage(org.apache.mesos.Protos.ExecutorID,%20org.apache.mesos.Protos.SlaveID,%20byte[])">sendFrameworkMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>executorId</code> - The ID of the executor to send the message to.</dd><dd><code>slaveId</code> - The ID of the slave that is running the executor.</dd><dd><code>data</code> - The message.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/apache/mesos/Protos.ExecutorID.html" title="class in org.apache.mesos"><code>Protos.ExecutorID</code></a>, 
<a href="../../../org/apache/mesos/Protos.SlaveID.html" title="class in org.apache.mesos"><code>Protos.SlaveID</code></a></dd></dl>
</li>
</ul>
<a name="reconcileTasks(java.util.Collection)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reconcileTasks</h4>
<pre>public&nbsp;<a href="../../../org/apache/mesos/Protos.Status.html" title="enum in org.apache.mesos">Protos.Status</a>&nbsp;reconcileTasks(java.util.Collection&lt;<a href="../../../org/apache/mesos/Protos.TaskStatus.html" title="class in org.apache.mesos">Protos.TaskStatus</a>&gt;&nbsp;statuses)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html#reconcileTasks(java.util.Collection)">SchedulerDriver</a></code></strong></div>
<div class="block">Allows the framework to query the status for non-terminal tasks.
 This causes the master to send back the latest task status for
 each task in 'statuses', if possible. Tasks that are no longer
 known will result in a TASK_LOST update. If statuses is empty,
 then the master will send the latest status for each task
 currently known.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../org/apache/mesos/SchedulerDriver.html#reconcileTasks(java.util.Collection)">reconcileTasks</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/mesos/SchedulerDriver.html" title="interface in org.apache.mesos">SchedulerDriver</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>statuses</code> - The collection of non-terminal TaskStatuses to reconcile.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The state of the driver after the call.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../org/apache/mesos/Protos.TaskStatus.html" title="class in org.apache.mesos"><code>Protos.TaskStatus</code></a>, 
<a href="../../../org/apache/mesos/Protos.SlaveID.html" title="class in org.apache.mesos"><code>Protos.SlaveID</code></a></dd></dl>
</li>
</ul>
<a name="initialize()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre>protected&nbsp;void&nbsp;initialize()</pre>
</li>
</ul>
<a name="finalize()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>finalize</h4>
<pre>protected&nbsp;void&nbsp;finalize()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code>finalize</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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../org/apache/mesos/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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/mesos/MesosNativeLibrary.Version.html" title="class in org.apache.mesos"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../org/apache/mesos/Protos.html" title="class in org.apache.mesos"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/mesos/MesosSchedulerDriver.html" target="_top">Frames</a></li>
<li><a href="MesosSchedulerDriver.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All 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 ======= -->
</body>
</html>
