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
MasterUriProvider
There 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 MasterUriProvider
RosRuntimeException
- 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)
MasterUriProvider
There 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 MasterUriProvider
timeout
- 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