LaunchDarkly Dotnet Server SDK
Search Results for

    Show / Hide Table of Contents

    Interface IDataSourceStatusProvider

    An interface for querying the status of the SDK's data source.

    Namespace: LaunchDarkly.Sdk.Server.Interfaces
    Assembly: LaunchDarkly.ServerSdk.dll
    Syntax
    public interface IDataSourceStatusProvider
    Remarks

    The data source is the component that receives updates to feature flag data. Normally this is a streaming connection, but it could be polling or file data depending on your configuration.

    An implementation of this interface is returned by DataSourceStatusProvider. Application code never needs to implement this interface.

    Properties

    | Edit this page View Source

    Status

    The current status of the data source.

    Declaration
    DataSourceStatus Status { get; }
    Property Value
    Type Description
    DataSourceStatus
    Remarks

    All of the built-in data source implementations are guaranteed to update this status whenever they successfully initialize, encounter an error, or recover after an error.

    For a custom data source implementation, it is the responsibility of the data source to report its status via IDataSourceUpdates; if it does not do so, the status will always be reported as Initializing.

    Methods

    | Edit this page View Source

    WaitFor(DataSourceState, TimeSpan)

    A synchronous method for waiting for a desired connection state.

    Declaration
    bool WaitFor(DataSourceState desiredState, TimeSpan timeout)
    Parameters
    Type Name Description
    DataSourceState desiredState

    the desired connection state (normally this would be Valid)

    TimeSpan timeout

    the maximum amount of time to wait-- or Zero to block indefinitely

    Returns
    Type Description
    bool

    true if the connection is now in the desired state; false if it timed out, or if the state changed to Off and that was not the desired state

    Remarks

    If the current state is already desiredState when this method is called, it immediately returns. Otherwise, it blocks until 1. the state has become desiredState, 2. the state has become Off (since that is a permanent condition), or 3. the specified timeout elapses.

    A scenario in which this might be useful is if you want to create the LdClient without waiting for it to initialize, and then wait for initialization at a later time or on a different thread:

    // create the client but do not wait
    var config = Configuration.Builder("my-sdk-key").StartWaitTime(TimeSpan.Zero).Build();
    var client = new LDClient(config);
    

    // later, possibly on another thread: var inited = client.DataSourceStatusProvider.WaitFor(DataSourceState.Valid, TimeSpan.FromSeconds(10)); if (!inited) { // do whatever is appropriate if initialization has timed out }

    See Also
    WaitForAsync(DataSourceState, TimeSpan)
    | Edit this page View Source

    WaitForAsync(DataSourceState, TimeSpan)

    An asynchronous method for waiting for a desired connection state.

    Declaration
    Task<bool> WaitForAsync(DataSourceState desiredState, TimeSpan timeout)
    Parameters
    Type Name Description
    DataSourceState desiredState

    the desired connection state (normally this would be Valid)

    TimeSpan timeout

    the maximum amount of time to wait-- or Zero to block indefinitely

    Returns
    Type Description
    Task<bool>

    true if the connection is now in the desired state; false if it timed out, or if the state changed to Off and that was not the desired state

    Remarks

    This method behaves identically to WaitFor(DataSourceState, TimeSpan) except that it is asynchronous. The following example is the asynchronous equivalent of the example code shown for WaitFor(DataSourceState, TimeSpan):

    // create the client but do not wait
    var config = Configuration.Builder("my-sdk-key").StartWaitTime(TimeSpan.Zero).Build();
    var client = new LDClient(config);
    

    // later, possibly on another thread: var inited = await client.DataSourceStatusProvider.WaitFor(DataSourceState.Valid, TimeSpan.FromSeconds(10)); if (!inited) { // do whatever is appropriate if initialization has timed out }

    See Also
    WaitFor(DataSourceState, TimeSpan)

    Events

    | Edit this page View Source

    StatusChanged

    An event for receiving notifications of status changes.

    Declaration
    event EventHandler<DataSourceStatus> StatusChanged
    Event Type
    Type Description
    EventHandler<DataSourceStatus>
    Remarks

    Any handlers attached to this event will be notified whenever any property of the status has changed. See DataSourceStatusfor an explanation of the meaning of each property and what could cause it to change.

    Notifications will be dispatched on a background task. It is the listener's responsibility to return as soon as possible so as not to block subsequent notifications.

    See Also

    DataSourceStatusProvider
    • Edit this page
    • View Source
    In this article
    Back to top Generated by DocFX