using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using SuperSocket.SocketBase.Logging;
using SuperSocket.SocketBase.Command;
using SuperSocket.SocketBase.Config;
using SuperSocket.SocketBase.Protocol;
using SuperWebSocket.Config;
using SuperSocket.SocketBase;
namespace SuperWebSocket.SubProtocol
{
///
/// SubProtocol interface
///
/// The type of the web socket session.
public interface ISubProtocol
where TWebSocketSession : WebSocketSession, new()
{
///
/// Initializes with the specified config.
///
/// The app server.
/// The protocol config.
/// The logger.
///
bool Initialize(IAppServer appServer, SubProtocolConfig protocolConfig, ILog logger);
///
/// Gets the name.
///
string Name { get; }
///
/// Gets the sub request parser.
///
IRequestInfoParser SubRequestParser { get; }
///
/// Tries the get command.
///
/// The name.
/// The command.
///
bool TryGetCommand(string name, out ISubCommand command);
}
}