using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SuperSocket.Common;
using SuperSocket.SocketBase.Protocol;
using SuperSocket.SocketBase.Config;
namespace SuperSocket.SocketBase.Command
{
///
/// the empty basic interface for command loader
///
public interface ICommandLoader
{
}
///
/// Command loader's interface
///
public interface ICommandLoader : ICommandLoader
where TCommand : ICommand
{
///
/// Initializes the command loader by the root config and the server instance.
///
/// The root config.
/// The app server.
///
bool Initialize(IRootConfig rootConfig, IAppServer appServer);
///
/// Tries to load commands.
///
/// The commands.
///
bool TryLoadCommands(out IEnumerable commands);
///
/// Occurs when [updated].
///
event EventHandler> Updated;
///
/// Occurs when [error].
///
event EventHandler Error;
}
}