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);
 }