public ScriptController(IScriptRunner runner, ScriptRunMode mode = ScriptRunMode.OneShot) { runner_ = runner; runner_.StatusChanged += Runner_StatusChanged; runner_.MessageAppended += Runner_MessageAppended; runner_.CommentUpdated += Runner_CommentUpdated; Mode = mode; }
public static ScriptController Register(string script_path, ScriptRunMode mode) { if (script_path == null) { return(null); } /* ファイルが存在しなければ無視 */ if (!File.Exists(script_path)) { return(null); } var controller = (ScriptFileController)null; var add_state = false; var update_state = false; lock (controller_list_sync_) { /* 登録リストから検索 */ controller = controller_list_.Find(script => script.ScriptPath == script_path); /* 未登録の場合は新規登録 */ if (controller == null) { controller = new ScriptFileController(script_path); controller_list_.Add(controller); add_state = true; } } /* モード変更 */ if ((controller != null) && (controller.Mode != mode)) { controller.Mode = mode; update_state = true; } /* イベント */ if (add_state) { ControllerListUpdated?.Invoke(); } else if (update_state) { ControllerStatusUpdated?.Invoke(controller); } return(controller); }