Hello.

Thu, Jun 09, 2011 at 01:40:51PM -0500, Antoine Latter wrote
> On Thu, Jun 9, 2011 at 3:14 PM, Alexander V Vershilov
> <[email protected]> wrote:
> > Hello.
> >
> > I'm writing a small tcp server with that can handle connections and
> > answer by rules writen in a small script that can be interpreted by server.
> > For this purpose I've written an interpreter that has type
> >
> >  ErrorT MyError (StateT ScriptState IO)
> >
> > so I can call "native" IO function in that script, and define new one.
> >  I can run this script with runState (runErrorT (...)) oldState.
> >
> > But there is one problem: in script i should be able to call functions that
> > will stop script interpretation and wait for some server event. To continue
> > interpretation.
> >
> 
> What do you mean by 'server event'? How do you plan on representing
> these events?
> 

I'm using term server event for next thing when server get some message from
client it generate 'server event' i.e. some action or save this event in event 
queue. And then forces this queue to act.

So simplified workflow looks like:
  client                 server                             interpretator
1 *sends some messages -> save parsed messages in queue 
2 *send 'END' message  -> forces functions F(message) from 
                          queue
3                        *some F is to call interpretator  -> run script
4                                                          <-  *call server 
                         <- send messages to client           callback
                         goto step 2                       <- *finish script

* - stand for event initiator. Here everything can be done in a straitforward 
way.

What I want to do and do know a good way for:
client        server          -> run script
                                ...
                             <- call 'wait' command
          <-> *goto 1
...
send 'END' -> continue script ->

Sorry if I do not answer on your question directly.
  
--
Best regards,
  Alexander V Vershilov

> > Can smb give an advice what is the best way to do it?
> >
> > --
> > Best regards
> >  Alexander V Vershilov
> >

Attachment: pgp33tESO3T2E.pgp
Description: PGP signature

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to