/// <summary> /// 영상저장장치 그래프를 위한 쓰레드 /// </summary> private void ThreadDevice() { while (mg.CloseWindows == 0) { int errorCount = 0; lock (obj) { foreach (Device d in mg.GetDeiviceList()) { if (d.STATUS == Device.ERROR) { errorCount++; } } } SaveOp.SetVaule(errorCount, mg.CountDevice()); Thread.Sleep(1000); } }
public SaveManager(NodeEditorWindow w) { _window = w; _saveFSM = new StateMachine <SaveState>(); var noGraph = new StateMachine <SaveState> .State(SaveState.NoGraph); var tempGraph = new StateMachine <SaveState> .State(SaveState.TempGraph); var savedGraph = new StateMachine <SaveState> .State(SaveState.SavedGraph); _saveFSM.AddState(noGraph); _saveFSM.AddState(tempGraph); _saveFSM.AddState(savedGraph); // Actions to take when starting out on a window with no graph. _saveFSM.AddTransition(noGraph, tempGraph, isNewRequested, createNewOnto_Window_WithTempOrEmpty); _saveFSM.AddTransition(noGraph, savedGraph, isLoadRequested, loadOnto_EmptyWindow); // Actions to take when the window has a temp graph. _saveFSM.AddTransition(tempGraph, tempGraph, isNewRequested, createNewOnto_Window_WithTempOrEmpty); _saveFSM.AddTransition(tempGraph, savedGraph, isSaveOrSaveAsRequested, saveTempAs); _saveFSM.AddTransition(tempGraph, savedGraph, isLoadRequested, loadOnto_Window_WithTempgraph); // Actions to take when the window has a valid graph (already saved). _saveFSM.AddTransition(savedGraph, savedGraph, isSaveRequested, save); _saveFSM.AddTransition(savedGraph, savedGraph, isSaveAsRequested, saveCloneAs); _saveFSM.AddTransition(savedGraph, savedGraph, isLoadRequested, loadOnto_Window_WithSavedgraph); _saveFSM.AddTransition(savedGraph, tempGraph, isNewRequested, createNewOnto_Window_WithSavedgraph); // Consume the save operation even after the transition is made. _saveFSM.OnStateChangedEvent += () => { _saveOp = SaveOp.None; }; InitState(); NodeConnection.OnConnectionCreated -= saveConnection; NodeConnection.OnConnectionCreated += saveConnection; }
public BonsaiSaveManager(BonsaiWindow w) { _window = w; _saveFSM = new StateMachine <SaveState>(); var noTree = new StateMachine <SaveState> .State(SaveState.NoTree); var tempTree = new StateMachine <SaveState> .State(SaveState.TempTree); var savedTree = new StateMachine <SaveState> .State(SaveState.SavedTree); _saveFSM.AddState(noTree); _saveFSM.AddState(tempTree); _saveFSM.AddState(savedTree); // Actions to take when starting out on a window with no canvas. _saveFSM.AddTransition(noTree, tempTree, isNewRequested, createNewOnto_Window_WithTempOrEmpty); _saveFSM.AddTransition(noTree, savedTree, isLoadRequested, loadOnto_EmptyWindow); // Actions to take when the window has a temp canvas. _saveFSM.AddTransition(tempTree, tempTree, isNewRequested, createNewOnto_Window_WithTempOrEmpty); _saveFSM.AddTransition(tempTree, savedTree, isSaveAsRequested, saveTempAs); _saveFSM.AddTransition(tempTree, savedTree, isLoadRequested, loadOnto_Window_WithTempCanvas); // Actions to take when the window has a valid canvas (already saved). _saveFSM.AddTransition(savedTree, savedTree, isSaveRequested, save); _saveFSM.AddTransition(savedTree, savedTree, isSaveAsRequested, saveCloneAs); _saveFSM.AddTransition(savedTree, savedTree, isLoadRequested, loadOnto_Window_WithSavedCanvas); _saveFSM.AddTransition(savedTree, tempTree, isNewRequested, createNewOnto_Window_WithSavedCanvas); // Consume the save operation even after the transition is made. _saveFSM.OnStateChangedEvent += () => { _saveOp = SaveOp.None; }; InitState(); }
internal void RequestSaveAs() { _saveOp = SaveOp.SaveAs; _saveFSM.Update(); }
internal void RequestLoad() { _saveOp = SaveOp.Load; _saveFSM.Update(); }
/* * These are the events that drive the save manager. * Whenever one of this is fired, the save operation is set * and the save FSM updated. * */ internal void RequestNew() { _saveOp = SaveOp.New; _saveFSM.Update(); }