/// <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(); } }
/// <summary> /// 終了処理を行います。 /// </summary> public static void Quit() { if (Bonanza != null) { Bonanza.Abort(AbortReason.Aborted, 0); Bonanza = null; } }
/// <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); }
/// <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); }
/// <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(); }
/// <summary> /// ボナンザを設定します。 /// </summary> public void SetBonanza(Bonanza bonanza) { bonanza.CommandReceived += bonanza_ReceivedCommand; }