示例#1
0
    } // 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)
示例#2
0
// 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
    }
示例#3
0
    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);
    }
示例#4
0
    // 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
    }
示例#5
0
 public AppClass()
 {
     _fsm           = new AppClassContext(this);
     _is_acceptable = false;
     _abort         = false;
 }
示例#6
0
 public AppClass()
 {
     _fsm = new AppClassContext(this);
     _is_acceptable = false;
     _abort = false;
 }