コード例 #1
0
 /// <summary>
 /// Create console user interface.
 /// </summary>
 public ConsoleUI()
 {
     _gameSelector  = new ConsoleGameSelector();
     _gameView      = new ConsoleView();
     _commandReader = new ConsoleCommandReader();
     _sizeReader    = new ConsoleSizeReader();
 }
コード例 #2
0
        public static IEngine Initialise(ICommandReader reader, ILogger loger)
        {
            if (SingleInstance == null)
            {
                SingleInstance = new GameEngine(reader, loger);
            }

            return(SingleInstance);
        }
コード例 #3
0
 /// <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;
 }
コード例 #4
0
ファイル: Rover.cs プロジェクト: smohite04/RoverMotionControl
        public void  SetCommandReader(ICommandReader commandReader)
        {
            if (commandReader == null)
            {
                _commandReaderField = new CommandReader();
            }

            _commandReaderField = commandReader;
        }
コード例 #5
0
ファイル: Worker.cs プロジェクト: savamura/lightSwitcher
 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));
 }
コード例 #6
0
ファイル: UdpSocketServer.cs プロジェクト: sandeep526/NewUG12
 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);
     }
 }
コード例 #7
0
        public Rover(IRoverStateMachine stateMachine, ICommandReader commandReader,
                     ICommandStrategiesFactory commandStrategiesFactory, ILogger logger)
        {
            StateMachine              = stateMachine;
            _commandReader            = commandReader;
            _commandStrategiesFactory = commandStrategiesFactory;
            _logger = logger;

            CurrentVector = new Vector(InitialRoverDirection, InitialRoverPosition);
        }
コード例 #8
0
 public DealershipEngine(
     ICommandReader commandReader,
     ICommandProcessor commandProcessor,
     IReportPrinter reportPrinter,
     IUserService userService)
 {
     this.commandReader    = commandReader;
     this.commandProcessor = commandProcessor;
     this.reportPrinter    = reportPrinter;
     this.userService      = userService;
 }
コード例 #9
0
ファイル: DroneIo.cs プロジェクト: jakob-lind/tello.net
        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);
        }
コード例 #10
0
        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;
        }
コード例 #11
0
        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;
        }
コード例 #12
0
        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;
        }
コード例 #13
0
ファイル: Program.cs プロジェクト: RajAdittan/population.io
        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.");
        }
コード例 #14
0
ファイル: Rover.cs プロジェクト: Rajkatie/Mars-Rover
        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();
        }
コード例 #15
0
        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;
        }
コード例 #16
0
        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>();
        }
コード例 #17
0
        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;
        }
コード例 #18
0
ファイル: DroneIo.cs プロジェクト: jakob-lind/tello.net
        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;
                }
            }
        }
コード例 #19
0
 public AsyncSocketSession(Socket client, ICommandReader <TCommandInfo> initialCommandReader)
     : base(client, initialCommandReader)
 {
 }
コード例 #20
0
ファイル: Controller.cs プロジェクト: tcoelho80/RobotCleaner
 public Controller(IView view, ICommandReader reader, IRobotCleanerServices robotCleanerServices)
 {
     _view   = view;
     _reader = reader;
     _robotCleanerServices = robotCleanerServices;
 }
コード例 #21
0
 public bool GetButtonUp(string nameButton, ICommandReader c)
 {
     return(c.GetButtonUp(KeyStringDict.GetIntForString(nameButton)));
 }
コード例 #22
0
 public bool Handshake(IWebSocketSession session, WebSocketReaderBase previousReader, out ICommandReader <IWebSocketFragment> dataFrameReader)
 {
     dataFrameReader = null;
     session.SocketSession.SendResponse(m_SwitchResponse, 0, m_SwitchResponse.Length);
     return(true);
 }
コード例 #23
0
 public Controller(IView view, ICommandReader reader, IRobot robot)
 {
     _view = view;
     _reader = reader;
     _robot = robot;
 }
コード例 #24
0
        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);
        }
コード例 #25
0
        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);
        }
コード例 #26
0
 public abstract bool Handshake(IWebSocketSession session, WebSocketReaderBase previousReader, out ICommandReader <IWebSocketFragment> dataFrameReader);
コード例 #27
0
 public GameCommandDataReader(ICommandReader <BinaryCommandInfo> previousCommandReader)
     : base(previousCommandReader.AppServer)
 {
     PrevCommandReader = previousCommandReader;
 }
コード例 #28
0
 public Controller(IView view, ICommandReader reader, IRobot robot)
 {
     _view   = view;
     _reader = reader;
     _robot  = robot;
 }
コード例 #29
0
ファイル: ConnectReceive.cs プロジェクト: 4058665/MQTT
 public ConnectReceive(ICommandWriter writer, ICommandReader reader)
 {
     _writer = writer;
     _reader = reader;
 }
コード例 #30
0
ファイル: AppSession.cs プロジェクト: sandeep526/NewUG12
 /// <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;
 }
コード例 #31
0
 public SocketSession(string sessionKey, ICommandReader <TCommandInfo> commandReader)
 {
     this.IdentityKey = sessionKey;
     CommandReader    = commandReader;
 }
コード例 #32
0
ファイル: NetworkInterface.cs プロジェクト: nivertech/MQTT
 public NetworkInterface(ICommandReader reader, ICommandWriter writer)
 {
     _reader = reader;
     _writer = writer;
 }
コード例 #33
0
 public SocketSession(ICommandReader <TCommandInfo> commandReader)
 {
     CommandReader = commandReader;
 }
コード例 #34
0
 public bool Handshake(IWebSocketSession session, WebSocketReaderBase previousReader, out ICommandReader<IWebSocketFragment> dataFrameReader)
 {
     dataFrameReader = null;
     session.SocketSession.SendResponse(m_SwitchResponse, 0, m_SwitchResponse.Length);
     return true;
 }
コード例 #35
0
 public abstract bool Handshake(IWebSocketSession session, WebSocketReaderBase previousReader, out ICommandReader<IWebSocketFragment> dataFrameReader);
コード例 #36
0
        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
        }
コード例 #37
0
ファイル: ConnectReceive.cs プロジェクト: hezlog/MQTT
 public ConnectReceive(ICommandWriter writer, ICommandReader reader)
 {
     _writer = writer;
     _reader = reader;
 }