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