/// <summary> /// If valueSubscription is not subscribed - does nothing. /// </summary> /// <param name="valueSubscription"></param> public virtual void JournalRemoveItem(object valueSubscription) { BeginInvoke(ct => { ClientElementValuesJournalListManager.RemoveItem(valueSubscription); } ); }
/// <summary> /// valueSubscription.Update() is called from сallbackDispatcher. /// </summary> /// <param name="elementId"></param> /// <param name="valueSubscription"></param> public virtual void JournalAddItem(string elementId, object valueSubscription) { BeginInvoke(ct => { ClientElementValuesJournalListManager.AddItem(elementId, valueSubscription); ClientElementValuesJournalListManager.Subscribe(ClientConnectionManager); } ); }
/// <summary> /// /// </summary> /// <param name="firstTimestampUtc"></param> /// <param name="secondTimestampUtc"></param> /// <param name="numValuesPerSubscription"></param> /// <param name="calculation"></param> /// <param name="params_"></param> /// <param name="valueSubscriptionsCollection"></param> /// <returns></returns> public virtual async Task <ValueStatusTimestamp[][]?> ReadElementValuesJournalsAsync(DateTime firstTimestampUtc, DateTime secondTimestampUtc, uint numValuesPerSubscription, Ssz.Utils.DataAccess.TypeId?calculation, CaseInsensitiveDictionary <string>?params_, object[] valueSubscriptionsCollection) { var taskCompletionSource = new TaskCompletionSource <ValueStatusTimestamp[][]?>(); BeginInvoke(ct => { var result = ClientElementValuesJournalListManager.ReadElementValuesJournals(firstTimestampUtc, secondTimestampUtc, numValuesPerSubscription, calculation, params_, valueSubscriptionsCollection); taskCompletionSource.SetResult(result); } ); return(await taskCompletionSource.Task); }