Skip to content

ISiloStatusOracle Methods

Authoritative local, per-silo source for information about the status of other silos.

GetActiveSilos

abstract
public abstract SiloAddress[] GetActiveSilos()
Gets the currently active silos.

GetApproximateSiloStatus(SiloAddress)

abstract
public abstract SiloStatus GetApproximateSiloStatus(SiloAddress siloAddress)
Gets the status of a given silo. This method returns an approximate view on the status of a given silo. In particular, this oracle may think the given silo is alive, while it may already have failed. If this oracle thinks the given silo is dead, it has been authoritatively told so by ISiloDirectory.

Parameters

siloAddressSiloAddress
A silo whose status we are interested in.

Returns

The status of a given silo.

GetApproximateSiloStatuses(bool)

abstract
public abstract Dictionary<SiloAddress, SiloStatus> GetApproximateSiloStatuses(bool onlyActive = false)
Gets the statuses of all silo. This method returns an approximate view on the statuses of all silo.

Parameters

onlyActivebool
Include only silo who are currently considered to be active. If false, include all.

Returns

A list of silo statuses.

IsDeadSilo(SiloAddress)

abstract
public abstract bool IsDeadSilo(SiloAddress silo)
Gets a value indicating whether the current silo is dead.

Parameters

siloSiloAddress

Returns

The silo so ask about.

IsFunctionalDirectory(SiloAddress)

abstract
public abstract bool IsFunctionalDirectory(SiloAddress siloAddress)
Gets a value indicating whether the current silo is valid for creating new activations on or for directory lookups.

Parameters

siloAddressSiloAddress

Returns

The silo so ask about.

SubscribeToSiloStatusEvents(ISiloStatusListener)

abstract
public abstract bool SubscribeToSiloStatusEvents(ISiloStatusListener observer)
Subscribe to status events about all silos.

Parameters

observerISiloStatusListener
An observer async interface to receive silo status notifications.

Returns

A value indicating whether subscription succeeded or not.

TryGetSiloName(SiloAddress, string)

abstract
public abstract bool TryGetSiloName(SiloAddress siloAddress, out string siloName)
Gets the name of a silo. Silo name is assumed to be static and does not change across restarts of the same silo.

Parameters

siloAddressSiloAddress
A silo whose name we are interested in.
siloNamestring
A silo name.

Returns

TTrue if could return the requested name, false otherwise.

UnSubscribeFromSiloStatusEvents(ISiloStatusListener)

abstract
public abstract bool UnSubscribeFromSiloStatusEvents(ISiloStatusListener observer)
UnSubscribe from status events about all silos.

Parameters

observerISiloStatusListener

Returns

A value indicating whether subscription succeeded or not.