예제 #1
0
        public static bool Initialise(Data.PackageData a_data, IConsoleHandler a_handler, IPerformanceTracker a_tracker, IDisplayHandler a_displayHandler)
        {
            s_data = a_data ?? throw new NullReferenceException("KDebug:: DEBUG DATA NULL");

            bool bResult = false;

            // Init Log
            bResult = InitialiseLog();
            if (bResult == false)
            {
                Reset();
                return(false);
            }
            // Init Console
            s_consoleImpl = new ConsoleImpl(a_handler, s_data.ConsoleData);
            s_consoleImpl.OnAwake(s_data.ConsoleData);

            // Init Debug Display Manager
            s_displayManagerImpl = new DebugDisplayManagerImpl(a_data.DisplayData, a_displayHandler);
            s_displayManagerImpl.OnAwake();

            Tracker = a_tracker;
            Tracker.OnAwake();
            s_Initialised = true;
            return(true);
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="serverContext">Server context</param>
 /// <param name="blockchain">Blockchain</param>
 /// <param name="blockRepository">The Block Model.</param>
 /// <param name="transactionModel"></param>
 /// <param name="assetModel"></param>
 /// <param name="blockchainContext">The block chain context class.</param>
 /// <param name="blockPool">Block pool</param>
 /// <param name="blockSigner">Block signer</param>
 /// <param name="blockPersister">Block persister</param>
 /// <param name="transactionPool">Transaction Pool</param>
 /// <param name="consoleHandler">Console handler</param>
 public PromptBlockchainController(
     IServerContext serverContext,
     IBlockchain blockchain,
     IBlockRepository blockRepository,
     ITransactionRepository transactionModel,
     IAssetRepository assetModel,
     IBlockchainContext blockchainContext,
     IBlockPool blockPool,
     IBlockPersister blockPersister,
     ISigner <Block> blockSigner,
     ITransactionPool transactionPool,
     IConsoleHandler consoleHandler)
 {
     _serverContext     = serverContext;
     _blockchain        = blockchain;
     _blockRepository   = blockRepository;
     _blockSigner       = blockSigner;
     _blockPersister    = blockPersister;
     _transactionModel  = transactionModel;
     _assetModel        = assetModel;
     _blockchainContext = blockchainContext;
     _blockPool         = blockPool;
     _transactionPool   = transactionPool;
     _consoleHandler    = consoleHandler;
 }
예제 #3
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="rpc">Rpc</param>
 /// <param name="blockSigner">Block signer</param>
 /// <param name="txSigner">Tx signer</param>
 /// <param name="consoleHandler">Console handler</param>
 public PromptRpcController(IRpcServer rpc, ISigner <BlockHeader> blockSigner, ISigner <Transaction> txSigner, IConsoleHandler consoleHandler)
 {
     _rpc            = rpc;
     _blockSigner    = blockSigner;
     _txSigner       = txSigner;
     _consoleHandler = consoleHandler;
 }
예제 #4
0
        public static void Load(this ConsoleComponent self)
        {
            self.Handlers.Clear();

            HashSet <Type> types = EventSystem.Instance.GetTypes(typeof(ConsoleHandlerAttribute));

            foreach (Type type in types)
            {
                object[] attrs = type.GetCustomAttributes(typeof(ConsoleHandlerAttribute), false);
                if (attrs.Length == 0)
                {
                    continue;
                }

                ConsoleHandlerAttribute consoleHandlerAttribute = (ConsoleHandlerAttribute)attrs[0];

                object obj = Activator.CreateInstance(type);

                IConsoleHandler iConsoleHandler = obj as IConsoleHandler;
                if (iConsoleHandler == null)
                {
                    throw new Exception($"ConsoleHandler handler not inherit IConsoleHandler class: {obj.GetType().FullName}");
                }
                self.Handlers.Add(consoleHandlerAttribute.Mode, iConsoleHandler);
            }
        }
예제 #5
0
 public LogParser(IConsoleHandler consoleHandler, ILogFormatMapper logFormatMapper,
                  IOptions <LogConfiguration> logConfiguration)
 {
     _consoleHandler   = consoleHandler;
     _logFormatMapper  = logFormatMapper;
     _logConfiguration = logConfiguration.Value;
 }
예제 #6
0
 public StartBall(
     IBallFactory factory,
     IConsoleHandler console
     )
 {
     _factory = factory;
     _console = console;
 }
 public CmdLineExtension(IConsoleHandler consoleHandler)
 {
     if (consoleHandler == null)
     {
         throw new NullReferenceException();
     }
     ConsoleHandler = consoleHandler;
 }
예제 #8
0
        public ConsoleImpl(IConsoleHandler a_handler, ConsoleData a_data)
        {
            CommandLookup = new ConsoleCommandLookup(a_data.MaxCommands);
            s_Handler     = a_handler;

            s_ConsoleHistory = new KQueue <LogData>(a_data.MaxHistory);
            s_CommandHistory = new KQueue <ICommand>(a_data.MaxHistory);
            s_MaxHistory     = a_data.MaxHistory;
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="variables">Variables</param>
 /// <param name="consoleHandler">Console handler</param>
 public PromptUsabilityController
 (
     IPromptUserVariables variables,
     IConsoleHandler consoleHandler
 )
 {
     _variables      = variables;
     _consoleHandler = consoleHandler;
 }
 /// <summary>
 /// Init singleton console. You can access it through CmdLineExtension.Inst .
 /// </summary>
 /// <param name="consoleHandler">If null, will use default handler.</param>
 public static void Init(IConsoleHandler consoleHandler = null)
 {
     if (_inst != null)
     {
         throw new Exception("Console was inited before.");
     }
     _inst = new CmdLineExtension(
         consoleHandler ?? new DefaultConsoleHandler()
         );
 }
예제 #11
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="handler">Handler</param>
        /// <param name="value">Value</param>
        /// <param name="maxValue">Maximum value</param>
        public ConsolePercentWriter(IConsoleHandler handler, long value = 0, long maxValue = 100)
        {
            _lastFactor = -1;
            _handler    = handler;
            _handler.GetCursorPosition(out _x, out _y);

            MaxValue = maxValue;
            Value    = value;
            Invalidate();
        }
예제 #12
0
        private bool ExecuteCommand(string line)
        {
            string        command;
            List <string> args = new List <string>();

            int a = line.IndexOf(' ');

            if (a == -1)
            {
                a = line.Length;
            }

            command = line.Substring(0, a);
            line    = line.Remove(0, a);

            if (command.Length <= 0)
            {
                return(false);
            }

            IConsoleHandler Handler = null;

            if (!Instance.m_consoleHandlers.ContainsKey(command))
            {
                return(false);
            }

            Handler = Instance.m_consoleHandlers[command];

            string[] Args = line.Split(' ');

            foreach (string str in Args)
            {
                if (str.Length > 1 || (str.Length == 1 && str[0] != ' '))
                {
                    args.Add(str);
                }
            }

            var consoleHandlerAttribs = (ConsoleHandlerAttribute[])Handler.GetType().GetCustomAttributes(typeof(ConsoleHandlerAttribute), true);

            if (consoleHandlerAttribs[0].ArgCount != 0 && consoleHandlerAttribs[0].ArgCount > args.Count)
            {
                Log.Error("ConsoleMgr", "Invalid parameter count : " + args.Count + " / " + consoleHandlerAttribs[0].ArgCount);
            }
            else
            {
                if (!Handler.HandleCommand(command, args))
                {
                    Log.Error("ConsoleMgr", "Invalid command parameter !");
                }
            }

            return(true);
        }
예제 #13
0
 public ConsoleServicesLauncher(IProcessLauncher processLauncher,
                                IOutput output,
                                IConsoleHandler consoleHandler,
                                IServiceLauncherStatus status,
                                IThreadSleeper threadSleeper)
 {
     this.processLauncher = processLauncher;
     this.output          = output;
     this.consoleHandler  = consoleHandler;
     this.status          = status;
     this.threadSleeper   = threadSleeper;
 }
예제 #14
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="logBag">Log bag</param>
 /// <param name="logger">Logger</param>
 /// <param name="log">Log</param>
 /// <param name="vmFactory">VM Factory</param>
 /// <param name="consoleHandler">Console handler</param>
 public PromptDebugController
 (
     ILogBag logBag,
     Core.Logging.ILogger <Prompt> logger, ILoggerFactoryExtended log,
     IVMFactory vmFactory, IConsoleHandler consoleHandler
 )
 {
     _logs           = logBag;
     _log            = log;
     _logger         = logger;
     _vmFactory      = vmFactory;
     _consoleHandler = consoleHandler;
 }
예제 #15
0
파일: Prompt.cs 프로젝트: shargon/neo-sharp
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="controllers">Controllers</param>
        /// <param name="variables">Variables</param>
        /// <param name="logs">Logs</param>
        /// <param name="networkManager">Network manger</param>
        /// <param name="consoleHandler">Console handler</param>
        /// <param name="logger">Logger</param>
        /// <param name="blockchain">Blockchain</param>
        /// <param name="vmFactory">VM Factory</param>
        public Prompt
        (
            IEnumerable <IPromptController> controllers,
            IPromptUserVariables variables,
            ILogBag logs,
            INetworkManager networkManager,
            IConsoleHandler consoleHandler,
            Core.Logging.ILogger <Prompt> logger,
            IBlockchain blockchain
        )
        {
            _networkManager = networkManager;
            _consoleHandler = consoleHandler;
            _logger         = logger;
            _blockchain     = blockchain;
            _logs           = logs;
            _variables      = variables;

            // Get controllers

            _commandAutocompleteCache = new AutoCommandComplete();
            _commandCache             = new Dictionary <string[], PromptCommandAttribute>();
            _commandCache.Cache(this, _commandAutocompleteCache);

            foreach (var controller in controllers)
            {
                _commandCache.Cache(controller, _commandAutocompleteCache);
            }

            // Help autocomplete

            var ls = new List <string>();

            foreach (var keys in _commandCache.Keys)
            {
                foreach (var key in keys)
                {
                    if (_commandCache.TryGetValue(keys, out var value) && !ls.Contains(value.Command))
                    {
                        ls.Add(value.Command);
                    }
                }
            }

            CommandAutoCompleteAttribute.Availables = ls.OrderBy(u => u).ToArray();
        }
        public static string ReadJson(string jsonPrototypeString, IConsoleHandler consoleHandler)
        {
            try
            {
                File.WriteAllText(
                    jsonEditorFilePath,
                    jsonPrototypeString
                    );

                var process = TryStartProcess(jsonEditorFilePath);
                TryWaitForExit(process);
                string res;
                CommonHelpers.TryReadAllText(jsonEditorFilePath, out res, 120);
                return(res);
            }
            catch (Exception ex)
            {
                consoleHandler.WriteLine(
                    $"Was error '{ex.Message}' when try to use json editor. \nBut you can write json string as default.",
                    ConsoleColor.DarkRed
                    );
                consoleHandler.WriteLine("Or you can press enter to throw error upper.", ConsoleColor.DarkRed);
                if (!string.IsNullOrWhiteSpace(jsonPrototypeString))
                {
                    consoleHandler.WriteLine($"Prototype: {jsonPrototypeString}", ConsoleColor.DarkYellow);
                }
                consoleHandler.Write("Input json line: ", null);
                var res = consoleHandler.ReadLine();
                if (string.IsNullOrEmpty(res))
                {
                    throw;
                }
                else
                {
                    return(res);
                }
            }
        }
예제 #17
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="consoleHandler">Console handler</param>
 public PromptInvokesController(IConsoleHandler consoleHandler)
 {
     _consoleHandler = consoleHandler;
 }
예제 #18
0
 private void RegisterHandler(string command, IConsoleHandler Handler)
 {
     m_consoleHandlers.Add(command, Handler);
 }
예제 #19
0
 private void RegisterHandler(string command, IConsoleHandler Handler)
 {
     m_consoleHandlers.Add(command,Handler);
 }
예제 #20
0
 public Worker(INatsIntegration natsIntegration, IConsoleHandler consoleHandler)
 {
     _natsIntegration = natsIntegration;
     _consoleHandler  = consoleHandler;
 }
예제 #21
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="serverContext">Server context</param>
 /// <param name="networkManager">Network manages</param>
 /// <param name="consoleHandler">Console writer</param>
 public PromptNetworkController(IServerContext serverContext, INetworkManager networkManager, IConsoleHandler consoleHandler)
 {
     _serverContext  = serverContext;
     _networkManager = networkManager;
     _consoleHandler = consoleHandler;
 }
예제 #22
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="handler">Handler</param>
 public ConsoleInputState(IConsoleHandler handler)
 {
     _console = handler;
     GetCursorPosition();
 }
예제 #23
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="walletManager">Wallet manager</param>
 /// <param name="consoleHandler">Console handler</param>
 public PromptWalletController(IWalletManager walletManager, IConsoleHandler consoleHandler)
 {
     _walletManager  = walletManager;
     _consoleHandler = consoleHandler;
 }
예제 #24
0
 // ScoreBoard constructor
 public ScoreBoard(IConsoleHandler consoleHandler)
 {
     Matches             = new List <Match>();
     this.consoleHandler = consoleHandler;
 }
예제 #25
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="consoleHandler">Console handler</param>
 public PromptContractController(IConsoleHandler consoleHandler)
 {
     _consoleHandler = consoleHandler;
 }