summaryrefslogtreecommitdiff
path: root/ivyprobe.c
diff options
context:
space:
mode:
Diffstat (limited to 'ivyprobe.c')
-rw-r--r--ivyprobe.c199
1 files changed, 0 insertions, 199 deletions
diff --git a/ivyprobe.c b/ivyprobe.c
deleted file mode 100644
index f41f310..0000000
--- a/ivyprobe.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Ivy probe
- *
- * Copyright (C) 1997-2000
- * Centre d'Études de la Navigation Aérienne
- *
- * Main and only file
- *
- * Authors: François-Régis Colin <fcolin@cena.fr>
- *
- * $Id$
- *
- * Please refer to file version.h for the
- * copyright notice regarding this software
- */
-
-
-#define IVYMAINLOOP
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <getopt.h>
-
-#include "ivyloop.h"
-#include "ivysocket.h"
-#include "ivy.h"
-#include "timer.h"
-
-int app_count = 0;
-int wait_count = 0;
-
-void Callback (IvyClientPtr app, void *user_data, int argc, char *argv[])
-{
- int i;
- printf ("%s sent ",IvyGetApplicationName(app));
- for (i = 0; i < argc; i++)
- printf(" '%s'",argv[i]);
- printf("\n");
-}
-
-void HandleStdin (Channel channel, HANDLE fd, void *data)
-{
- char buf[4096];
- char *line;
- char *cmd;
- char *arg;
- int id;
- IvyClientPtr app;
- int err;
- line = fgets(buf, 4096, stdin);
- if (!line) {
- IvyChannelClose (channel);
- IvyStop();
-
- return;
- }
- if (*line == '.') {
- cmd = strtok (line, ".: \n");
-
- if (strcmp (cmd, "die") == 0) {
- arg = strtok (NULL, " \n");
- if (arg) {
- app = IvyGetApplication (arg);
- if (app)
- IvySendDieMsg (app);
- else printf ("No Application %s!!!\n",arg);
- }
-
- } else if (strcmp(cmd, "dieall-yes-i-am-sure") == 0) {
- arg = IvyGetApplicationList();
- arg = strtok (arg, " \n");
- while (arg) {
- app = IvyGetApplication (arg);
- if (app)
- IvySendDieMsg (app);
- else
- printf ("No Application %s!!!\n",arg);
- arg = strtok (NULL, " ");
- }
-
- } else if (strcmp(cmd, "bind") == 0) {
- arg = strtok (NULL, "'");
- if (arg) {
- IvyBindMsg (Callback, NULL, arg);
- }
-
- } else if (strcmp(cmd, "where") == 0) {
- arg = strtok (NULL, " \n");
- if (arg) {
- app = IvyGetApplication (arg);
- if (app)
- printf ("Application %s on %s\n",arg, IvyGetApplicationHost (app));
- else printf ("No Application %s!!!\n",arg);
- }
- } else if (strcmp(cmd, "direct") == 0) {
- arg = strtok (NULL, " \n");
- if (arg) {
- app = IvyGetApplication (arg);
- if (app) {
- arg = strtok (NULL, " ");
- id = atoi (arg) ;
- arg = strtok (NULL, "'");
- IvySendDirectMsg (app, id, arg);
- } else
- printf ("No Application %s!!!\n",arg);
- }
-
- } else if (strcmp(cmd, "who") == 0) {
- printf("Apps: %s\n", IvyGetApplicationList());
-
- } else if (strcmp(cmd, "help") == 0) {
- fprintf(stderr,"Commands list:\n");
- printf(" .help - this help\n");
- printf(" .quit - terminate this application\n");
- printf(" .die appname - send die msg to appname\n");
- printf(" .dieall-yes-i-am-sure - send die msg to all applis\n");
- printf(" .direct appname id 'arg' - send direct msg to appname\n");
- printf(" .where appname - on which host is appname\n");
- printf(" .bind 'regexp' - add a msg to receive\n");
- printf(" .who - who is on the bus\n");
- } else if (strcmp(cmd, "quit") == 0) {
- exit(0);
- }
- } else {
- cmd = strtok (buf, "\n");
- err = IvySendMsg (cmd);
- printf("-> Sent to %d peer%s\n", err, err == 1 ? "" : "s");
- }
-}
-
-void ApplicationCallback (IvyClientPtr app, void *user_data, IvyApplicationEvent event)
-{
- char *appname;
- char *host;
- char **msgList;
- appname = IvyGetApplicationName (app);
- host = IvyGetApplicationHost (app);
- switch (event) {
-
- case IvyApplicationConnected:
- app_count++;
- printf("%s connected from %s\n", appname, host);
-/* printf("Application(%s): Begin Messages\n", appname);*/
- msgList = IvyGetApplicationMessages (app);
- while (*msgList )
- printf("%s subscribes to '%s'\n",appname,*msgList++);
-/* printf("Application(%s): End Messages\n",appname);*/
- if (app_count == wait_count)
- IvyChannelSetUp (0, NULL, NULL, HandleStdin);
- break;
-
- case IvyApplicationDisconnected:
- app_count--;
- printf("%s disconnected from %s\n", appname, host);
- break;
-
- default:
- printf("%s: unkown event %d\n", appname, event);
- break;
- }
-}
-
-
-int main(int argc, char *argv[])
-{
- int c;
- int timer_test = 0;
- char busbuf [1024] = "";
- const char* bus = 0;
- while ((c = getopt(argc, argv, "d:b:w:t")) != EOF)
- switch (c) {
- case 'b':
- strcpy (busbuf, optarg);
- bus = busbuf;
- break;
- case 'w':
- wait_count = atoi(optarg) ;
- break;
- case 't':
- timer_test = 1;
- break;
- }
-
- /* Mainloop management */
-
- IvyInit ("IVYPROBE", "IVYPROBE READY", ApplicationCallback,NULL,NULL,NULL);
- for (; optind < argc; optind++)
- IvyBindMsg (Callback, NULL, argv[optind]);
-
- if (wait_count == 0)
- IvyChannelSetUp (0, NULL, NULL, HandleStdin);
-
- IvyStart (bus);
-
- IvyMainLoop (0);
- return 0;
-}