public class SwitchableMasterUriProvider extends java.lang.Object implements MasterUriProvider
MasterUriProvider which can be switched between providers.
This class is thread-safe.
| Modifier and Type | Class and Description |
|---|---|
static interface |
SwitchableMasterUriProvider.MasterUriProviderSwitcher
Perform a switch between
MasterUriProvider instances for the
SwitchableMasterUriProvider. |
| Constructor and Description |
|---|
SwitchableMasterUriProvider(MasterUriProvider provider) |
| Modifier and Type | Method and Description |
|---|---|
java.net.URI |
getMasterUri()
Get a master URI.
|
java.net.URI |
getMasterUri(long timeout,
java.util.concurrent.TimeUnit unit)
Get a master URI within a given amount of time.
|
void |
switchProvider(SwitchableMasterUriProvider.MasterUriProviderSwitcher switcher)
Switch between providers.
|
public SwitchableMasterUriProvider(MasterUriProvider provider)
provider - the initial provider to usepublic java.net.URI getMasterUri()
throws RosRuntimeException
MasterUriProviderThere is no guarantee that calling this class twice will provide the same URI.
This call may or may not block until a URI is available.
getMasterUri in interface MasterUriProviderRosRuntimeException - this exception may or may not be thrown if there is no master URI
availablepublic java.net.URI getMasterUri(long timeout,
java.util.concurrent.TimeUnit unit)
MasterUriProviderThere is no guarantee that calling this class twice will provide the same URI.
This call may or may not block until a URI is available.
getMasterUri in interface MasterUriProvidertimeout - the amount of time to wait for a URIunit - the time unit for the wait timenull if none could be obtained within the
timeoutpublic void switchProvider(SwitchableMasterUriProvider.MasterUriProviderSwitcher switcher)
switcher - the new provider