using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Controller.Net; using MediaBrowser.Model.Activity; using MediaBrowser.Model.Events; using Microsoft.Extensions.Logging; namespace MediaBrowser.Api.System { /// /// Class SessionInfoWebSocketListener /// public class ActivityLogWebSocketListener : BasePeriodicWebSocketListener, WebSocketListenerState> { /// /// Gets the name. /// /// The name. protected override string Name => "ActivityLogEntry"; /// /// The _kernel /// private readonly IActivityManager _activityManager; public ActivityLogWebSocketListener(ILogger logger, IActivityManager activityManager) : base(logger) { _activityManager = activityManager; _activityManager.EntryCreated += _activityManager_EntryCreated; } void _activityManager_EntryCreated(object sender, GenericEventArgs e) { SendData(true); } /// /// Gets the data to send. /// /// Task{SystemInfo}. protected override Task> GetDataToSend() { return Task.FromResult(new List()); } protected override void Dispose(bool dispose) { _activityManager.EntryCreated -= _activityManager_EntryCreated; base.Dispose(dispose); } } }