123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO;
- using System.Net;
- using System.Security.Authentication;
- using System.Net.Sockets;
- using SuperSocket.SocketBase.Command;
- namespace SuperSocket.SocketBase
- {
- /// <summary>
- /// CloseReason enum
- /// </summary>
- public enum CloseReason : int
- {
- /// <summary>
- /// The socket is closed for unknown reason
- /// </summary>
- Unknown = 0,
- /// <summary>
- /// Close for server shutdown
- /// </summary>
- ServerShutdown = 1,
- /// <summary>
- /// The client close the socket
- /// </summary>
- ClientClosing = 2,
- /// <summary>
- /// The server side close the socket
- /// </summary>
- ServerClosing = 3,
- /// <summary>
- /// Application error
- /// </summary>
- ApplicationError = 4,
- /// <summary>
- /// The socket is closed for a socket error
- /// </summary>
- SocketError = 5,
- /// <summary>
- /// The socket is closed by server for timeout
- /// </summary>
- TimeOut = 6,
- /// <summary>
- /// Protocol error
- /// </summary>
- ProtocolError = 7,
- /// <summary>
- /// SuperSocket internal error
- /// </summary>
- InternalError = 8,
- }
- /// <summary>
- /// The interface for socket session
- /// </summary>
- public interface ISocketSession : ISessionBase
- {
- /// <summary>
- /// Initializes the specified app session.
- /// </summary>
- /// <param name="appSession">The app session.</param>
- void Initialize(IAppSession appSession);
- /// <summary>
- /// Starts this instance.
- /// </summary>
- void Start();
- /// <summary>
- /// Closes the socket session for the specified reason.
- /// </summary>
- /// <param name="reason">The reason.</param>
- void Close(CloseReason reason);
- /// <summary>
- /// Tries to send array segment.
- /// </summary>
- /// <param name="segments">The segments.</param>
- bool TrySend(IList<ArraySegment<byte>> segments);
- /// <summary>
- /// Tries to send array segment.
- /// </summary>
- /// <param name="segment">The segment.</param>
- bool TrySend(ArraySegment<byte> segment);
- /// <summary>
- /// Applies the secure protocol.
- /// </summary>
- void ApplySecureProtocol();
- /// <summary>
- /// Gets the client socket.
- /// </summary>
- Socket Client { get; }
- /// <summary>
- /// Gets the local listening endpoint.
- /// </summary>
- IPEndPoint LocalEndPoint { get; }
- /// <summary>
- /// Gets or sets the secure protocol.
- /// </summary>
- /// <value>
- /// The secure protocol.
- /// </value>
- SslProtocols SecureProtocol { get; set; }
- /// <summary>
- /// Occurs when [closed].
- /// </summary>
- Action<ISocketSession, CloseReason> Closed { get; set; }
- /// <summary>
- /// Gets the app session assosiated with this socket session.
- /// </summary>
- IAppSession AppSession { get; }
- /// <summary>
- /// Gets the original receive buffer offset.
- /// </summary>
- /// <value>
- /// The original receive buffer offset.
- /// </value>
- int OrigReceiveOffset { get; }
- }
- }
|