using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Security.Authentication;
using System.Collections.Specialized;
namespace SuperSocket.SocketBase.Config
{
///
/// Server instance configuation interface
///
public partial interface IServerConfig
{
///
/// Gets the name of the server type this appServer want to use.
///
///
/// The name of the server type.
///
string ServerTypeName { get; }
///
/// Gets the type definition of the appserver.
///
///
/// The type of the server.
///
string ServerType { get; }
///
/// Gets the Receive filter factory.
///
string ReceiveFilterFactory { get; }
///
/// Gets the ip.
///
string Ip { get; }
///
/// Gets the port.
///
int Port { get; }
///
/// Gets the options.
///
NameValueCollection Options { get; }
///
/// Gets the option elements.
///
NameValueCollection OptionElements { get; }
///
/// Gets a value indicating whether this is disabled.
///
///
/// true if disabled; otherwise, false.
///
bool Disabled { get; }
///
/// Gets the name.
///
string Name { get; }
///
/// Gets the mode.
///
SocketMode Mode { get; }
///
/// Gets the send time out.
///
int SendTimeOut { get; }
///
/// Gets the max connection number.
///
int MaxConnectionNumber { get; }
///
/// Gets the size of the receive buffer.
///
///
/// The size of the receive buffer.
///
int ReceiveBufferSize { get; }
///
/// Gets the size of the send buffer.
///
///
/// The size of the send buffer.
///
int SendBufferSize { get; }
///
/// Gets a value indicating whether sending is in synchronous mode.
///
///
/// true if [sync send]; otherwise, false.
///
bool SyncSend { get; }
///
/// Gets a value indicating whether log command in log file.
///
/// true if log command; otherwise, false.
bool LogCommand { get; }
///
/// Gets a value indicating whether clear idle session.
///
/// true if clear idle session; otherwise, false.
bool ClearIdleSession { get; }
///
/// Gets the clear idle session interval, in seconds.
///
/// The clear idle session interval.
int ClearIdleSessionInterval { get; }
///
/// Gets the idle session timeout time length, in seconds.
///
/// The idle session time out.
int IdleSessionTimeOut { get; }
///
/// Gets X509Certificate configuration.
///
/// X509Certificate configuration.
ICertificateConfig Certificate { get; }
///
/// Gets the security protocol, X509 certificate.
///
string Security { get; }
///
/// Gets the length of the max request.
///
///
/// The length of the max request.
///
int MaxRequestLength { get; }
///
/// Gets a value indicating whether [disable session snapshot].
///
///
/// true if [disable session snapshot]; otherwise, false.
///
bool DisableSessionSnapshot { get; }
///
/// Gets the interval to taking snapshot for all live sessions.
///
int SessionSnapshotInterval { get; }
///
/// Gets the connection filters used by this server instance.
///
///
/// The connection filter's name list, seperated by comma
///
string ConnectionFilter { get; }
///
/// Gets the command loader, multiple values should be separated by comma.
///
string CommandLoader { get; }
///
/// Gets the start keep alive time, in seconds
///
int KeepAliveTime { get; }
///
/// Gets the keep alive interval, in seconds.
///
int KeepAliveInterval { get; }
///
/// Gets the backlog size of socket listening.
///
int ListenBacklog { get; }
///
/// Gets the startup order of the server instance.
///
int StartupOrder { get; }
///
/// Gets the child config.
///
/// The type of the config.
/// Name of the child config.
///
TConfig GetChildConfig(string childConfigName)
where TConfig : ConfigurationElement, new();
///
/// Gets the listeners' configuration.
///
IEnumerable Listeners { get; }
///
/// Gets the log factory name.
///
string LogFactory { get; }
///
/// Gets the size of the sending queue.
///
///
/// The size of the sending queue.
///
int SendingQueueSize { get; }
///
/// Gets a value indicating whether [log basic session activity like connected and disconnected].
///
///
/// true if [log basic session activity]; otherwise, false.
///
bool LogBasicSessionActivity { get; }
///
/// Gets a value indicating whether [log all socket exception].
///
///
/// true if [log all socket exception]; otherwise, false.
///
bool LogAllSocketException { get; }
///
/// Gets the default text encoding.
///
///
/// The text encoding.
///
string TextEncoding { get; }
///
/// Gets the command assemblies configuration.
///
///
/// The command assemblies.
///
IEnumerable CommandAssemblies { get; }
}
}