/* * Ivy probe * * Copyright (C) 1997-1999 * Centre d'Études de la Navigation Aérienne * * Main and only file * * Authors: François-Régis Colin * * $Id$ * * Please refer to file version.h for the * copyright notice regarding this software */ #include #include #include #include #include #include #include #include #define USE_XT #include "Ivycpp.h" #include "IvyApplication.h" class IvyTest : public IvyApplicationCallback, public IvyMessageCallback { public: Ivy *bus; void Start(); void OnApplicationConnected(IvyApplication *app); void OnApplicationDisconnected(IvyApplication *app); void OnApplicationCongestion(IvyApplication *app); void OnApplicationDecongestion(IvyApplication *app); void OnApplicationFifoFull(IvyApplication *app); void OnMessage(IvyApplication *app, int argc, const char **argv); IvyTest(); private: static void ivyAppConnCb( IvyApplication *app ) {}; static void ivyAppDiscConnCb( IvyApplication *app ) {}; }; IvyTest :: IvyTest() { } void IvyTest :: Start() { bus = new Ivy( "TestIvy", "TestIvy READY", BUS_APPLICATION_CALLBACK( ivyAppConnCb, ivyAppDiscConnCb ),false); bus->BindMsg( "(.*)", this ); bus->start(NULL); } void IvyTest :: OnMessage(IvyApplication *app, int argc, const char **argv) { int i; printf ("%s sent ",app->GetName()); for (i = 0; i < argc; i++) printf(" '%s'",argv[i]); printf("\n"); } void IvyTest :: OnApplicationConnected (IvyApplication *app) { const char *appname; const char *host; appname = app->GetName(); host = app->GetHost(); printf("%s connected from %s\n", appname, host); } void IvyTest :: OnApplicationDisconnected (IvyApplication *app) { const char *appname; const char *host; appname = app->GetName (); host = app->GetHost(); printf("%s disconnected from %s\n", appname, host); } void IvyTest::OnApplicationCongestion(IvyApplication *app) { std::cerr << "Ivy Congestion notififation\n"; } void IvyTest::OnApplicationDecongestion(IvyApplication *app) { std::cerr << "Ivy Decongestion notififation\n"; } void IvyTest::OnApplicationFifoFull(IvyApplication *app) { std::cerr << "Ivy FIFO Full notififation : MESSAGE WILL BE LOST\n"; } int main(int argc, char *argv[]) { XtAppContext cntx = XtCreateApplicationContext(); IvyTest test; test.bus->setXtAppContext(cntx); test.Start(); XtAppMainLoop (cntx); return 0; }