Пример #1
0
 public SettingsWindow(Settings config)
 {
     Config      = config;
     DataContext = Config;
     InitializeComponent();
     OptionsFrame.Navigate(new GeneralSettings(Config));
 }
        /// <inheritdoc />
        public override void Initialize()
        {
            Trace.Listeners.Clear();
            Trace.Listeners.Add(new AimpTraceListener(Player.Core));
            var optionsForm = new OptionsFrame(Player);

            Player.Core.RegisterExtension(optionsForm);
        }
Пример #3
0
 private void RegisterOptions()
 {
     try
     {
         var optionsFrame = new OptionsFrame();
         Core.RegisterExtension <IAIMPServiceOptionsDialog>(optionsFrame);
     }
     catch (Exception ex)
     {
         Trace.WriteLine($"Cannot register options frame: {ex}");
         throw;
     }
 }
Пример #4
0
        public static void Main()
        {
            ResetBuffer();
            Console.CursorVisible = false;
            IMainFrame       mainFrame          = new MainFrame();
            IMainMenu        mainMenu           = new MainMenu();
            IStatusFrame     monsterStatusFrame = new MonsterStatusFrame();
            IOptionsFrame    optionsFrame       = new OptionsFrame();
            IStatusFrame     statusFrame        = new StatusFrame();
            IMenuHandler     menuHandler        = new MenuHandler(mainMenu, mainFrame, optionsFrame, statusFrame, monsterStatusFrame);
            IMonsterDatabase monsterDatabase    = new MonsterDatabase();
            IAreaDatabase    areaDatabase       = new AreaDatabase();
            IAIDatabase      aiDatabase         = new AIDatabase();
            IEngine          engine             = new Engine(menuHandler, monsterDatabase, areaDatabase, aiDatabase);

            engine.Run();
        }
Пример #5
0
 private void ChartCategory(object sender, RoutedEventArgs e)
 {
     OptionsFrame.Navigate(new ChartSettings(Config));
 }
Пример #6
0
 private void GeneralCategory(object sender, RoutedEventArgs e)
 {
     OptionsFrame.Navigate(new GeneralSettings(Config));
 }
Пример #7
0
        /// <summary>
        ///   Opens the connection
        /// </summary>
        private async Task OpenAsyncInternal(Logger logger)
        {
            //switch state to connecting if not done so
            int state = Interlocked.CompareExchange(ref _connectionState, 1, 0);

            if (state == 1)
            {
                return;
            }

            if (state == 2)
            {
                throw new ObjectDisposedException("Connection disposed before opening!");
            }

            try
            {
                //create TCP connection
                _client = new TcpClient();
                await _client.ConnectAsync(_address, _cluster.Config.Port).ConfigureAwait(false);

                _writeStream = _client.GetStream();
                _readStream  = _client.GetStream();

                logger.LogVerbose("TCP connection to {0} is opened", Address);

                //start readloop
                StartReadingAsync();

                //get compression option
                _allowCompression = false; //assume false unless
                if (_cluster.Config.AllowCompression)
                {
                    //check wether compression is supported by getting compression options from server
                    var options   = new OptionsFrame();
                    var supported =
                        await SendRequestAsync(options, logger, 1, true).ConfigureAwait(false) as SupportedFrame;

                    if (supported == null)
                    {
                        throw new ProtocolException(0, "Expected Supported frame not received");
                    }

                    IList <string> compressionOptions;
                    //check if options contain compression
                    if (supported.SupportedOptions.TryGetValue("COMPRESSION", out compressionOptions))
                    {
                        //check wether snappy is supported
                        _allowCompression = compressionOptions.Contains("snappy");
                    }

                    //dispose supported frame
                    supported.Dispose();
                }

                //submit startup frame
                var startup = new StartupFrame(_cluster.Config.CqlVersion);
                if (_allowCompression)
                {
                    logger.LogVerbose("Enabling Snappy Compression.");
                    startup.Options["COMPRESSION"] = "snappy";
                }

                Frame response = await SendRequestAsync(startup, logger, 1, true).ConfigureAwait(false);

                //authenticate if required
                var auth = response as AuthenticateFrame;
                if (auth != null)
                {
                    logger.LogVerbose("Authentication requested, attempting to provide credentials", Address);

                    //check if _username is actually set
                    if (_cluster.Config.Username == null || _cluster.Config.Password == null)
                    {
                        throw new UnauthorizedException("No credentials provided");
                    }

                    //dispose AuthenticateFrame
                    response.Dispose();

                    var cred = new CredentialsFrame(_cluster.Config.Username, _cluster.Config.Password);
                    response = await SendRequestAsync(cred, logger, 1, true).ConfigureAwait(false);
                }

                //check if ready
                if (!(response is ReadyFrame))
                {
                    throw new ProtocolException(0, "Expected Ready frame not received");
                }

                //dispose ready frame
                response.Dispose();

                using (logger.ThreadBinding())
                {
                    if (OnConnectionChange != null)
                    {
                        OnConnectionChange(this, new ConnectionChangeEvent {
                            Connected = true
                        });
                    }
                }

                logger.LogInfo("{0} is opened and ready for use", this);
            }
            catch (Exception ex)
            {
                using (logger.ThreadBinding())
                {
                    Dispose(true, ex);
                    throw;
                }
            }
        }