<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>Hello Avery,<BR>
&nbsp;<BR>&gt; On 15/02/2008, Robert Rawlins &lt;robert_rawlins@hotmail.com&gt; wrote:<BR>&gt; &gt; I do startProcess()<BR>&gt; &gt; startProcess() calls back with processStarted()<BR>&gt; &gt; processStarted() then starts soSomthing()<BR>&gt; &gt; doSomthing calls back with somthingDone()<BR>&gt; &gt; somethingDone() then started doAnotherThing()<BR>&gt; &gt; doAnotherThing() calls back and starts doTheLastThing()<BR>&gt; &gt;<BR>&gt; &gt; Do you see what I mean? a link of function calls and callbacks which cause<BR>&gt; &gt; a chain reaction and progress the particular element of the application to<BR>&gt; &gt; go through its states.<BR>&gt; &gt; [...]<BR>&gt; &gt; After looking around this morning it would seem that a<BR>&gt; &gt; Finite State Machine is designed to manage this kind of process for me, is<BR>&gt; &gt; that correct?<BR>&gt; <BR>&gt; Actually, the process you described is already a finite state machine<BR>&gt; :) FSMs are really just a way of thinking about programs that go<BR>&gt; through a series of states. The math doesn't particularly help you<BR>&gt; implement one.<BR>&gt; <BR>&gt; I think what you might want are "continuations" or "coroutines." In<BR>&gt; C++, the WvStreams library contains a class called WvCont that does it<BR>&gt; very nicely: http://alumnit.ca/wvstreams/docs/wvcont_8h-source.html<BR>&gt; <BR>&gt; If you're using .net (mono / C#), I wrote a simple implementation of<BR>&gt; the same thing using (weirdly enough) .net iterators:<BR>&gt; http://www.advogato.org/person/apenwarr/diary/358.html<BR>&gt; <BR>&gt; You can do something similar with raw setjmp/longjmp, but I'm not sure<BR>&gt; you want to get into that :)<BR>&gt; <BR>&gt; Another option is to use blocking dbus method calls in a thread,<BR>&gt; although threads introduce their own set of problems.<BR>&gt; <BR>&gt; Have fun,<BR>&gt; <BR>&gt; Avery<BR>
&nbsp;<BR>
Thanks for the thorough explanation :-) This is all a new and alien concept to me, I come from a background in web development so the hole concept of automated applications and event driven models is very new to me.<BR>
&nbsp;<BR>
I see what you mean about my current process being an Finite State Machine of sorts, I've just been looking around at a few examples of creating an FSM class which you can implement into the application which contains a table of transactions and states and their associated methods. I cant really see any real benefit to me implementing one as the application seems to run just peachy as is, I was just interested to see how it might implement from a technical learning exercise point of view.<BR><BR>
Thanks for the suggestions Avery, I apprecaite it,<BR>
&nbsp;<BR>
Robert<BR><br /><hr />Sounds like? How many syllables? <a href='http://www.searchcharades.com' target='_new'>Guess and win prizes with Search Charades!</a></body>
</html>