Author: bdonlan
Date: 2005-05-22 14:43:24 -0400 (Sun, 22 May 2005)
New Revision: 708

Modified:
   trunk/clients/Javer2/src/haver/Callback.java
   trunk/clients/Javer2/src/haver/Client.java
Log:
Add interfaces for messaging.


Modified: trunk/clients/Javer2/src/haver/Callback.java
===================================================================
--- trunk/clients/Javer2/src/haver/Callback.java        2005-05-22 06:07:35 UTC 
(rev 707)
+++ trunk/clients/Javer2/src/haver/Callback.java        2005-05-22 18:43:24 UTC 
(rev 708)
@@ -71,4 +71,8 @@
      * @throws java.io.IOException 
      */
     public void onReceivedList(Client source, String channel, String 
namespace, String[] list) throws IOException {}
+    
+    public void onPublicMessage(Client source, String channel, String from, 
String type, String[] args) throws IOException {}
+    
+    public void onPrivateMessage(Client source, String from, String type, 
String[] args) throws IOException {}
 }

Modified: trunk/clients/Javer2/src/haver/Client.java
===================================================================
--- trunk/clients/Javer2/src/haver/Client.java  2005-05-22 06:07:35 UTC (rev 
707)
+++ trunk/clients/Javer2/src/haver/Client.java  2005-05-22 18:43:24 UTC (rev 
708)
@@ -219,6 +219,22 @@
                 c.onReceivedList(source, channel, namespace, list);
             }
         }
+
+        public void onPublicMessage(Client source, String channel, String 
from, String type, String[] args) throws IOException {
+            Iterator i = iterator();
+            while (i.hasNext()) {
+                Callback c = (Callback)i.next();
+                c.onPublicMessage(source, channel, from, type, args);
+            }
+        }
+
+        public void onPrivateMessage(Client source, String from, String type, 
String[] args) throws IOException {
+            Iterator i = iterator();
+            while (i.hasNext()) {
+                Callback c = (Callback)i.next();
+                c.onPrivateMessage(source, from, type, args);
+            }
+        }
       
     }
     
@@ -592,4 +608,41 @@
             }
         }
     }
+    
+    protected void handle_IN(String[] args) throws IOException {
+        if (args.length < 5) {
+            // XXX: exception?
+            System.err.println("Short IN message from haver server");
+            return;
+        }
+        String channel = args[1];
+        String from = args[2];
+        String type = args[3];
+        String[] margs = new String[args.length - 4];
+        System.arraycopy(args, 4, margs, 0, args.length - 4);
+        
+        dist.onPublicMessage(this, channel, from, type, margs);
+    }
+    
+    public void sendPublicMessage(String channel, String type, String[] margs) 
{
+        String[] cmd = new String[margs.length + 3];
+        cmd[0] = "IN";
+        cmd[1] = channel;
+        cmd[2] = type;
+        System.arraycopy(margs, 0, cmd, 3, margs.length);
+    }
+    
+    protected void handle_FROM(String[] args) throws IOException {
+        if (args.length < 2) {
+            // XXX: exception?
+            System.err.println("Short FROM message from haver server");
+            return;
+        }
+        String user = args[0];
+        String type = args[1];
+        String margs[] = new String[args.length - 2];
+        System.arraycopy(args, 2, margs, 0, args.length - 2);
+        
+        dist.onPrivateMessage(this, user, type, margs);
+    }
 }


Reply via email to