int firstcomp::run(int argc, char* argv[]) { #ifdef USE_QTGUI QApplication a(argc, argv); // GUI application #else QCoreApplication a(argc, argv); // NON-GUI application #endif int status=EXIT_SUCCESS; // Remote server proxy access example // RemoteComponentPrx remotecomponent_proxy; LaserPrx laser_proxy; DifferentialRobotPrx differentialrobot_proxy; string proxy; // User variables initialize(); // Remote server proxy creation example // try // { // // Load the remote server proxy // proxy = getProxyString("RemoteProxy"); // remotecomponent_proxy = RemotePrx::uncheckedCast( communicator()->stringToProxy( proxy ) ); // if( !remotecomponent_proxy ) // { // rInfo(QString("Error loading proxy!")); // return EXIT_FAILURE; // } //catch(const Ice::Exception& ex) //{ // cout << "[" << PROGRAM_NAME << "]: Exception: " << ex << endl; // return EXIT_FAILURE; //} //rInfo("RemoteProxy initialized Ok!"); // // Now you can use remote server proxy (remotecomponent_proxy) as local object //Remote server proxy creation example try { laser_proxy = LaserPrx::uncheckedCast( communicator()->stringToProxy( getProxyString("LaserProxy") ) ); } catch(const Ice::Exception& ex) { cout << "[" << PROGRAM_NAME << "]: Exception: " << ex; return EXIT_FAILURE; } rInfo("LaserProxy initialized Ok!"); mprx["LaserProxy"] = (::IceProxy::Ice::Object*)(&laser_proxy);//Remote server proxy creation example try { differentialrobot_proxy = DifferentialRobotPrx::uncheckedCast( communicator()->stringToProxy( getProxyString("DifferentialRobotProxy") ) ); } catch(const Ice::Exception& ex) { cout << "[" << PROGRAM_NAME << "]: Exception: " << ex; return EXIT_FAILURE; } rInfo("DifferentialRobotProxy initialized Ok!"); mprx["DifferentialRobotProxy"] = (::IceProxy::Ice::Object*)(&differentialrobot_proxy); GenericWorker *worker = new SpecificWorker(mprx); //Monitor thread GenericMonitor *monitor = new SpecificMonitor(worker,communicator()); QObject::connect(monitor,SIGNAL(kill()),&a,SLOT(quit())); QObject::connect(worker,SIGNAL(kill()),&a,SLOT(quit())); monitor->start(); if ( !monitor->isRunning() ) return status; try { // Server adapter creation and publication Ice::ObjectAdapterPtr adapterCommonBehavior = communicator()->createObjectAdapter("CommonBehavior"); CommonBehaviorI *commonbehaviorI = new CommonBehaviorI(monitor ); adapterCommonBehavior->add(commonbehaviorI, communicator()->stringToIdentity("commonbehavior")); adapterCommonBehavior->activate(); // Server adapter creation and publication cout << SERVER_FULL_NAME " started" << endl; // User defined QtGui elements ( main window, dialogs, etc ) #ifdef USE_QTGUI //ignoreInterrupt(); // Uncomment if you want the component to ignore console SIGINT signal (ctrl+c). a.setQuitOnLastWindowClosed( true ); #endif // Run QT Application Event Loop a.exec(); status = EXIT_SUCCESS; } catch(const Ice::Exception& ex) { status = EXIT_FAILURE; cout << "[" << PROGRAM_NAME << "]: Exception raised on main thread: " << endl; cout << ex; #ifdef USE_QTGUI a.quit(); #endif monitor->exit(0); } return status; }
int ::RenderOSG::run(int argc, char* argv[]) { #ifdef USE_QTGUI QApplication a(argc, argv); // GUI application #else QCoreApplication a(argc, argv); // NON-GUI application #endif int status=EXIT_SUCCESS; string proxy, tmp; initialize(); GenericWorker *worker = new SpecificWorker(mprx); //Monitor thread GenericMonitor *monitor = new SpecificMonitor(worker,communicator()); QObject::connect(monitor, SIGNAL(kill()), &a, SLOT(quit())); QObject::connect(worker, SIGNAL(kill()), &a, SLOT(quit())); monitor->start(); if ( !monitor->isRunning() ) return status; try { // Server adapter creation and publication if (not GenericMonitor::configGetString(communicator(), prefix, "CommonBehavior.Endpoints", tmp, "")) { cout << "[" << PROGRAM_NAME << "]: Can't read configuration for proxy CommonBehavior\n"; } Ice::ObjectAdapterPtr adapterCommonBehavior = communicator()->createObjectAdapterWithEndpoints("commonbehavior", tmp); CommonBehaviorI *commonbehaviorI = new CommonBehaviorI(monitor ); adapterCommonBehavior->add(commonbehaviorI, communicator()->stringToIdentity("commonbehavior")); adapterCommonBehavior->activate(); // Server adapter creation and publication cout << SERVER_FULL_NAME " started" << endl; // User defined QtGui elements ( main window, dialogs, etc ) #ifdef USE_QTGUI //ignoreInterrupt(); // Uncomment if you want the component to ignore console SIGINT signal (ctrl+c). a.setQuitOnLastWindowClosed( true ); #endif // Run QT Application Event Loop a.exec(); status = EXIT_SUCCESS; } catch(const Ice::Exception& ex) { status = EXIT_FAILURE; cout << "[" << PROGRAM_NAME << "]: Exception raised on main thread: " << endl; cout << ex; #ifdef USE_QTGUI a.quit(); #endif monitor->exit(0); } return status; }
int JoystickPublishComp::run(int argc, char* argv[]) { #ifdef USE_QTGUI QApplication a(argc, argv); // GUI application #else QCoreApplication a(argc, argv); // NON-GUI application #endif int status=EXIT_SUCCESS; // Remote server proxy access example // RemoteComponentPrx remotecomponent_proxy; string proxy; // User variables initialize(); // Remote server proxy creation example // try // { // // Load the remote server proxy // proxy = getProxyString("RemoteProxy"); // remotecomponent_proxy = RemotePrx::uncheckedCast( communicator()->stringToProxy( proxy ) ); // if( !remotecomponent_proxy ) // { // rInfo(QString("Error loading proxy!")); // return EXIT_FAILURE; // } //catch(const Ice::Exception& ex) //{ // cout << "[" << PROGRAM_NAME << "]: Exception: " << ex << endl; // return EXIT_FAILURE; //} //rInfo("RemoteProxy initialized Ok!"); // // Now you can use remote server proxy (remotecomponent_proxy) as local object IceStorm::TopicManagerPrx topicManager = IceStorm::TopicManagerPrx::checkedCast(communicator()->propertyToProxy("TopicManager.Proxy")); IceStorm::TopicPrx joystickadapter_topic; while(!joystickadapter_topic){ try { joystickadapter_topic = topicManager->create("JoystickAdapter"); // communicator()->getProperties()->getProperty("JoystickAdapter") does not work! }catch (const IceStorm::TopicExists&){ // Another client created the topic. try{ joystickadapter_topic = topicManager->retrieve("JoystickAdapter"); // communicator()->getProperties()->getProperty("JoystickAdapter") does not work! }catch (const IceStorm::NoSuchTopic&){ //Error. Topic does not exist. } } } Ice::ObjectPrx joystickadapter_pub = joystickadapter_topic->getPublisher()->ice_oneway(); JoystickAdapterPrx joystickadapter = JoystickAdapterPrx::uncheckedCast(joystickadapter_pub); mprx["JoystickAdapterPub"] = (::IceProxy::Ice::Object*)(&joystickadapter); GenericWorker *worker = new SpecificWorker(mprx); //Monitor thread GenericMonitor *monitor = new SpecificMonitor(worker,communicator()); QObject::connect(monitor,SIGNAL(kill()),&a,SLOT(quit())); QObject::connect(worker,SIGNAL(kill()),&a,SLOT(quit())); monitor->start(); if ( !monitor->isRunning() ) return status; try { // Server adapter creation and publication Ice::ObjectAdapterPtr adapterCommonBehavior = communicator()->createObjectAdapter("CommonBehavior"); CommonBehaviorI *commonbehaviorI = new CommonBehaviorI(monitor ); adapterCommonBehavior->add(commonbehaviorI, communicator()->stringToIdentity("commonbehavior")); adapterCommonBehavior->activate(); // Server adapter creation and publication cout << SERVER_FULL_NAME " started" << endl; // User defined QtGui elements ( main window, dialogs, etc ) #ifdef USE_QTGUI //ignoreInterrupt(); // Uncomment if you want the component to ignore console SIGINT signal (ctrl+c). a.setQuitOnLastWindowClosed( true ); #endif // Run QT Application Event Loop a.exec(); status = EXIT_SUCCESS; } catch(const Ice::Exception& ex) { status = EXIT_FAILURE; cout << "[" << PROGRAM_NAME << "]: Exception raised on main thread: " << endl; cout << ex; #ifdef USE_QTGUI a.quit(); #endif monitor->exit(0); } return status; }
int Interpolator::run(int argc, char* argv[]) { #ifdef USE_QTGUI QApplication a(argc, argv); // GUI application #else QCoreApplication a(argc, argv); // NON-GUI application #endif int status=EXIT_SUCCESS; string proxy; initialize(); IceStorm::TopicManagerPrx topicManager = IceStorm::TopicManagerPrx::checkedCast(communicator()->propertyToProxy("TopicManager.Proxy")); GenericWorker *worker = new SpecificWorker(mprx); //Monitor thread GenericMonitor *monitor = new SpecificMonitor(worker,communicator()); QObject::connect(monitor,SIGNAL(kill()),&a,SLOT(quit())); QObject::connect(worker,SIGNAL(kill()),&a,SLOT(quit())); monitor->start(); if ( !monitor->isRunning() ) return status; try { // Server adapter creation and publication Ice::ObjectAdapterPtr adapterCommonBehavior = communicator()->createObjectAdapter("CommonBehavior"); CommonBehaviorI *commonbehaviorI = new CommonBehaviorI(monitor ); adapterCommonBehavior->add(commonbehaviorI, communicator()->stringToIdentity("commonbehavior")); adapterCommonBehavior->activate(); // Server adapter creation and publication Ice::ObjectAdapterPtr adapterJointMotor = communicator()->createObjectAdapter("JointMotorComp"); JointMotorI *jointmotor = new JointMotorI(worker); adapterJointMotor->add(jointmotor, communicator()->stringToIdentity("jointmotor")); // Server adapter creation and publication cout << SERVER_FULL_NAME " started" << endl; // User defined QtGui elements ( main window, dialogs, etc ) #ifdef USE_QTGUI //ignoreInterrupt(); // Uncomment if you want the component to ignore console SIGINT signal (ctrl+c). a.setQuitOnLastWindowClosed( true ); #endif // Run QT Application Event Loop a.exec(); status = EXIT_SUCCESS; } catch(const Ice::Exception& ex) { status = EXIT_FAILURE; cout << "[" << PROGRAM_NAME << "]: Exception raised on main thread: " << endl; cout << ex; #ifdef USE_QTGUI a.quit(); #endif monitor->exit(0); } return status; }
int objectDetectionComp::run(int argc, char* argv[]) { #ifdef USE_QTGUI QApplication a(argc, argv); // GUI application #else QCoreApplication a(argc, argv); // NON-GUI application #endif int status=EXIT_SUCCESS; // Remote server proxy access example // RemoteComponentPrx remotecomponent_proxy; InnerModelManagerPrx innermodelmanager_proxy; RGBDPrx rgbd_proxy; string proxy; // User variables initialize(); // Remote server proxy creation example // try // { // // Load the remote server proxy // proxy = getProxyString("RemoteProxy"); // remotecomponent_proxy = RemotePrx::uncheckedCast( communicator()->stringToProxy( proxy ) ); // if( !remotecomponent_proxy ) // { // rInfo(QString("Error loading proxy!")); // return EXIT_FAILURE; // } //catch(const Ice::Exception& ex) //{ // cout << "[" << PROGRAM_NAME << "]: Exception: " << ex << endl; // return EXIT_FAILURE; //} //rInfo("RemoteProxy initialized Ok!"); // // Now you can use remote server proxy (remotecomponent_proxy) as local object //Remote server proxy creation example try { innermodelmanager_proxy = InnerModelManagerPrx::uncheckedCast( communicator()->stringToProxy( getProxyString("InnerModelManagerProxy") ) ); } catch(const Ice::Exception& ex) { cout << "[" << PROGRAM_NAME << "]: Exception: " << ex; return EXIT_FAILURE; } rInfo("InnerModelManagerProxy initialized Ok!"); mprx["InnerModelManagerProxy"] = (::IceProxy::Ice::Object*)(&innermodelmanager_proxy);//Remote server proxy creation example try { rgbd_proxy = RGBDPrx::uncheckedCast( communicator()->stringToProxy( getProxyString("RGBDProxy") ) ); } catch(const Ice::Exception& ex) { cout << "[" << PROGRAM_NAME << "]: Exception: " << ex; return EXIT_FAILURE; } rInfo("RGBDProxy initialized Ok!"); mprx["RGBDProxy"] = (::IceProxy::Ice::Object*)(&rgbd_proxy); IceStorm::TopicManagerPrx topicManager = IceStorm::TopicManagerPrx::checkedCast(communicator()->propertyToProxy("TopicManager.Proxy")); GenericWorker *worker = new SpecificWorker(mprx); //Monitor thread GenericMonitor *monitor = new SpecificMonitor(worker,communicator()); QObject::connect(monitor,SIGNAL(kill()),&a,SLOT(quit())); QObject::connect(worker,SIGNAL(kill()),&a,SLOT(quit())); monitor->start(); if ( !monitor->isRunning() ) return status; try { // Server adapter creation and publication Ice::ObjectAdapterPtr adapterCommonBehavior = communicator()->createObjectAdapter("CommonBehavior"); CommonBehaviorI *commonbehaviorI = new CommonBehaviorI(monitor ); adapterCommonBehavior->add(commonbehaviorI, communicator()->stringToIdentity("commonbehavior")); adapterCommonBehavior->activate(); // Server adapter creation and publication Ice::ObjectAdapterPtr AprilTags_adapter = communicator()->createObjectAdapter("AprilTagsTopic"); AprilTagsPtr apriltagsI_ = new AprilTagsI(worker); Ice::ObjectPrx apriltags_proxy = AprilTags_adapter->addWithUUID(apriltagsI_)->ice_oneway(); IceStorm::TopicPrx apriltags_topic; if(!apriltags_topic){ try { apriltags_topic = topicManager->create("AprilTags"); } catch (const IceStorm::TopicExists&) { //Another client created the topic try{ apriltags_topic = topicManager->retrieve("AprilTags"); }catch(const IceStorm::NoSuchTopic&){ //Error. Topic does not exist } } IceStorm::QoS qos; apriltags_topic->subscribeAndGetPublisher(qos, apriltags_proxy); } AprilTags_adapter->activate(); // Server adapter creation and publication Ice::ObjectAdapterPtr adapterobjectDetection = communicator()->createObjectAdapter("objectDetectionComp"); objectDetectionI *objectdetection = new objectDetectionI(worker); adapterobjectDetection->add(objectdetection, communicator()->stringToIdentity("objectdetection")); adapterobjectDetection->activate(); cout << SERVER_FULL_NAME " started" << endl; // User defined QtGui elements ( main window, dialogs, etc ) #ifdef USE_QTGUI //ignoreInterrupt(); // Uncomment if you want the component to ignore console SIGINT signal (ctrl+c). a.setQuitOnLastWindowClosed( true ); #endif // Run QT Application Event Loop a.exec(); status = EXIT_SUCCESS; } catch(const Ice::Exception& ex) { status = EXIT_FAILURE; cout << "[" << PROGRAM_NAME << "]: Exception raised on main thread: " << endl; cout << ex; #ifdef USE_QTGUI a.quit(); #endif monitor->exit(0); } return status; }
int inversekinematicsAgentComp::run(int argc, char* argv[]) { #ifdef USE_QTGUI QApplication a(argc, argv); // GUI application #else QCoreApplication a(argc, argv); // NON-GUI application #endif int status=EXIT_SUCCESS; // Remote server proxy access example // RemoteComponentPrx remotecomponent_proxy; BodyInverseKinematicsPrx bodyinversekinematics_proxy; AGMAgentTopicPrx agmagenttopic_proxy; string proxy; // User variables initialize(); // Remote server proxy creation example // try // { // // Load the remote server proxy // proxy = getProxyString("RemoteProxy"); // remotecomponent_proxy = RemotePrx::uncheckedCast( communicator()->stringToProxy( proxy ) ); // if( !remotecomponent_proxy ) // { // rInfo(QString("Error loading proxy!")); // return EXIT_FAILURE; // } //catch(const Ice::Exception& ex) //{ // cout << "[" << PROGRAM_NAME << "]: Exception: " << ex << endl; // return EXIT_FAILURE; //} //rInfo("RemoteProxy initialized Ok!"); // // Now you can use remote server proxy (remotecomponent_proxy) as local object //Remote server proxy creation example try { bodyinversekinematics_proxy = BodyInverseKinematicsPrx::uncheckedCast( communicator()->stringToProxy( getProxyString("BodyInverseKinematicsProxy") ) ); } catch(const Ice::Exception& ex) { cout << "[" << PROGRAM_NAME << "]: Exception: " << ex; return EXIT_FAILURE; } rInfo("BodyInverseKinematicsProxy initialized Ok!"); mprx["BodyInverseKinematicsProxy"] = (::IceProxy::Ice::Object*)(&bodyinversekinematics_proxy); IceStorm::TopicManagerPrx topicManager = IceStorm::TopicManagerPrx::checkedCast(communicator()->propertyToProxy("TopicManager.Proxy")); IceStorm::TopicPrx agmagenttopic_topic; while(!agmagenttopic_topic){ try { agmagenttopic_topic = topicManager->retrieve("AGMAgentTopic"); }catch (const IceStorm::NoSuchTopic&){ try{ agmagenttopic_topic = topicManager->create("AGMAgentTopic"); }catch (const IceStorm::TopicExists&){ // Another client created the topic. } } } Ice::ObjectPrx agmagenttopic_pub = agmagenttopic_topic->getPublisher()->ice_oneway(); AGMAgentTopicPrx agmagenttopic = AGMAgentTopicPrx::uncheckedCast(agmagenttopic_pub); mprx["AGMAgentTopicPub"] = (::IceProxy::Ice::Object*)(&agmagenttopic); GenericWorker *worker = new SpecificWorker(mprx); //Monitor thread GenericMonitor *monitor = new SpecificMonitor(worker,communicator()); QObject::connect(monitor,SIGNAL(kill()),&a,SLOT(quit())); QObject::connect(worker,SIGNAL(kill()),&a,SLOT(quit())); monitor->start(); if ( !monitor->isRunning() ) return status; try { // Server adapter creation and publication Ice::ObjectAdapterPtr adapterCommonBehavior = communicator()->createObjectAdapter("CommonBehavior"); CommonBehaviorI *commonbehaviorI = new CommonBehaviorI(monitor ); adapterCommonBehavior->add(commonbehaviorI, communicator()->stringToIdentity("commonbehavior")); adapterCommonBehavior->activate(); // Server adapter creation and publication Ice::ObjectAdapterPtr AGMExecutiveTopic_adapter = communicator()->createObjectAdapter("AGMExecutiveTopicTopic"); AGMExecutiveTopicPtr agmexecutivetopicI_ = new AGMExecutiveTopicI(worker); Ice::ObjectPrx agmexecutivetopic_proxy = AGMExecutiveTopic_adapter->addWithUUID(agmexecutivetopicI_)->ice_oneway(); IceStorm::TopicPrx agmexecutivetopic_topic; while(!agmexecutivetopic_topic){ try { agmexecutivetopic_topic = topicManager->retrieve("AGMExecutiveTopic"); IceStorm::QoS qos; agmexecutivetopic_topic->subscribeAndGetPublisher(qos, agmexecutivetopic_proxy); } catch (const IceStorm::NoSuchTopic&) { // Error! No topic found! } } AGMExecutiveTopic_adapter->activate(); // Server adapter creation and publication Ice::ObjectAdapterPtr adapterAGMCommonBehavior = communicator()->createObjectAdapter("AGMCommonBehaviorComp"); AGMCommonBehaviorI *agmcommonbehavior = new AGMCommonBehaviorI(worker); adapterAGMCommonBehavior->add(agmcommonbehavior, communicator()->stringToIdentity("agmcommonbehavior")); adapterAGMCommonBehavior->activate(); cout << SERVER_FULL_NAME " started" << endl; // User defined QtGui elements ( main window, dialogs, etc ) #ifdef USE_QTGUI //ignoreInterrupt(); // Uncomment if you want the component to ignore console SIGINT signal (ctrl+c). a.setQuitOnLastWindowClosed( true ); #endif // Run QT Application Event Loop a.exec(); status = EXIT_SUCCESS; } catch(const Ice::Exception& ex) { status = EXIT_FAILURE; cout << "[" << PROGRAM_NAME << "]: Exception raised on main thread: " << endl; cout << ex; #ifdef USE_QTGUI a.quit(); #endif monitor->exit(0); } return status; }
int AprilTagsComp::run(int argc, char* argv[]) { #ifdef USE_QTGUI QApplication a(argc, argv); // GUI application #else QCoreApplication a(argc, argv); // NON-GUI application #endif int status=EXIT_SUCCESS; CameraPrx camera_proxy; RGBDPrx rgbd_proxy; RGBDBusPrx rgbdbus_proxy; AprilTagsPrx apriltags_proxy; string proxy; initialize(); try { camera_proxy = CameraPrx::uncheckedCast( communicator()->stringToProxy( getProxyString("CameraProxy") ) ); } catch(const Ice::Exception& ex) { cout << "[" << PROGRAM_NAME << "]: Exception: " << ex; return EXIT_FAILURE; } rInfo("CameraProxy initialized Ok!"); mprx["CameraProxy"] = (::IceProxy::Ice::Object*)(&camera_proxy);//Remote server proxy creation example try { rgbd_proxy = RGBDPrx::uncheckedCast( communicator()->stringToProxy( getProxyString("RGBDProxy") ) ); } catch(const Ice::Exception& ex) { cout << "[" << PROGRAM_NAME << "]: Exception: " << ex; return EXIT_FAILURE; } rInfo("RGBDProxy initialized Ok!"); mprx["RGBDProxy"] = (::IceProxy::Ice::Object*)(&rgbd_proxy);//Remote server proxy creation example try { rgbdbus_proxy = RGBDBusPrx::uncheckedCast( communicator()->stringToProxy( getProxyString("RGBDBusProxy") ) ); } catch(const Ice::Exception& ex) { cout << "[" << PROGRAM_NAME << "]: Exception: " << ex; return EXIT_FAILURE; } rInfo("RGBDBusProxy initialized Ok!"); mprx["RGBDBusProxy"] = (::IceProxy::Ice::Object*)(&rgbdbus_proxy); IceStorm::TopicManagerPrx topicManager = IceStorm::TopicManagerPrx::checkedCast(communicator()->propertyToProxy("TopicManager.Proxy")); IceStorm::TopicPrx apriltags_topic; while (!apriltags_topic) { try { apriltags_topic = topicManager->retrieve("AprilTags"); } catch (const IceStorm::NoSuchTopic&) { try { apriltags_topic = topicManager->create("AprilTags"); } catch (const IceStorm::TopicExists&){ // Another client created the topic. } } } Ice::ObjectPrx apriltags_pub = apriltags_topic->getPublisher()->ice_oneway(); AprilTagsPrx apriltags = AprilTagsPrx::uncheckedCast(apriltags_pub); mprx["AprilTagsPub"] = (::IceProxy::Ice::Object*)(&apriltags); GenericWorker *worker = new SpecificWorker(mprx); //Monitor thread GenericMonitor *monitor = new SpecificMonitor(worker,communicator()); QObject::connect(monitor, SIGNAL(kill()), &a, SLOT(quit())); QObject::connect(worker, SIGNAL(kill()), &a, SLOT(quit())); monitor->start(); worker->setPeriod(100); if ( !monitor->isRunning() ) return status; try { // Server adapter creation and publication Ice::ObjectAdapterPtr adapterCommonBehavior = communicator()->createObjectAdapter("CommonBehavior"); CommonBehaviorI *commonbehaviorI = new CommonBehaviorI(monitor ); adapterCommonBehavior->add(commonbehaviorI, communicator()->stringToIdentity("commonbehavior")); adapterCommonBehavior->activate(); // Server adapter creation and publication Ice::ObjectAdapterPtr adapterGetAprilTags = communicator()->createObjectAdapter("GetAprilTagsComp"); GetAprilTagsI *getapriltags = new GetAprilTagsI(worker); adapterGetAprilTags->add(getapriltags, communicator()->stringToIdentity("getapriltags")); adapterGetAprilTags->activate(); cout << SERVER_FULL_NAME " started" << endl; // User defined QtGui elements ( main window, dialogs, etc ) #ifdef USE_QTGUI //ignoreInterrupt(); // Uncomment if you want the component to ignore console SIGINT signal (ctrl+c). a.setQuitOnLastWindowClosed( true ); #endif // Run QT Application Event Loop a.exec(); status = EXIT_SUCCESS; } catch(const Ice::Exception& ex) { status = EXIT_FAILURE; cout << "[" << PROGRAM_NAME << "]: Exception raised on main thread: " << endl; cout << ex; #ifdef USE_QTGUI a.quit(); #endif monitor->exit(0); } return status; }