Add IpManager#shutdown() to terminate the state machine.

am: b1ee39540e

* commit 'b1ee39540ead2e4ee74d4dba9ee1b84211766221':
  Add IpManager#shutdown() to terminate the state machine.
This commit is contained in:
Erik Kline
2016-02-17 12:20:19 +00:00
committed by android-build-merger

View File

@@ -65,34 +65,15 @@ public class IpManager extends StateMachine {
private static final boolean VDBG = false;
/**
* Callbacks for both configuration of IpManager and for handling
* events as desired.
* Callbacks for handling IpManager events.
*/
public static class Callback {
/**
* Configuration callbacks.
*
* Override methods as desired in order to control which features
* IpManager will use at run time.
*/
// An IpReachabilityMonitor will always be started, if only for logging.
// This method is checked before probing neighbors and before calling
// onProvisioningLost() (see below).
public boolean usingIpReachabilityMonitor() {
return false;
}
/**
* Event callbacks.
*
* Override methods as desired in order to handle event callbacks
* as IpManager invokes them.
*/
// Implementations must call IpManager#completedPreDhcpAction().
// TODO: Remove this requirement, perhaps via some
// registerForPreDhcpAction()-style mechanism.
// In order to receive onPreDhcpAction(), call #withPreDhcpAction()
// when constructing a ProvisioningConfiguration.
//
// Implementations of onPreDhcpAction() must call
// IpManager#completedPreDhcpAction() to indicate that DHCP is clear
// to proceed.
public void onPreDhcpAction() {}
public void onPostDhcpAction() {}
@@ -113,6 +94,9 @@ public class IpManager extends StateMachine {
// Called when the internal IpReachabilityMonitor (if enabled) has
// detected the loss of a critical number of required neighbors.
public void onReachabilityLost(String logMsg) {}
// Called when the IpManager state machine terminates.
public void onQuit() {}
}
/**
@@ -269,6 +253,17 @@ public class IpManager extends StateMachine {
mNetlinkTracker = null;
}
@Override
protected void onQuitting() {
mCallback.onQuit();
}
// Shut down this IpManager instance altogether.
public void shutdown() {
stop();
quit();
}
public static ProvisioningConfiguration.Builder buildProvisioningConfiguration() {
return new ProvisioningConfiguration.Builder();
}