public abstract class AbstractAutoSwitchedMixCascadeContainer extends AbstractMixCascadeContainer
| Modifier and Type | Field and Description |
|---|---|
static MixCascade |
INITIAL_DUMMY_SERVICE |
private java.util.Hashtable |
m_alreadyTriedCascades |
private boolean |
m_bInitialRun |
private boolean |
m_bKeepCurrentCascade |
private boolean |
m_bSkipInitialCascade |
private MixCascade |
m_currentCascade |
private MixCascade |
m_initialCascade |
private long |
m_lLastNextRequest |
private java.util.Random |
m_random |
private java.lang.String |
m_strStartupServiceId |
private static long |
MINIMUM_NEXT_WAITING_TIME |
| Constructor and Description |
|---|
AbstractAutoSwitchedMixCascadeContainer(boolean a_bSkipInitialCascade,
MixCascade a_initialCascade,
java.lang.String a_strStartupServiceId) |
| Modifier and Type | Method and Description |
|---|---|
MixCascade |
getCurrentCascade()
Returns the last return value of getNextCascade().
|
MixCascade |
getInitialCascade() |
MixCascade |
getNextCascade()
Chooses a random Cascade from all available, not already tried ones, until
all have been tried once, or
reset() is called. |
private MixCascade |
getNextCascade(boolean a_bForceNextRandom,
boolean a_bUseSkippedServices) |
MixCascade |
getNextRandomCascade()
Explicitly chooses the next cascade at random, by calling
reset()
beforehand. |
java.lang.String |
getStartupServiceId() |
ITrustModel |
getTrustModel() |
abstract boolean |
hasUserAllowedPaidServices(java.lang.String a_PIID) |
abstract boolean |
isReconnectedAutomatically()
Returns whether the
MixCascade inside this container reconnects
automatically or not. |
abstract boolean |
isServiceAutoSwitched() |
private boolean |
isSuitableCascade(MixCascade a_cascade) |
void |
keepCurrentService(boolean a_bKeepCurrentCascade)
Optional method that should allow to return the last MixCascade (Service) that was returned
by getNextService() also the next time this method is called.
|
void |
reset()
Clears the list of recently tried cascades, allowing them to be selectable
by
getNextCascade() again. |
boolean |
setCurrentCascade(MixCascade a_cascade) |
private void |
update(MixCascade a_cascade,
boolean a_bEnforceInitialRun) |
getCurrentServicepublic static final MixCascade INITIAL_DUMMY_SERVICE
private static final long MINIMUM_NEXT_WAITING_TIME
private long m_lLastNextRequest
private java.util.Hashtable m_alreadyTriedCascades
private java.util.Random m_random
private MixCascade m_initialCascade
private MixCascade m_currentCascade
private boolean m_bKeepCurrentCascade
private boolean m_bSkipInitialCascade
private java.lang.String m_strStartupServiceId
private boolean m_bInitialRun
public AbstractAutoSwitchedMixCascadeContainer(boolean a_bSkipInitialCascade,
MixCascade a_initialCascade,
java.lang.String a_strStartupServiceId)
public final MixCascade getInitialCascade()
public void reset()
getNextCascade() again.reset in interface IServiceContainerreset in class AbstractMixCascadeContainerpublic final MixCascade getNextRandomCascade()
reset()
beforehand. If auto-reconnect is active, this method is equal to
getNextCascade().getNextRandomCascade in class AbstractMixCascadeContainerMixCascade from all available.public final MixCascade getNextCascade()
reset() is called.getNextCascade in class AbstractMixCascadeContainerprivate final MixCascade getNextCascade(boolean a_bForceNextRandom, boolean a_bUseSkippedServices)
public abstract boolean isServiceAutoSwitched()
isServiceAutoSwitched in interface IServiceContainerisServiceAutoSwitched in class AbstractMixCascadeContainerpublic abstract boolean isReconnectedAutomatically()
AbstractMixCascadeContainerMixCascade inside this container reconnects
automatically or not.isReconnectedAutomatically in interface IServiceContainerisReconnectedAutomatically in class AbstractMixCascadeContainerpublic abstract boolean hasUserAllowedPaidServices(java.lang.String a_PIID)
public final java.lang.String getStartupServiceId()
private final boolean isSuitableCascade(MixCascade a_cascade)
private void update(MixCascade a_cascade, boolean a_bEnforceInitialRun)
public final MixCascade getCurrentCascade()
AbstractMixCascadeContainergetCurrentCascade in class AbstractMixCascadeContainerpublic final boolean setCurrentCascade(MixCascade a_cascade)
public final void keepCurrentService(boolean a_bKeepCurrentCascade)
AbstractMixCascadeContainerkeepCurrentService in interface IServiceContainerkeepCurrentService in class AbstractMixCascadeContainera_bKeepCurrentCascade - allows or disallows to keep the current cascade for the next callpublic final ITrustModel getTrustModel()
getTrustModel in interface IServiceContainergetTrustModel in class AbstractMixCascadeContainerCopyright © 2023. All rights reserved.