I'll like to see your implementation to see what i can extract.
i just wonder if i should write it based on xmi as you did or
http://www.w3.org/TR/scxml/rolling my own... on the surface it sounds feasible but it really is a complex and time consuming problem.
how is hierarchical statemachines supported?
how do you move to the next state ... machine.Send(.....input parameters) or is it event based? [i'll like to see an example of an event based one]
how do you support gaurds. so if you received the correct input or event you won't go to the next state unless the gaurd is satisifed. (should a gaurd be wrapped in its own object)
Here are some problems in rolling my own:
although i can implement the template pattern:
where my base defines:
State_Entry
State_Do
State_Exit
Send(...new input parameteres...) ... might be different for each state machine "params object[] values"?
here is an earlier statemachine i've done
var statemachine = new Parser.RFC1867StateMachine("--" + match.Groups["Boundary"].Value, config);
var iterator = new Parser.ByteIterator(request, config.IByteIteratorXml);
statemachine.Execute();
for (Byte b = iterator.First(); !iterator.IsDone(); b = iterator.Next())
{
statemachine.Send(b);
}
statemachine.Terminate();
i'll look around .. if i can't find anything then i guess i'm left to hack another manually.
- lm