Show / Hide Table of Contents

    Class RemoteDataStore

    A Remote Data Store periodically transfers data from the device's LocalDataStore to a remote storage system (e.g., Amazon's Simple Storage Service). The job of the Remote Data Store is to ensure that data accumulated locally on the device are safely transferred off of the device before their accumulated size grows too large or they are corrupted, deleted, lost, etc.

    Inheritance
    System.Object
    DataStore
    RemoteDataStore
    AmazonS3RemoteDataStore
    ConsoleRemoteDataStore
    Inherited Members
    DataStore.RestartAsync()
    DataStore.Copy()
    DataStore.Running
    DataStore.Protocol
    DataStore.CaptionText
    DataStore.DisplayName
    DataStore.UpdatedCaptionText
    Namespace: Sensus.DataStores.Remote
    Assembly: SensusAndroid.dll
    Syntax
    public abstract class RemoteDataStore : DataStore

    Constructors

    RemoteDataStore()

    Declaration
    protected RemoteDataStore()

    Properties

    CanRetrieveWrittenData

    Declaration
    public abstract bool CanRetrieveWrittenData { get; }
    Property Value
    Type Description
    System.Boolean

    DelayToleranceAfterMS

    Tolerance in milliseconds for running the RemoteDataStore after the scheduled time, if doing so will increase the number of batched actions and thereby decrease battery consumption.

    Declaration
    [EntryIntegerUiProperty("Delay Tolerance After (MS):", true, 61, true)]
    public int DelayToleranceAfterMS { get; set; }
    Property Value
    Type Description
    System.Int32

    The delay tolerance before.

    DelayToleranceBeforeMS

    Tolerance in milliseconds for running the RemoteDataStore before the scheduled time, if doing so will increase the number of batched actions and thereby decrease battery consumption.

    Declaration
    [EntryIntegerUiProperty("Delay Tolerance Before (MS):", true, 60, true)]
    public int DelayToleranceBeforeMS { get; set; }
    Property Value
    Type Description
    System.Int32

    The delay tolerance before.

    RequireCharging

    Whether to require external power when uploading data.

    Declaration
    [OnOffUiProperty("Require Charging:", true, 54)]
    public bool RequireCharging { get; set; }
    Property Value
    Type Description
    System.Boolean

    true to require charging; otherwise, false.

    RequiredBatteryChargeLevelPercent

    The battery charge percent required to write data to the RemoteDataStore. This value is only considered when RequireCharging is false. Since remote data storage relies on wireless data transmission, significant battery consumption may result. This value provides flexibility when combined with RequireCharging. For example, when RequireCharging is false and RequiredBatteryChargeLevelPercent is 95%, Sensus will be allowed to transfer data without an external power source only when the battery is almost fully charged. This will minimize user irritation.

    Declaration
    [EntryFloatUiProperty("Required Battery Charge (Percent):", true, 55, false)]
    public float RequiredBatteryChargeLevelPercent { get; set; }
    Property Value
    Type Description
    System.Single

    The required battery charge level percent.

    RequireWiFi

    Whether to require a WiFi connection when uploading data. If this is turned off, substantial data charges might result since data will be transferred over the cellular network if WiFi is not available.

    Declaration
    [OnOffUiProperty("Require WiFi:", true, 53)]
    public bool RequireWiFi { get; set; }
    Property Value
    Type Description
    System.Boolean

    true if WiFi is required; otherwise, false.

    StorageDescription

    Declaration
    public virtual string StorageDescription { get; }
    Property Value
    Type Description
    System.String

    UserNotificationMessage

    Available on iOS only. The message displayed to the user when Sensus is in the background and data are scheduled to be transferred to the RemoteDataStore. This message is delivered via a notification in the hope that the user will open Sensus to transmit the data. Data will not be transferred if the user does not open Sensus.

    Declaration
    [EntryStringUiProperty("(iOS) User Notification Message:", true, 56, true)]
    public string UserNotificationMessage { get; set; }
    Property Value
    Type Description
    System.String

    The user notification message.

    WriteDelayMS

    How many milliseconds to pause between each data write cycle.

    Declaration
    [EntryIntegerUiProperty("Write Delay (MS):", true, 50, true)]
    public int WriteDelayMS { get; set; }
    Property Value
    Type Description
    System.Int32

    The write delay in milliseconds.

    WriteOnPowerConnect

    Whether to initiate an additional data upload each time the device is plugged in to external power. These additional uploads will respect the other settings (e.g., RequireWiFi).

    Declaration
    [OnOffUiProperty("Write on Power Connect:", true, 52)]
    public bool WriteOnPowerConnect { get; set; }
    Property Value
    Type Description
    System.Boolean

    true to upload when plugged in, otherwise false.

    WriteTimeoutMinutes

    How many minutes the data store has to complete a write before being cancelled.

    Declaration
    [EntryIntegerUiProperty("Write Timeout (Mins.):", true, 51, true)]
    public int WriteTimeoutMinutes { get; set; }
    Property Value
    Type Description
    System.Int32

    The write timeout in minutes.

    Methods

    DeletePushNotificationRequestAsync(Guid, CancellationToken)

    Deletes the push notification request.

    Declaration
    public abstract Task DeletePushNotificationRequestAsync(Guid backendKey, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    System.Guid backendKey

    Backend key

    System.Threading.CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    System.Threading.Tasks.Task

    Task

    DeletePushNotificationTokenAsync(CancellationToken)

    Deletes the push notification token.

    Declaration
    public abstract Task DeletePushNotificationTokenAsync(CancellationToken cancellationToken)
    Parameters
    Type Name Description
    System.Threading.CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    System.Threading.Tasks.Task

    The push notification token.

    GetDatumAsync<T>(String, CancellationToken)

    Retrieves a single Datum from the RemoteDataStore.

    Declaration
    public abstract Task<T> GetDatumAsync<T>(string datumKey, CancellationToken cancellationToken)
        where T : Datum
    Parameters
    Type Name Description
    System.String datumKey

    Datum key.

    System.Threading.CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    System.Threading.Tasks.Task<T>

    The datum.

    Type Parameters
    Name Description
    T

    The type of Datum to retrieve.

    GetDatumKey(Datum)

    Gets the key (identifier) value for a Datum. Used within WriteDatumAsync(Datum, CancellationToken) and GetDatumAsync<T>(String, CancellationToken).

    Declaration
    public abstract string GetDatumKey(Datum datum)
    Parameters
    Type Name Description
    Datum datum

    Datum.

    Returns
    Type Description
    System.String

    The datum key.

    GetPushNotificationUpdatesAsync(CancellationToken)

    Gets PushNotificationUpdates for the current device.

    Declaration
    public abstract Task<List<PushNotificationUpdate>> GetPushNotificationUpdatesAsync(CancellationToken cancellationToken)
    Parameters
    Type Name Description
    System.Threading.CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    System.Threading.Tasks.Task<System.Collections.Generic.List<PushNotificationUpdate>>

    The updates

    GetScriptAgentPolicyAsync(CancellationToken)

    Gets the script agent policy from the RemoteDataStore. See concrete class implementation for details.

    Declaration
    public abstract Task<JObject> GetScriptAgentPolicyAsync(CancellationToken cancellationToken)
    Parameters
    Type Name Description
    System.Threading.CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    System.Threading.Tasks.Task<Newtonsoft.Json.Linq.JObject>

    The script agent policy.

    GetSensingAgentPolicyAsync(CancellationToken)

    Gets the sensing agent policy from the RemoteDataStore. See concrete class implementation for details.

    Declaration
    public abstract Task<JObject> GetSensingAgentPolicyAsync(CancellationToken cancellationToken)
    Parameters
    Type Name Description
    System.Threading.CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    System.Threading.Tasks.Task<Newtonsoft.Json.Linq.JObject>

    The sensing agent policy.

    Reset()

    Declaration
    public override void Reset()
    Overrides
    DataStore.Reset()

    SendPushNotificationRequestAsync(PushNotificationRequest, CancellationToken)

    Sends the push notification request.

    Declaration
    public abstract Task SendPushNotificationRequestAsync(PushNotificationRequest request, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    PushNotificationRequest request

    Request.

    System.Threading.CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    System.Threading.Tasks.Task

    The push notification request.

    SendPushNotificationTokenAsync(String, CancellationToken)

    Sends the push notification token.

    Declaration
    public abstract Task SendPushNotificationTokenAsync(string token, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    System.String token

    Token.

    System.Threading.CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    System.Threading.Tasks.Task

    The push notification token.

    StartAsync()

    Declaration
    public override Task StartAsync()
    Returns
    Type Description
    System.Threading.Tasks.Task
    Overrides
    DataStore.StartAsync()

    StopAsync()

    Declaration
    public override Task StopAsync()
    Returns
    Type Description
    System.Threading.Tasks.Task
    Overrides
    DataStore.StopAsync()

    TestHealthAsync(List<AnalyticsTrackedEvent>)

    Declaration
    public override Task<HealthTestResult> TestHealthAsync(List<AnalyticsTrackedEvent> events)
    Parameters
    Type Name Description
    System.Collections.Generic.List<AnalyticsTrackedEvent> events
    Returns
    Type Description
    System.Threading.Tasks.Task<HealthTestResult>
    Overrides
    DataStore.TestHealthAsync(List<AnalyticsTrackedEvent>)

    WriteDataStreamAsync(Stream, String, String, CancellationToken)

    Writes a stream of Datum objects.

    Declaration
    public abstract Task WriteDataStreamAsync(Stream stream, string name, string contentType, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    System.IO.Stream stream

    Stream.

    System.String name

    Descriptive name for the stream.

    System.String contentType

    MIME content type for the stream.

    System.Threading.CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    System.Threading.Tasks.Task

    The stream.

    WriteDatumAsync(Datum, CancellationToken)

    Writes a single Datum to the RemoteDataStore.

    Declaration
    public abstract Task WriteDatumAsync(Datum datum, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    Datum datum

    Datum.

    System.Threading.CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    System.Threading.Tasks.Task

    Task.

    WriteLocalDataStoreAsync(CancellationToken)

    Declaration
    public Task<bool> WriteLocalDataStoreAsync(CancellationToken cancellationToken)
    Parameters
    Type Name Description
    System.Threading.CancellationToken cancellationToken
    Returns
    Type Description
    System.Threading.Tasks.Task<System.Boolean>
    Back to top Copyright © 2014-2018 University of Virginia
    Generated by DocFX