Files
2026-06-26 10:29:23 +02:00

36 lines
1.9 KiB
C#

using adas_core.Application.Subscriptions;
using MongoDB.Bson;
namespace adas_core.Application.Services.Interfaces;
public interface ISubscribersService
{
/// <summary>
/// Retrieves the list of subscribers.
/// </summary>
/// <returns>A list of <see cref="WsSubscriber"/> instances representing the subscribers.</returns>
List<WsSubscriber> GetSubscribers();
/// <summary>
/// Retrieves a <see cref="WsSubscriber"/> associated with the specified context connection identifier.
/// </summary>
/// <param name="contextConnectionId">The unique identifier of the context connection used to look up the subscriber.</param>
/// <returns>The <see cref="WsSubscriber"/> matching the given connection identifier, or <c>null</c> if no subscriber is found.</returns>
WsSubscriber? GetById(string contextConnectionId);
/// <summary>
/// Retrieves the list of subscribers associated with the specified point of contact (POC) identifier.
/// </summary>
/// <param name="pocId">The identifier of the point of contact whose subscribers should be returned.</param>
/// <returns>A list of <see cref="WsSubscriber"/> instances matching the provided POC identifier.</returns>
List<WsSubscriber> GetByPocId(ObjectId pocId);
/// <summary>
/// Removes a connection identified by the specified context connection identifier.
/// </summary>
/// <param name="contextConnectionId">The unique identifier of the connection to remove.</param>
/// <returns>An integer indicating the result of the removal operation.</returns>
int RemoveConnectionById(string contextConnectionId);
/// <summary>
/// Registers the specified WebSocket subscriber to receive notifications or messages.
/// </summary>
/// <param name="subscriber">The <see cref="WsSubscriber"/> instance to be added to the collection of subscribers.</param>
void AddSubscriber(WsSubscriber subscriber);
}