Mercurial > projects > dreactor
diff dreactor/protocol/IProvider.d @ 13:8c9b1276f623 default tip
bug fixes
author | rick@minifunk |
---|---|
date | Sat, 20 Sep 2008 18:33:11 -0400 |
parents | d6a3cfe7c3de |
children |
line wrap: on
line diff
--- a/dreactor/protocol/IProvider.d Wed Aug 27 00:47:33 2008 -0400 +++ b/dreactor/protocol/IProvider.d Sat Sep 20 18:33:11 2008 -0400 @@ -1,29 +1,40 @@ module dreactor.protocol.IProvider; -class Message +import tango.io.selector.model.ISelector; +import tango.io.device.Conduit; + +struct Message { public + int type; int info; - Object payload; - this (Object buf, int t, int e) + void* payload; + int from; + bool valid; + + static Message opCall(void* buf, int t, int e, int f = 0) { - type = t; - info = e; - payload = buf; + Message m; + m.type = t; + m.info = e; + m.from = f; + m.payload = buf; + m.valid = true; + return m; } } interface IProvider { - Message handleRead(Conduit c); - Message handleWrite(Conduit c); - Message handleError(Conduit c); - Message handleConnect(Conduit c); - Message handleDisconnect(Conduit c); - abstract void send(char []); - + Message handleRead(); + Message handleWrite(); + Message handleError(); + Message handleConnect(); + Message handleDisconnect(); + void send(char []); + void setRegisterFunc(bool delegate (Event)); Conduit getConduit(); - int getEvents(); - void setEvents(); + Event getEvents(); + void setEvents(Event e); }