mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-04 06:48:35 +01:00
rework dlna project
This commit is contained in:
71
RSSDP/ISsdpCommunicationsServer.cs
Normal file
71
RSSDP/ISsdpCommunicationsServer.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Rssdp.Infrastructure
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface for a component that manages network communication (sending and receiving HTTPU messages) for the SSDP protocol.
|
||||
/// </summary>
|
||||
public interface ISsdpCommunicationsServer : IDisposable
|
||||
{
|
||||
|
||||
#region Events
|
||||
|
||||
/// <summary>
|
||||
/// Raised when a HTTPU request message is received by a socket (unicast or multicast).
|
||||
/// </summary>
|
||||
event EventHandler<RequestReceivedEventArgs> RequestReceived;
|
||||
|
||||
/// <summary>
|
||||
/// Raised when an HTTPU response message is received by a socket (unicast or multicast).
|
||||
/// </summary>
|
||||
event EventHandler<ResponseReceivedEventArgs> ResponseReceived;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
/// <summary>
|
||||
/// Causes the server to begin listening for multicast messages, being SSDP search requests and notifications.
|
||||
/// </summary>
|
||||
void BeginListeningForBroadcasts();
|
||||
|
||||
/// <summary>
|
||||
/// Causes the server to stop listening for multicast messages, being SSDP search requests and notifications.
|
||||
/// </summary>
|
||||
void StopListeningForBroadcasts();
|
||||
|
||||
/// <summary>
|
||||
/// Stops listening for search responses on the local, unicast socket.
|
||||
/// </summary>
|
||||
void StopListeningForResponses();
|
||||
|
||||
/// <summary>
|
||||
/// Sends a message to a particular address (uni or multicast) and port.
|
||||
/// </summary>
|
||||
/// <param name="messageData">A byte array containing the data to send.</param>
|
||||
/// <param name="destination">A <see cref="UdpEndPoint"/> representing the destination address for the data. Can be either a multicast or unicast destination.</param>
|
||||
Task SendMessage(byte[] messageData, UdpEndPoint destination);
|
||||
|
||||
/// <summary>
|
||||
/// Sends a message to the SSDP multicast address and port.
|
||||
/// </summary>
|
||||
/// <param name="messageData">A byte array containing the data to send.</param>
|
||||
Task SendMulticastMessage(byte[] messageData);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Properties
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a boolean value indicating whether or not this instance is shared amongst multiple <see cref="SsdpDeviceLocatorBase"/> and/or <see cref="ISsdpDevicePublisher"/> instances.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <para>If true, disposing an instance of a <see cref="SsdpDeviceLocatorBase"/>or a <see cref="ISsdpDevicePublisher"/> will not dispose this comms server instance. The calling code is responsible for managing the lifetime of the server.</para>
|
||||
/// </remarks>
|
||||
bool IsShared { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user