diff options
Diffstat (limited to 'src/Probe.java')
-rw-r--r-- | src/Probe.java | 77 |
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 |