コード例 #1
0
ファイル: Global.cs プロジェクト: play3577/godwhale
        /// <summary>
        /// ボナンザの設定を行います。
        /// </summary>
        static void ResetBonanza(AbortReason?reason)
        {
            if (reason == AbortReason.Aborted ||
                reason == AbortReason.FatalError)
            {
                Bonanza = null;
                return;
            }

            // 初回起動時とエラー時はボナンザを起動します。
            var bonanza = new Bonanza();

            bonanza.PropertyChanged += (_, __) => WPFUtil.InvalidateCommand();
            bonanza.Aborted         += (_, e) => ResetBonanza(e.Reason);

            Bonanza = bonanza;
            MainViewModel.SetBonanza(bonanza);
            ShogiModel.SetBonanza(bonanza);

            // オブジェクト設定後に初期化します。
            bonanza.Initialize(ClientFileName);

            // UIをすべて更新します。
            WPFUtil.InvalidateCommand();

            // エラー時は自動的に再接続に行きます。
            if (reason == AbortReason.Error)
            {
                Commands.ExecuteConnect();
            }
        }
コード例 #2
0
ファイル: Global.cs プロジェクト: play3577/godwhale
 /// <summary>
 /// 終了処理を行います。
 /// </summary>
 public static void Quit()
 {
     if (Bonanza != null)
     {
         Bonanza.Abort(AbortReason.Aborted, 0);
         Bonanza = null;
     }
 }
コード例 #3
0
        /// <summary>
        /// ボナンザを設定します。
        /// </summary>
        public void SetBonanza(Bonanza bonanza)
        {
            if (this.bonanza != null)
            {
                this.RemoveDependModel(this.bonanza);
                this.bonanza = null;
            }

            bonanza.CommandSent += (sender, e) =>
                                   AppendBonanzaLog(e.Command, true);
            bonanza.CommandReceived += (sender, e) =>
                                       AppendBonanzaLog(e.Command, false);
            bonanza.ErrorReceived += (sender, e) =>
                                     AppendBonanzaLog(e.Command, null);

            this.bonanza = bonanza;
            this.AddDependModel(bonanza);
        }
コード例 #4
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public MainViewModel()
        {
            if (string.IsNullOrEmpty(Name))
            {
                Name = "meijin_" + MathEx.RandInt(0, 1000);
            }

            ThreadNumMaximum = DeviceInventory.CPUCount;
            if (ThreadNum == 0)
            {
                ThreadNum = Math.Max(1, ThreadNumMaximum - 2);
            }

            var rawMemSizeList = Bonanza.MemorySizeList(0.5).ToList();

            MemSizeList = rawMemSizeList.Take(7).ToList();
            if (HashMemSize == 0)
            {
                var index = MathEx.Between(0, 6, rawMemSizeList.Count - 2);
                HashMemSize = rawMemSizeList[index].HashValue;
            }

            this.AddDependModel(Global.Settings);
        }
コード例 #5
0
ファイル: Global.cs プロジェクト: play3577/godwhale
        /// <summary>
        /// ボナンザの設定を行います。
        /// </summary>
        static void ResetBonanza(AbortReason?reason)
        {
            if (reason == AbortReason.Aborted ||
                reason == AbortReason.FatalError)
            {
                Bonanza = null;
                return;
            }

            // 初回起動時とエラー時はボナンザを起動します。
            var bonanza = new Bonanza();

            bonanza.PropertyChanged += (_, __) => WPFUtil.InvalidateCommand();
            bonanza.Aborted         += (_, e) => ResetBonanza(e.Reason);

            Bonanza = bonanza;
            MainViewModel.SetBonanza(bonanza);

            // オブジェクト設定後に初期化します。
            bonanza.Initialize("bonaster.exe");

            // UIをすべて更新します。
            WPFUtil.InvalidateCommand();
        }
コード例 #6
0
ファイル: ShogiModel.cs プロジェクト: play3577/godwhale
 /// <summary>
 /// ボナンザを設定します。
 /// </summary>
 public void SetBonanza(Bonanza bonanza)
 {
     bonanza.CommandReceived += bonanza_ReceivedCommand;
 }