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