} // end of Serialize() private AppClassContext Deserialize(string filename) { FileStream fstream = new FileStream(filename, FileMode.Open); BinaryFormatter formatter = new BinaryFormatter(); AppClassContext retval = null; System.Console.WriteLine("Deserializing FSM."); try { retval = (AppClassContext) formatter.Deserialize(fstream); retval.Owner = this; } finally { fstream.Close(); } return(retval); } // end of Deserialize(string)
// Member methods. public AppClass() { _fsm = new AppClassContext(this); _is_acceptable = false; // Define -REFLECT to output the states and // state transitions. #if REFLECT System.Console.WriteLine(); System.Console.WriteLine("States:"); foreach (AppClassContext.AppClassState state in _fsm.States) { System.Console.Write(" "); System.Console.WriteLine(state); System.Console.WriteLine(" Transitions:"); foreach (string transition in state.Transitions.Keys) { System.Console.Write(" "); System.Console.WriteLine(transition); } } #endif }
public bool CheckString(string str) { int i, Length; _fsm.EnterStartState(); for (i = 0, Length = str.Length; i < Length; ++i) { switch (str[i]) { case '0': _fsm.Zero(); break; case '1': _fsm.One(); break; case 'c': case 'C': // Define SERIAL to test FSM serialization. #if SERIAL try { string filename = "fsm_serial.dat"; Serialize(filename); _fsm = Deserialize(filename); } catch (Exception ex) { System.Console.WriteLine("FSM serialization failure."); System.Console.WriteLine(ex.StackTrace); } #endif _fsm.C(); break; default: _fsm.Unknown(); break; } } _fsm.EOS(); return(_is_acceptable); }
public AppClass() { _fsm = new AppClassContext(this); _is_acceptable = false; _abort = false; }