aboutsummaryrefslogtreecommitdiff
path: root/src/Probe.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Probe.java')
-rw-r--r--src/Probe.java77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/Probe.java b/src/Probe.java
new file mode 100644
index 0000000..6218e03
--- /dev/null
+++ b/src/Probe.java
@@ -0,0 +1,77 @@
+package fr.dgac.ivy ;
+import gnu.getopt.Getopt;
+import java.io.*;
+
+/**
+ * terminal implementation in java of the ivyprobe.
+ * For a graphical version, see TestIvySwing
+ * @see fr.dgac.ivy.TestIvySwing
+ * @author Yannick Jestin
+ * @author <a href="http://www.tls.cena.fr/products/ivy/">http://www.tls.cena.fr/products/ivy/</a>
+ */
+class Probe implements IvyApplicationListener, IvyMessageListener {
+
+ public static void main(String[] args) {
+ Probe p = new Probe();
+ Getopt opt = new Getopt("Probe",args,"b:d");
+ int c;
+ String domain=Ivy.DEFAULT_DOMAIN;
+ while ((c = opt.getopt()) != -1) switch (c) {
+ case 'b':
+ domain=opt.getOptarg();
+ break;
+ case 'd':
+ System.setProperty("IVY_DEBUG","yes");
+ break;
+ default:
+ }
+ // connexion to the Bus
+ Ivy bus;
+ try {
+ bus=new Ivy("JPROBE","JPROBE ready",p);
+ for (int i=opt.getOptind();i<args.length;i++) {
+ System.out.println("you want to subscribe to " + args[i]);
+ bus.bindMsg(args[i],p);
+ }
+ System.out.println("broadcasting on "+domain);
+ bus.start(domain);
+ String s;
+ DataInputStream in =
+ new DataInputStream(new BufferedInputStream(System.in));
+ // infinite loop on keyboard input
+ while ((s=in.readLine()).length()!=0)
+ System.out.println("-> Sent to " +bus.sendMsg(s)+" peers");
+ } catch (IvyException ie) {
+ System.out.println("Caught an exception. quitting. "+ie.getMessage());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void connect(IvyClient client) {
+ System.out.println(client.getApplicationName() + " connected " );
+ for (java.util.Enumeration e=client.getRegexps();e.hasMoreElements();)
+ System.out.println(client.getApplicationName() + " subscribes to "
+ +e.nextElement() );
+ }
+
+ public void disconnect(IvyClient client) {
+ System.out.println(client.getApplicationName() + " disconnected " );
+ }
+
+ public void die(IvyClient client, int id) {
+ System.out.println(client.getApplicationName() + " die "+ id );
+ }
+
+ public void directMessage(IvyClient client, int id, String arg) {
+ System.out.println(client.getApplicationName() + " direct Message "+ id + arg );
+ }
+
+ public void receive(IvyClient client, String[] args) {
+ String s=client.getApplicationName() + " sent";
+ for (int i=0;i<args.length;i++) s+=" '"+args[i]+"'";
+ System.out.println(s);
+ }
+
+} // class Probe
+// EOF