/// <summary> /// Create console user interface. /// </summary> public ConsoleUI() { _gameSelector = new ConsoleGameSelector(); _gameView = new ConsoleView(); _commandReader = new ConsoleCommandReader(); _sizeReader = new ConsoleSizeReader(); }
public static IEngine Initialise(ICommandReader reader, ILogger loger) { if (SingleInstance == null) { SingleInstance = new GameEngine(reader, loger); } return(SingleInstance); }
/// <summary> /// Initializes a new instance of <see cref="DbCommander"/> /// </summary> /// <param name="connector">An <see cref="IDbConnector"/> to create connections to the underlying data store.</param> /// <param name="reader">An <see cref="ICommandReader"/> which parses a <see cref="CommandSetting"/> /// to return <see cref="CommandDefinition"/></param>. public DbCommander ( IDbConnector connector, ICommandReader reader ) { _connector = connector; _reader = reader; }
public void SetCommandReader(ICommandReader commandReader) { if (commandReader == null) { _commandReaderField = new CommandReader(); } _commandReaderField = commandReader; }
public Worker( ILogger <Worker> logger, ICommandReader commandReader, CommandSender sender) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _commandReader = commandReader ?? throw new ArgumentNullException(nameof(commandReader)); _sender = sender ?? throw new ArgumentNullException(nameof(sender)); }
public UdpSocketServer(IAppServer <TAppSession> appServer, IPEndPoint localEndPoint, ICustomProtocol <TCommandInfo> protocol) : base(appServer, localEndPoint, protocol) { if (typeof(TCommandInfo).IsSubclassOf(typeof(UdpCommandInfo))) { m_SessionKeyFromCommandInfo = true; m_UdpCommandInfoReader = Protocol.CreateCommandReader(this.AppServer); } }
public Rover(IRoverStateMachine stateMachine, ICommandReader commandReader, ICommandStrategiesFactory commandStrategiesFactory, ILogger logger) { StateMachine = stateMachine; _commandReader = commandReader; _commandStrategiesFactory = commandStrategiesFactory; _logger = logger; CurrentVector = new Vector(InitialRoverDirection, InitialRoverPosition); }
public DealershipEngine( ICommandReader commandReader, ICommandProcessor commandProcessor, IReportPrinter reportPrinter, IUserService userService) { this.commandReader = commandReader; this.commandProcessor = commandProcessor; this.reportPrinter = reportPrinter; this.userService = userService; }
private void HandleCommandEvent(TelloCommand command) { ICommandReader reader = commandReaders.SingleOrDefault(t => t.Id == command.Id); IEventCommand evt = reader?.Read(command); if (evt == null) { return; } CommandReceived?.Invoke(this, evt); }
public SocketSession(Socket client, ICommandReader <TCommandInfo> commandReader) : this(commandReader) { if (client == null) { throw new ArgumentNullException("client"); } Client = client; LocalEndPoint = (IPEndPoint)client.LocalEndPoint; RemoteEndPoint = (IPEndPoint)client.RemoteEndPoint; }
public override bool Handshake(IWebSocketSession session, WebSocketReaderBase previousReader, out ICommandReader<IWebSocketFragment> dataFrameReader) { if (!VersionTag.Equals(session.SecWebSocketVersion) && NextProcessor != null) { return NextProcessor.Handshake(session, previousReader, out dataFrameReader); } dataFrameReader = null; session.ProtocolProcessor = this; var secWebSocketKey = session.Items.GetValue<string>(WebSocketConstant.SecWebSocketKey, string.Empty); if (string.IsNullOrEmpty(secWebSocketKey)) { return false; } var responseBuilder = new StringBuilder(); string secKeyAccept = string.Empty; try { secKeyAccept = Convert.ToBase64String(SHA1.Create().ComputeHash(Encoding.ASCII.GetBytes(secWebSocketKey + m_Magic))); } catch (Exception) { return false; } responseBuilder.AppendWithCrCf(WebSocketConstant.ResponseHeadLine10); responseBuilder.AppendWithCrCf(WebSocketConstant.ResponseUpgradeLine); responseBuilder.AppendWithCrCf(WebSocketConstant.ResponseConnectionLine); responseBuilder.AppendFormatWithCrCf(WebSocketConstant.ResponseAcceptLine, secKeyAccept); var subProtocol = session.GetAvailableSubProtocol(session.Items.GetValue<string>(WebSocketConstant.SecWebSocketProtocol, string.Empty)); if (!string.IsNullOrEmpty(subProtocol)) responseBuilder.AppendFormatWithCrCf(WebSocketConstant.ResponseProtocolLine, subProtocol); responseBuilder.AppendWithCrCf(); session.SocketSession.SendResponse(responseBuilder.ToString()); dataFrameReader = new WebSocketDataFrameReader(session.AppServer); return true; }
public DealershipEngine( ICommandReader commandReader, ICommandProcessor commandProcessor, IReportPrinter reportPrinter, IUserService userService) { Validator.ValidateNull(commandReader, "commandReader"); Validator.ValidateNull(commandProcessor, "commandProcessor"); Validator.ValidateNull(reportPrinter, "reportPrinter"); Validator.ValidateNull(userService, "userService"); this.commandReader = commandReader; this.commandProcessor = commandProcessor; this.reportPrinter = reportPrinter; this.userService = userService; }
static void Main(string[] args) { ILogger @log = new LoggerConfiguration() .WriteTo.Console() .CreateLogger(); Config.InOutConfig @cfg = new Config.InOutConfig { InputExcelFile = @"D:\usr\rajamohan\dotnet\population.io\TestData.xlsx", OutputSqlLiteDbFile = @"D:\usr\rajamohan\dotnet\population\population.db" }; @log.Information("population.io"); @log.Information(@cfg.ToString()); @log.Information("reading specified excel"); IInputReader inputReader = new ExcelReader(@cfg, @log); inputReader.BeginRead(); PopulationContext context = new PopulationContext(@cfg, @log); @log.Information("read estimates"); ICommandReader <Estimate> estimatesReader = inputReader.GetEstimateReader(); while (estimatesReader.MoveNext()) { @log.Information(estimatesReader.Current.ToString()); context.Estimates.Add(estimatesReader.Current); } @log.Information("read actuals"); ICommandReader <Actual> actualReader = inputReader.GetActualReader(); while (actualReader.MoveNext()) { @log.Information(actualReader.Current.ToString()); context.Actuals.Add(actualReader.Current); } @log.Information("end reading"); inputReader.EndRead(); @log.Information("save estimates and actuals"); context.SaveChanges(); @log.Information("end."); }
public void Navigate(ICommandReader commandReader) { if (commandReader == null) { throw new ArgumentNullException("command reader instance can't be null."); } string commands = commandReader.Read(); ThrowExceptionIfContainsInvalidChars(commands); _commandExecutor.SetInitialCompassPoint(_orientation); foreach (char cmdChar in commands) { _commandExecutor.Execute(cmdChar); } _lastLocation = _commandExecutor.GetLastLocation(); }
public Player(Map map, ICommandReader commandReader) { Map = map; Id = numberOfPlayers++; Resources = new Dictionary <Resource, int>(); Units = new List <AbstractUnit>(); Buildables = new Dictionary <int, AbstractBuildable>(); Buildings = new List <AbstractBuilding>(); TrainCapabilities = new Dictionary <Type, AbstractTrainCapability>(); BuildCapabilities = new Dictionary <Type, AbstractBuildCapability>(); ExecuteCommandsThread = new Thread(Execute); AddBuilding(new Farm(0, 0, 100)); Pawn = new Pawn(); Pawn.Location = new Point(0, 0); Pawn.GatherEvent += Pawn_GatherEvent; CommandReader = commandReader; }
private GameEngine(ICommandReader reader, ILogger logger) { if (reader == null) { throw new NullReferenceException("CommandReader should not be null!"); } this.reader = reader; if (logger == null) { throw new NullReferenceException("Logger should not be null!"); } this.logger = logger; this.playerFactory = new PlayerFactory(); this.itemFactory = new ItemFactory(); this.players = new List <IPlayer>(); this.mages = new List <IMageSkills>(); this.rogues = new List <IRogueSkills>(); this.warriors = new List <IWarriorSkills>(); }
public override bool Handshake(IWebSocketSession session, WebSocketReaderBase previousReader, out ICommandReader<IWebSocketFragment> dataFrameReader) { var secKey1 = session.Items.GetValue<string>(WebSocketConstant.SecWebSocketKey1, string.Empty); var secKey2 = session.Items.GetValue<string>(WebSocketConstant.SecWebSocketKey2, string.Empty); if (string.IsNullOrEmpty(secKey1) && string.IsNullOrEmpty(secKey2) && NextProcessor != null) { return NextProcessor.Handshake(session, previousReader, out dataFrameReader); } session.ProtocolProcessor = this; var secKey3 = session.Items.GetValue<byte[]>(WebSocketConstant.SecWebSocketKey3, m_ZeroKeyBytes); var responseBuilder = new StringBuilder(); responseBuilder.AppendWithCrCf(WebSocketConstant.ResponseHeadLine00); responseBuilder.AppendWithCrCf(WebSocketConstant.ResponseUpgradeLine); responseBuilder.AppendWithCrCf(WebSocketConstant.ResponseConnectionLine); if (!string.IsNullOrEmpty(session.Origin)) responseBuilder.AppendFormatWithCrCf(WebSocketConstant.ResponseOriginLine, session.Origin); responseBuilder.AppendFormatWithCrCf(WebSocketConstant.ResponseLocationLine, session.UriScheme, session.Host, session.Path); var subProtocol = session.GetAvailableSubProtocol(session.Items.GetValue<string>(WebSocketConstant.SecWebSocketProtocol, string.Empty)); if (!string.IsNullOrEmpty(subProtocol)) responseBuilder.AppendFormatWithCrCf(WebSocketConstant.ResponseProtocolLine, subProtocol); responseBuilder.AppendWithCrCf(); session.SocketSession.SendResponse(responseBuilder.ToString()); //Encrypt message byte[] secret = GetResponseSecurityKey(secKey1, secKey2, secKey3); session.SocketSession.SendResponse(secret, 0, secret.Length); dataFrameReader = new WebSocketDataReader(previousReader); return true; }
private static void EventThreadMain(object state) { EventThreadState eventState = (EventThreadState)state; BlockingCollection <TelloCommand> queue = eventState.Queue; isActive = true; while (isActive) { TelloCommand command = null; try { command = queue.Take(); } catch (InvalidOperationException) { Thread.Sleep(100); } if (command == null) { continue; } ICommandReader reader = commandReaders.SingleOrDefault(t => t.Id == command.Id); IEventCommand evt = reader?.Read(command); if (evt == null) { continue; } } }
public AsyncSocketSession(Socket client, ICommandReader <TCommandInfo> initialCommandReader) : base(client, initialCommandReader) { }
public Controller(IView view, ICommandReader reader, IRobotCleanerServices robotCleanerServices) { _view = view; _reader = reader; _robotCleanerServices = robotCleanerServices; }
public bool GetButtonUp(string nameButton, ICommandReader c) { return(c.GetButtonUp(KeyStringDict.GetIntForString(nameButton))); }
public bool Handshake(IWebSocketSession session, WebSocketReaderBase previousReader, out ICommandReader <IWebSocketFragment> dataFrameReader) { dataFrameReader = null; session.SocketSession.SendResponse(m_SwitchResponse, 0, m_SwitchResponse.Length); return(true); }
public Controller(IView view, ICommandReader reader, IRobot robot) { _view = view; _reader = reader; _robot = robot; }
public override bool Handshake(IWebSocketSession session, WebSocketReaderBase previousReader, out ICommandReader <IWebSocketFragment> dataFrameReader) { if (!VersionTag.Equals(session.SecWebSocketVersion) && NextProcessor != null) { return(NextProcessor.Handshake(session, previousReader, out dataFrameReader)); } dataFrameReader = null; session.ProtocolProcessor = this; var secWebSocketKey = session.Items.GetValue <string>(WebSocketConstant.SecWebSocketKey, string.Empty); if (string.IsNullOrEmpty(secWebSocketKey)) { return(false); } var responseBuilder = new StringBuilder(); string secKeyAccept = string.Empty; try { secKeyAccept = Convert.ToBase64String(SHA1.Create().ComputeHash(Encoding.ASCII.GetBytes(secWebSocketKey + m_Magic))); } catch (Exception) { return(false); } responseBuilder.AppendWithCrCf(WebSocketConstant.ResponseHeadLine10); responseBuilder.AppendWithCrCf(WebSocketConstant.ResponseUpgradeLine); responseBuilder.AppendWithCrCf(WebSocketConstant.ResponseConnectionLine); responseBuilder.AppendFormatWithCrCf(WebSocketConstant.ResponseAcceptLine, secKeyAccept); var subProtocol = session.GetAvailableSubProtocol(session.Items.GetValue <string>(WebSocketConstant.SecWebSocketProtocol, string.Empty)); if (!string.IsNullOrEmpty(subProtocol)) { responseBuilder.AppendFormatWithCrCf(WebSocketConstant.ResponseProtocolLine, subProtocol); } responseBuilder.AppendWithCrCf(); session.SocketSession.SendResponse(responseBuilder.ToString()); dataFrameReader = new WebSocketDataFrameReader(session.AppServer); return(true); }
public override bool Handshake(IWebSocketSession session, WebSocketReaderBase previousReader, out ICommandReader <IWebSocketFragment> dataFrameReader) { var secKey1 = session.Items.GetValue <string>(WebSocketConstant.SecWebSocketKey1, string.Empty); var secKey2 = session.Items.GetValue <string>(WebSocketConstant.SecWebSocketKey2, string.Empty); if (string.IsNullOrEmpty(secKey1) && string.IsNullOrEmpty(secKey2) && NextProcessor != null) { return(NextProcessor.Handshake(session, previousReader, out dataFrameReader)); } session.ProtocolProcessor = this; var secKey3 = session.Items.GetValue <byte[]>(WebSocketConstant.SecWebSocketKey3, m_ZeroKeyBytes); var responseBuilder = new StringBuilder(); responseBuilder.AppendWithCrCf(WebSocketConstant.ResponseHeadLine00); responseBuilder.AppendWithCrCf(WebSocketConstant.ResponseUpgradeLine); responseBuilder.AppendWithCrCf(WebSocketConstant.ResponseConnectionLine); if (!string.IsNullOrEmpty(session.Origin)) { Extensions.AppendFormatWithCrCf(responseBuilder, WebSocketConstant.ResponseOriginLine, session.Origin); } Extensions.AppendFormatWithCrCf(responseBuilder, WebSocketConstant.ResponseLocationLine, session.UriScheme, session.Host, session.Path); var subProtocol = session.GetAvailableSubProtocol(session.Items.GetValue <string>(WebSocketConstant.SecWebSocketProtocol, string.Empty)); if (!string.IsNullOrEmpty(subProtocol)) { Extensions.AppendFormatWithCrCf(responseBuilder, WebSocketConstant.ResponseProtocolLine, subProtocol); } responseBuilder.AppendWithCrCf(); session.SocketSession.SendResponse(responseBuilder.ToString()); //Encrypt message byte[] secret = GetResponseSecurityKey(secKey1, secKey2, secKey3); session.SocketSession.SendResponse(secret, 0, secret.Length); dataFrameReader = new WebSocketDataReader(previousReader); return(true); }
public abstract bool Handshake(IWebSocketSession session, WebSocketReaderBase previousReader, out ICommandReader <IWebSocketFragment> dataFrameReader);
public GameCommandDataReader(ICommandReader <BinaryCommandInfo> previousCommandReader) : base(previousCommandReader.AppServer) { PrevCommandReader = previousCommandReader; }
public ConnectReceive(ICommandWriter writer, ICommandReader reader) { _writer = writer; _reader = reader; }
/// <summary> /// Sets the next command reader for next round receiving. /// </summary> /// <param name="nextCommandReader">The next command reader.</param> public void SetNextCommandReader(ICommandReader <TCommandInfo> nextCommandReader) { ((IAppSession <TCommandInfo>) this).NextCommandReader = nextCommandReader; }
public SocketSession(string sessionKey, ICommandReader <TCommandInfo> commandReader) { this.IdentityKey = sessionKey; CommandReader = commandReader; }
public NetworkInterface(ICommandReader reader, ICommandWriter writer) { _reader = reader; _writer = writer; }
public SocketSession(ICommandReader <TCommandInfo> commandReader) { CommandReader = commandReader; }
public bool Handshake(IWebSocketSession session, WebSocketReaderBase previousReader, out ICommandReader<IWebSocketFragment> dataFrameReader) { dataFrameReader = null; session.SocketSession.SendResponse(m_SwitchResponse, 0, m_SwitchResponse.Length); return true; }
public abstract bool Handshake(IWebSocketSession session, WebSocketReaderBase previousReader, out ICommandReader<IWebSocketFragment> dataFrameReader);
public BinaryCommandInfo FindCommandInfo(IAppSession session, byte[] readBuffer, int offset, int length, bool isReusableBuffer, out int left) { NextCommandReader = this; left = 0; if (currentReceived + length <= buffer.Length) { Array.Copy(readBuffer, offset, buffer, currentReceived, length); currentReceived += length; if (currentReceived < buffer.Length) { return(null); } } else { Array.Copy(readBuffer, offset, buffer, currentReceived, buffer.Length - currentReceived); left = length - (buffer.Length - currentReceived); } currentReceived = 0; cmdId = BitConverter.ToInt32(buffer, 0); dataLen = BitConverter.ToInt32(buffer, 4); BinaryCommandInfo cmdInfo; if (dataLen > 0) { DataReader.CommandId = cmdId; DataReader.DataLength = dataLen; cmdInfo = DataReader.FindCommandInfo(session, readBuffer, offset + (length - left), left, isReusableBuffer, out left); NextCommandReader = DataReader.NextCommandReader; } else { cmdInfo = new BinaryCommandInfo(cmdId.ToString(), null); } return(cmdInfo); #region UNDONE ProtocolBuffer /* * switch (currentIndex) * { * case 0: * tmp = readBuffer[offset]; * if (tmp < 128) * cmdId = tmp; * else * cmdId = tmp & 0x7f; * * break; * case 1: * tmp = readBuffer[offset + 1]; * if (tmp < 128) * cmdId |= tmp << 7; * else * cmdId |= (tmp & 0x7f) << 7; * * break; * case 2: * tmp = readBuffer[offset + 2]; * if (tmp < 128) * cmdId |= tmp << 14; * else * cmdId |= (tmp & 0x7f) << 14; * * break; * case 3: * tmp = readBuffer[offset + 3]; * if (tmp < 128) * cmdId |= tmp << 21; * else * cmdId |= (tmp & 0x7f) << 21; * * break; * case 4: * tmp = readBuffer[offset + 4]; * if (tmp < 128) * cmdId |= tmp << 28; * else * { * AppServer.Logger.LogError(session, "Invalid ProtocolBuffer Data - Malformed Varint"); * session.Close(CloseReason.ServerClosing); * } * * break; * } */ #endregion }