本文整理汇总了C++中ice::ObjectAdapterPtr类的典型用法代码示例。如果您正苦于以下问题:C++ ObjectAdapterPtr类的具体用法?C++ ObjectAdapterPtr怎么用?C++ ObjectAdapterPtr使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ObjectAdapterPtr类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: run
int JoystickPublishFalcon::run(int argc, char* argv[])
{
QCoreApplication a(argc, argv); // NON-GUI application
int status=EXIT_SUCCESS;
JoystickAdapterPrx joystickadapter_proxy;
string proxy, tmp;
initialize();
IceStorm::TopicManagerPrx topicManager = IceStorm::TopicManagerPrx::checkedCast(communicator()->propertyToProxy("TopicManager.Proxy"));
IceStorm::TopicPrx joystickadapter_topic;
while (!joystickadapter_topic)
{
try
{
joystickadapter_topic = topicManager->retrieve("JoystickAdapter");
}
catch (const IceStorm::NoSuchTopic&)
{
try
{
joystickadapter_topic = topicManager->create("JoystickAdapter");
}
catch (const IceStorm::TopicExists&){
// Another client created the topic.
}
}
}
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;
}
示例2: run
int prosilicaComp::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;
DifferentialRobotPrx differentialrobot_proxy;
JointMotorPrx jointmotor_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
try
{
// Load the remote server proxy
proxy = getProxyString("DifferentialRobotProxy");
differentialrobot_proxy = DifferentialRobotPrx::uncheckedCast( communicator()->stringToProxy( proxy ) );
if( !differentialrobot_proxy )
{
rInfo(QString("Error loading proxy!"));
return EXIT_FAILURE;
}
}
catch(const Ice::Exception& ex)
{
cout << "[" << PROGRAM_NAME << "]: Exception: " << ex << endl;
return EXIT_FAILURE;
}
rInfo("DifferentialRobotProxy initialized Ok!");
try
{
// Load the remote server proxy
proxy = getProxyString("JointMotorProxy");
jointmotor_proxy = JointMotorPrx::uncheckedCast( communicator()->stringToProxy( proxy ) );
if( !jointmotor_proxy )
{
rInfo(QString("Error loading proxy!"));
return EXIT_FAILURE;
}
}
catch(const Ice::Exception& ex)
{
cout << "[" << PROGRAM_NAME << "]: Exception: " << ex << endl;
return EXIT_FAILURE;
}
rInfo("JointMotorProxy initialized Ok!");
Worker *worker = new Worker(differentialrobot_proxy, jointmotor_proxy);
//Monitor thread
Monitor *monitor = new Monitor(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 adapter = communicator()->createObjectAdapter("prosilicaComp");
//.........这里部分代码省略.........
示例3: test
void
allTests(const Ice::CommunicatorPtr& communicator)
{
{
cout << "Testing Glacier2 stub... " << flush;
char** argv = 0;
int argc = 0;
SessionHelperClient client;
client.run(argc, argv);
cout << "ok" << endl;
}
{
cout << "Testing IceStorm stub... " << flush;
IceStorm::TopicManagerPrxPtr manager =
ICE_UNCHECKED_CAST(IceStorm::TopicManagerPrx, communicator->stringToProxy("test:default -p 12010"));
IceStorm::QoS qos;
IceStorm::TopicPrxPtr topic;
string topicName = "time";
try
{
topic = manager->retrieve(topicName);
test(false);
}
catch(const IceStorm::NoSuchTopic&)
{
test(false);
}
catch(const Ice::LocalException&)
{
}
Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("subscriber" ,"tcp");
Ice::ObjectPrxPtr subscriber = adapter->addWithUUID(ICE_MAKE_SHARED(ClockI));
adapter->activate();
#ifdef ICE_CPP11_MAPPING
assert(!topic);
#else
try
{
topic->subscribeAndGetPublisher(qos, subscriber);
test(false);
}
catch(const IceStorm::AlreadySubscribed&)
{
test(false);
}
catch(const IceUtil::NullHandleException&)
{
}
#endif
cout << "ok" << endl;
}
{
cout << "Testing IceGrid stub... " << flush;
Ice::ObjectPrxPtr base = communicator->stringToProxy("test:default -p 12010");
IceGrid::RegistryPrxPtr registry = ICE_UNCHECKED_CAST(IceGrid::RegistryPrx, base);
IceGrid::AdminSessionPrxPtr session;
IceGrid::AdminPrxPtr admin;
try
{
session = registry->createAdminSession("username", "password");
test(false);
}
catch(const IceGrid::PermissionDeniedException&)
{
test(false);
}
catch(const Ice::LocalException&)
{
}
#ifdef ICE_CPP11_MAPPING
assert(!admin);
#else
try
{
admin = session->getAdmin();
test(false);
}
catch(const IceUtil::NullHandleException&)
{
}
#endif
cout << "ok" << endl;
}
}
示例4: tprintf
GPrx
allTests(const Ice::CommunicatorPtr& communicator)
{
tprintf("testing facet registration exceptions... ");
Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("FacetExceptionTestAdapter");
Ice::ObjectPtr obj = new EmptyI;
adapter->add(obj, communicator->stringToIdentity("d"));
adapter->addFacet(obj, communicator->stringToIdentity("d"), "facetABCD");
try
{
adapter->addFacet(obj, communicator->stringToIdentity("d"), "facetABCD");
test(false);
}
catch(Ice::AlreadyRegisteredException&)
{
}
adapter->removeFacet(communicator->stringToIdentity("d"), "facetABCD");
try
{
adapter->removeFacet(communicator->stringToIdentity("d"), "facetABCD");
test(false);
}
catch(Ice::NotRegisteredException&)
{
}
tprintf("ok\n");
tprintf("testing removeAllFacets... ");
Ice::ObjectPtr obj1 = new EmptyI;
Ice::ObjectPtr obj2 = new EmptyI;
adapter->addFacet(obj1, communicator->stringToIdentity("id1"), "f1");
adapter->addFacet(obj2, communicator->stringToIdentity("id1"), "f2");
Ice::ObjectPtr obj3 = new EmptyI;
adapter->addFacet(obj1, communicator->stringToIdentity("id2"), "f1");
adapter->addFacet(obj2, communicator->stringToIdentity("id2"), "f2");
adapter->addFacet(obj3, communicator->stringToIdentity("id2"), "");
Ice::FacetMap fm = adapter->removeAllFacets(communicator->stringToIdentity("id1"));
test(fm.size() == 2);
test(fm["f1"] == obj1);
test(fm["f2"] == obj2);
try
{
adapter->removeAllFacets(communicator->stringToIdentity("id1"));
test(false);
}
catch(Ice::NotRegisteredException&)
{
}
fm = adapter->removeAllFacets(communicator->stringToIdentity("id2"));
test(fm.size() == 3);
test(fm["f1"] == obj1);
test(fm["f2"] == obj2);
test(fm[""] == obj3);
tprintf("ok\n");
adapter->deactivate();
tprintf("testing stringToProxy... ");
string ref = communicator->getProperties()->getPropertyWithDefault("Facets.Proxy", "d:default -p 12010 -t 10000");
Ice::ObjectPrx db = communicator->stringToProxy(ref);
test(db);
tprintf("ok\n");
tprintf("testing unchecked cast... ");
Ice::ObjectPrx prx = Ice::ObjectPrx::uncheckedCast(db);
test(prx->ice_getFacet().empty());
prx = Ice::ObjectPrx::uncheckedCast(db, "facetABCD");
test(prx->ice_getFacet() == "facetABCD");
Ice::ObjectPrx prx2 = Ice::ObjectPrx::uncheckedCast(prx);
test(prx2->ice_getFacet() == "facetABCD");
Ice::ObjectPrx prx3 = Ice::ObjectPrx::uncheckedCast(prx, "");
test(prx3->ice_getFacet().empty());
DPrx d = Test::DPrx::uncheckedCast(db);
test(d->ice_getFacet().empty());
DPrx df = Test::DPrx::uncheckedCast(db, "facetABCD");
test(df->ice_getFacet() == "facetABCD");
DPrx df2 = Test::DPrx::uncheckedCast(df);
test(df2->ice_getFacet() == "facetABCD");
DPrx df3 = Test::DPrx::uncheckedCast(df, "");
test(df3->ice_getFacet().empty());
tprintf("ok\n");
tprintf("testing checked cast... ");
prx = Ice::ObjectPrx::checkedCast(db);
test(prx->ice_getFacet().empty());
prx = Ice::ObjectPrx::checkedCast(db, "facetABCD");
test(prx->ice_getFacet() == "facetABCD");
prx2 = Ice::ObjectPrx::checkedCast(prx);
test(prx2->ice_getFacet() == "facetABCD");
prx3 = Ice::ObjectPrx::checkedCast(prx, "");
test(prx3->ice_getFacet().empty());
d = Test::DPrx::checkedCast(db);
test(d->ice_getFacet().empty());
df = Test::DPrx::checkedCast(db, "facetABCD");
test(df->ice_getFacet() == "facetABCD");
df2 = Test::DPrx::checkedCast(df);
test(df2->ice_getFacet() == "facetABCD");
df3 = Test::DPrx::checkedCast(df, "");
test(df3->ice_getFacet().empty());
tprintf("ok\n");
//.........这里部分代码省略.........
示例5: run
int stormServerComp::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;
SendTopicPrx sendtopic_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 sendtopic_topic;
while(!sendtopic_topic){
try {
sendtopic_topic = topicManager->retrieve("SendTopic");
}catch (const IceStorm::NoSuchTopic&){
try{
sendtopic_topic = topicManager->create("SendTopic");
}catch (const IceStorm::TopicExists&){
// Another client created the topic.
}
}
}
Ice::ObjectPrx sendtopic_pub = sendtopic_topic->getPublisher()->ice_oneway();
SendTopicPrx sendtopic = SendTopicPrx::uncheckedCast(sendtopic_pub);
mprx["SendTopicPub"] = (::IceProxy::Ice::Object*)(&sendtopic);
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 adapter = communicator()->createObjectAdapter("stormServerComp");
adapter->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
//.........这里部分代码省略.........
示例6: ule
//.........这里部分代码省略.........
ostringstream os;
ex.ice_print(os);
test(endsWith(os.str(), "Test::G"));
test(ex.data == "G");
}
{
H ex(__FILE__, __LINE__, "H");
ostringstream os;
ex.ice_print(os);
test(endsWith(os.str(), "Test::H data:'H'"));
test(ex.data == "H");
}
}
cout << "ok" << endl;
string localOAEndpoint;
{
ostringstream ostr;
if(communicator->getProperties()->getProperty("Ice.Default.Protocol") == "bt")
{
ostr << "default -a *";
}
else
{
ostr << "default -h *";
}
localOAEndpoint = ostr.str();
}
cout << "testing object adapter registration exceptions... " << flush;
{
Ice::ObjectAdapterPtr first;
try
{
first = communicator->createObjectAdapter("TestAdapter0");
test(false);
}
catch(const Ice::InitializationException& ex)
{
if(printException)
{
Ice::Print printer(communicator->getLogger());
printer << ex;
}
// Expected
}
communicator->getProperties()->setProperty("TestAdapter0.Endpoints", localOAEndpoint);
first = communicator->createObjectAdapter("TestAdapter0");
try
{
Ice::ObjectAdapterPtr second = communicator->createObjectAdapter("TestAdapter0");
test(false);
}
catch(const Ice::AlreadyRegisteredException& ex)
{
if(printException)
{
Ice::Print printer(communicator->getLogger());
printer << ex;
}
// Expected
}
示例7: getTestEndpoint
//.........这里部分代码省略.........
localipv4->setProperty("Adapter.Endpoints", "tcp -h 127.0.0.1");
Ice::PropertiesPtr localipv6 = ipv6->clone();
localipv6->setProperty("Adapter.Endpoints", "tcp -h \"::1\"");
vector<Ice::PropertiesPtr> serverProps = clientProps;
serverProps.push_back(anyipv4);
serverProps.push_back(anyipv6);
serverProps.push_back(anyboth);
serverProps.push_back(localipv4);
serverProps.push_back(localipv6);
#if defined(_WIN32) && !defined(ICE_OS_WINRT)
OSVERSIONINFO ver;
ver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
# if defined(_MSC_VER) && _MSC_VER >= 1800
# pragma warning (disable : 4996)
# endif
GetVersionEx(&ver);
# if defined(_MSC_VER) && _MSC_VER >= 1800
# pragma warning (default : 4996)
# endif
const bool dualStack = ver.dwMajorVersion >= 6; // Windows XP IPv6 doesn't support dual-stack
#else
const bool dualStack = true;
#endif
bool ipv6NotSupported = false;
for(vector<Ice::PropertiesPtr>::const_iterator p = serverProps.begin(); p != serverProps.end(); ++p)
{
Ice::InitializationData serverInitData;
serverInitData.properties = *p;
Ice::CommunicatorPtr serverCommunicator = Ice::initialize(serverInitData);
Ice::ObjectAdapterPtr oa;
try
{
oa = serverCommunicator->createObjectAdapter("Adapter");
oa->activate();
}
catch(const Ice::DNSException&)
{
serverCommunicator->destroy();
continue; // IP version not supported.
}
catch(const Ice::SocketException&)
{
if(*p == ipv6)
{
ipv6NotSupported = true;
}
serverCommunicator->destroy();
continue; // IP version not supported.
}
// Ensure the published endpoints are actually valid. On
// Fedora, binding to "localhost" with IPv6 only works but
// resolving localhost don't return the IPv6 adress.
Ice::ObjectPrxPtr prx = oa->createProxy(serverCommunicator->stringToIdentity("dummy"));
try
{
prx->ice_collocationOptimized(false)->ice_ping();
}
catch(const Ice::LocalException&)
{
serverCommunicator->destroy();
continue; // IP version not supported.
示例8: ObserverTopic
NodeObserverTopic::NodeObserverTopic(const IceStorm::TopicManagerPrx& topicManager,
const Ice::ObjectAdapterPtr& adapter) :
ObserverTopic(topicManager, "NodeObserver")
{
_publishers = getPublishers<NodeObserverPrx>();
try
{
const_cast<NodeObserverPrx&>(_externalPublisher) = NodeObserverPrx::uncheckedCast(adapter->addWithUUID(this));
}
catch(const Ice::LocalException&)
{
}
}
示例9: test
void
allTests(const Ice::CommunicatorPtr& communicator)
{
{
cout << "Testing Glacier2 stub... " << flush;
char** argv = 0;
int argc = 0;
SessionHelperClient client;
client.run(argc, argv);
cout << "ok" << endl;
}
{
cout << "Testing IceStorm stub... " << flush;
IceStorm::TopicManagerPrx manager =
IceStorm::TopicManagerPrx::uncheckedCast(communicator->stringToProxy("test:default -p 12010"));
IceStorm::QoS qos;
IceStorm::TopicPrx topic;
string topicName = "time";
try
{
topic = manager->retrieve(topicName);
test(false);
}
catch(const IceStorm::NoSuchTopic&)
{
test(false);
}
catch(const Ice::LocalException&)
{
}
Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("subscriber" ,"tcp");
Ice::ObjectPrx subscriber = adapter->addWithUUID(new ClockI);
adapter->activate();
try
{
topic->subscribeAndGetPublisher(qos, subscriber);
test(false);
}
catch(const IceStorm::AlreadySubscribed&)
{
test(false);
}
catch(const IceUtil::NullHandleException&)
{
}
cout << "ok" << endl;
}
{
cout << "Testing IceGrid stub... " << flush;
Ice::ObjectPrx base = communicator->stringToProxy("test:default -p 12010");
IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::uncheckedCast(base);
IceGrid::AdminSessionPrx session;
IceGrid::AdminPrx admin;
try
{
session = registry->createAdminSession("username", "password");
test(false);
}
catch(const IceGrid::PermissionDeniedException&)
{
test(false);
}
catch(const Ice::LocalException&)
{
}
try
{
admin = session->getAdmin();
test(false);
}
catch(const IceUtil::NullHandleException&)
{
}
cout << "ok" << endl;
}
}
示例10: a
int ::chocon::run(int argc, char* argv[])
{
QCoreApplication a(argc, argv); // NON-GUI application
sigset_t sigs;
sigemptyset(&sigs);
sigaddset(&sigs, SIGHUP);
sigaddset(&sigs, SIGINT);
sigaddset(&sigs, SIGTERM);
sigprocmask(SIG_UNBLOCK, &sigs, 0);
int status=EXIT_SUCCESS;
DifferentialRobotPrx differentialrobot_proxy;
LaserPrx laser_proxy;
string proxy, tmp;
initialize();
try
{
if (not GenericMonitor::configGetString(communicator(), prefix, "DifferentialRobotProxy", proxy, ""))
{
cout << "[" << PROGRAM_NAME << "]: Can't read configuration for proxy DifferentialRobotProxy\n";
}
differentialrobot_proxy = DifferentialRobotPrx::uncheckedCast( communicator()->stringToProxy( proxy ) );
}
catch(const Ice::Exception& ex)
{
cout << "[" << PROGRAM_NAME << "]: Exception: " << ex;
return EXIT_FAILURE;
}
rInfo("DifferentialRobotProxy initialized Ok!");
mprx["DifferentialRobotProxy"] = (::IceProxy::Ice::Object*)(&differentialrobot_proxy);//Remote server proxy creation example
try
{
if (not GenericMonitor::configGetString(communicator(), prefix, "LaserProxy", proxy, ""))
{
cout << "[" << PROGRAM_NAME << "]: Can't read configuration for proxy LaserProxy\n";
}
laser_proxy = LaserPrx::uncheckedCast( communicator()->stringToProxy( proxy ) );
}
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
IceStorm::TopicManagerPrx topicManager = IceStorm::TopicManagerPrx::checkedCast(communicator()->propertyToProxy("TopicManager.Proxy"));
SpecificWorker *worker = new SpecificWorker(mprx);
//Monitor thread
SpecificMonitor *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;
while (!monitor->ready)
{
usleep(10000);
}
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
if (not GenericMonitor::configGetString(communicator(), prefix, "IrObjetivo.Endpoints", tmp, ""))
{
cout << "[" << PROGRAM_NAME << "]: Can't read configuration for proxy IrObjetivo";
}
Ice::ObjectAdapterPtr adapterIrObjetivo = communicator()->createObjectAdapterWithEndpoints("IrObjetivo", tmp);
IrObjetivoI *irobjetivo = new IrObjetivoI(worker);
adapterIrObjetivo->add(irobjetivo, communicator()->stringToIdentity("irobjetivo"));
adapterIrObjetivo->activate();
cout << "[" << PROGRAM_NAME << "]: IrObjetivo adapter created in port " << tmp << endl;
//.........这里部分代码省略.........
示例11: if
int
CallbackClient::run(int argc, char*[])
{
if(argc > 1)
{
cerr << appName() << ": too many arguments" << endl;
return EXIT_FAILURE;
}
CallbackSenderPrx sender = CallbackSenderPrx::checkedCast(
communicator()->propertyToProxy("CallbackSender.Proxy")->ice_twoway()->ice_timeout(-1)->ice_secure(false));
if(!sender)
{
cerr << appName() << ": invalid proxy" << endl;
return EXIT_FAILURE;
}
Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Callback.Client");
CallbackReceiverPtr cr = new CallbackReceiverI;
adapter->add(cr, communicator()->stringToIdentity("callbackReceiver"));
adapter->activate();
CallbackReceiverPrx receiver = CallbackReceiverPrx::uncheckedCast(
adapter->createProxy(communicator()->stringToIdentity("callbackReceiver")));
menu();
char c = 'x';
do
{
try
{
cout << "==> ";
cin >> c;
if(c == 't')
{
sender->initiateCallback(receiver);
}
else if(c == 's')
{
sender->shutdown();
}
else if(c == 'x')
{
// Nothing to do
}
else if(c == '?')
{
menu();
}
else
{
cout << "unknown command `" << c << "'" << endl;
menu();
}
}
catch(const Ice::Exception& ex)
{
cerr << ex << endl;
}
}
while(cin.good() && c != 'x');
return EXIT_SUCCESS;
}
示例12: run
virtual int run(int, char*[])
{
//
// Terminate cleanly on receipt of a signal
//
shutdownOnInterrupt();
//
// Create an object adapter.
//
Ice::ObjectAdapterPtr adapter =
communicator()->createObjectAdapterWithEndpoints("SimpleFilesystem", "default -h localhost -p 10000");
//
// Create the root directory (with name "/" and no parent)
//
DirectoryIPtr root = new DirectoryI(communicator(), "/", 0);
root->activate(adapter);
//
// Create a file called "README" in the root directory
//
FileIPtr file = new FileI(communicator(), "README", root);
Lines text;
text.push_back("This file system contains a collection of poetry.");
file->write(text);
file->activate(adapter);
//
// Create a directory called "Coleridge" in the root directory
//
DirectoryIPtr coleridge = new DirectoryI(communicator(), "Coleridge", root);
coleridge->activate(adapter);
//
// Create a file called "Kubla_Khan" in the Coleridge directory
//
file = new FileI(communicator(), "Kubla_Khan", coleridge);
text.erase(text.begin(), text.end());
text.push_back("In Xanadu did Kubla Khan");
text.push_back("A stately pleasure-dome decree:");
text.push_back("Where Alph, the sacred river, ran");
text.push_back("Through caverns measureless to man");
text.push_back("Down to a sunless sea.");
file->write(text);
file->activate(adapter);
//
// All objects are created, allow client requests now
//
adapter->activate();
//
// Wait until we are done
//
communicator()->waitForShutdown();
if(interrupted())
{
cerr << appName() << ": received signal, shutting down" << endl;
}
return 0;
}
示例13: e
void
ServiceI::start(
const string& name,
const CommunicatorPtr& communicator,
const StringSeq& /*args*/)
{
PropertiesPtr properties = communicator->getProperties();
validateProperties(name, properties, communicator->getLogger());
int id = properties->getPropertyAsIntWithDefault(name + ".NodeId", -1);
// If we are using a replicated deployment and if the topic
// manager thread pool max size is not set then ensure it is set
// to some suitably high number. This ensures no deadlocks in the
// replicated case due to call forwarding from replicas to
// coordinators.
if(id != -1 && properties->getProperty(name + ".TopicManager.ThreadPool.SizeMax").empty())
{
properties->setProperty(name + ".TopicManager.ThreadPool.SizeMax", "100");
}
Ice::ObjectAdapterPtr topicAdapter = communicator->createObjectAdapter(name + ".TopicManager");
Ice::ObjectAdapterPtr publishAdapter = communicator->createObjectAdapter(name + ".Publish");
//
// We use the name of the service for the name of the database environment.
//
string instanceName = properties->getPropertyWithDefault(name + ".InstanceName", "IceStorm");
Identity topicManagerId;
topicManagerId.category = instanceName;
topicManagerId.name = "TopicManager";
if(properties->getPropertyAsIntWithDefault(name+ ".Transient", 0) > 0)
{
_instance = new Instance(instanceName, name, communicator, publishAdapter, topicAdapter, 0);
try
{
TransientTopicManagerImplPtr manager = new TransientTopicManagerImpl(_instance);
_managerProxy = TopicManagerPrx::uncheckedCast(topicAdapter->add(manager, topicManagerId));
}
catch(const Ice::Exception& ex)
{
_instance = 0;
LoggerOutputBase s;
s << "exception while starting IceStorm service " << name << ":\n";
s << ex;
IceBox::FailureException e(__FILE__, __LINE__);
e.reason = s.str();
throw e;
}
topicAdapter->activate();
publishAdapter->activate();
return;
}
if(id == -1) // No replication.
{
try
{
PersistentInstancePtr instance =
new PersistentInstance(instanceName, name, communicator, publishAdapter, topicAdapter);
_instance = instance;
_manager = new TopicManagerImpl(instance);
_managerProxy = TopicManagerPrx::uncheckedCast(topicAdapter->add(_manager->getServant(), topicManagerId));
}
catch(const IceUtil::Exception& ex)
{
_instance = 0;
LoggerOutputBase s;
s << "exception while starting IceStorm service " << name << ":\n";
s << ex;
IceBox::FailureException e(__FILE__, __LINE__);
e.reason = s.str();
throw e;
}
}
else
{
// Here we want to create a map of id -> election node
// proxies.
map<int, NodePrx> nodes;
string topicManagerAdapterId = properties->getProperty(name + ".TopicManager.AdapterId");
// We support two possible deployments. The first is a manual
// deployment, the second is IceGrid.
//
// Here we check for the manual deployment
const string prefix = name + ".Nodes.";
Ice::PropertyDict props = properties->getPropertiesForPrefix(prefix);
if(!props.empty())
{
for(Ice::PropertyDict::const_iterator p = props.begin(); p != props.end(); ++p)
{
//.........这里部分代码省略.........
示例14: test
void
allTests(const Ice::CommunicatorPtr& communicator)
{
cout << "testing stringToProxy... " << flush;
Ice::ObjectPrx base = communicator->stringToProxy("test @ TestAdapter");
test(base);
cout << "ok" << endl;
cout << "testing IceGrid.Locator is present... " << flush;
IceGrid::LocatorPrx locator = IceGrid::LocatorPrx::uncheckedCast(base);
test(locator);
cout << "ok" << endl;
cout << "testing checked cast... " << flush;
TestIntfPrx obj = TestIntfPrx::checkedCast(base);
test(obj);
test(obj == base);
cout << "ok" << endl;
cout << "pinging server... " << flush;
obj->ice_ping();
cout << "ok" << endl;
cout << "testing locator finder... " << flush;
Ice::Identity finderId;
finderId.category = "Ice";
finderId.name = "LocatorFinder";
Ice::LocatorFinderPrx finder = Ice::LocatorFinderPrx::checkedCast(
communicator->getDefaultLocator()->ice_identity(finderId));
test(finder->getLocator());
cout << "ok" << endl;
cout << "testing discovery... " << flush;
{
// Add test well-known object
IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
test(registry);
IceGrid::AdminSessionPrx session = registry->createAdminSession("foo", "bar");
session->getAdmin()->addObjectWithType(base, "::Test");
session->destroy();
//
// Ensure the IceGrid discovery locator can discover the
// registries and make sure locator requests are forwarded.
//
Ice::InitializationData initData;
initData.properties = communicator->getProperties()->clone();
initData.properties->setProperty("Ice.Default.Locator", "");
initData.properties->setProperty("Ice.Plugin.IceLocatorDiscovery", "IceLocatorDiscovery:createIceLocatorDiscovery");
#ifdef __APPLE__
if(initData.properties->getPropertyAsInt("Ice.PreferIPv6Address") > 0)
{
initData.properties->setProperty("IceLocatorDiscovery.Interface", "::1");
}
#endif
initData.properties->setProperty("AdapterForDiscoveryTest.AdapterId", "discoveryAdapter");
initData.properties->setProperty("AdapterForDiscoveryTest.Endpoints", "default");
Ice::CommunicatorPtr com = Ice::initialize(initData);
test(com->getDefaultLocator());
com->stringToProxy("test @ TestAdapter")->ice_ping();
com->stringToProxy("test")->ice_ping();
test(com->getDefaultLocator()->getRegistry());
test(IceGrid::LocatorPrx::checkedCast(com->getDefaultLocator()));
test(IceGrid::LocatorPrx::uncheckedCast(com->getDefaultLocator())->getLocalRegistry());
test(IceGrid::LocatorPrx::uncheckedCast(com->getDefaultLocator())->getLocalQuery());
Ice::ObjectAdapterPtr adapter = com->createObjectAdapter("AdapterForDiscoveryTest");
adapter->activate();
adapter->deactivate();
com->destroy();
//
// Now, ensure that the IceGrid discovery locator correctly
// handles failure to find a locator. Also test
// Ice::registerIceLocatorDiscovery()
//
Ice::registerIceLocatorDiscovery();
initData.properties->setProperty("Ice.Plugin.IceLocatorDiscovery", "");
initData.properties->setProperty("IceLocatorDiscovery.InstanceName", "unknown");
initData.properties->setProperty("IceLocatorDiscovery.RetryCount", "1");
initData.properties->setProperty("IceLocatorDiscovery.Timeout", "100");
com = Ice::initialize(initData);
test(com->getDefaultLocator());
try
{
com->stringToProxy("test @ TestAdapter")->ice_ping();
}
catch(const Ice::NoEndpointException&)
{
}
try
{
com->stringToProxy("test")->ice_ping();
}
catch(const Ice::NoEndpointException&)
//.........这里部分代码省略.........
示例15: while
void
allTests(const CommunicatorPtr& communicator)
{
communicator->getProperties()->setProperty("ReplyAdapter.Endpoints", "udp -p 12030");
Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("ReplyAdapter");
PingReplyIPtr replyI = new PingReplyI;
PingReplyPrx reply = PingReplyPrx::uncheckedCast(adapter->addWithUUID(replyI))->ice_datagram();
adapter->activate();
cout << "testing udp... " << flush;
ObjectPrx base = communicator->stringToProxy("test -d:udp -p 12010");
TestIntfPrx obj = TestIntfPrx::uncheckedCast(base);
int nRetry = 5;
bool ret;
while(nRetry-- > 0)
{
replyI->reset();
obj->ping(reply);
obj->ping(reply);
obj->ping(reply);
ret = replyI->waitReply(3, IceUtil::Time::seconds(2));
if(ret)
{
break; // Success
}
// If the 3 datagrams were not received within the 2 seconds, we try again to
// receive 3 new datagrams using a new object. We give up after 5 retries.
replyI = new PingReplyI;
reply = PingReplyPrx::uncheckedCast(adapter->addWithUUID(replyI))->ice_datagram();
}
test(ret);
if(communicator->getProperties()->getPropertyAsInt("Ice.Override.Compress") == 0)
{
//
// Only run this test if compression is disabled, the test expect fixed message size
// to be sent over the wire.
//
Test::ByteSeq seq;
try
{
seq.resize(1024);
while(true)
{
seq.resize(seq.size() * 2 + 10);
replyI->reset();
obj->sendByteSeq(seq, reply);
replyI->waitReply(1, IceUtil::Time::seconds(10));
}
}
catch(const DatagramLimitException&)
{
test(seq.size() > 16384);
}
obj->ice_getConnection()->close(false);
communicator->getProperties()->setProperty("Ice.UDP.SndSize", "64000");
seq.resize(50000);
try
{
replyI->reset();
obj->sendByteSeq(seq, reply);
test(!replyI->waitReply(1, IceUtil::Time::milliSeconds(500)));
}
catch(const Ice::LocalException& ex)
{
cerr << ex << endl;
test(false);
}
}
cout << "ok" << endl;
string endpoint;
if(communicator->getProperties()->getProperty("Ice.IPv6") == "1")
{
#ifdef __APPLE__
endpoint = "udp -h \"ff15::1:1\" -p 12020 --interface \"::1\"";
#else
endpoint = "udp -h \"ff15::1:1\" -p 12020";
#endif
}
else
{
endpoint = "udp -h 239.255.1.1 -p 12020";
}
base = communicator->stringToProxy("test -d:" + endpoint);
TestIntfPrx objMcast = TestIntfPrx::uncheckedCast(base);
#if !defined(ICE_OS_WINRT) && (!defined(__APPLE__) || (defined(__APPLE__) && !TARGET_OS_IPHONE))
cout << "testing udp multicast... " << flush;
nRetry = 5;
while(nRetry-- > 0)
{
replyI->reset();
objMcast->ping(reply);
ret = replyI->waitReply(5, IceUtil::Time::seconds(2));
if(ret)
//.........这里部分代码省略.........