本文整理汇总了C++中SimpleClient::releaseComponent方法的典型用法代码示例。如果您正苦于以下问题:C++ SimpleClient::releaseComponent方法的具体用法?C++ SimpleClient::releaseComponent怎么用?C++ SimpleClient::releaseComponent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SimpleClient
的用法示例。
在下文中一共展示了SimpleClient::releaseComponent方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main (int argc, char **argv)
{
ACS_SHORT_LOG ((LM_INFO, "Init maciLogConfigTestClient..."));
SimpleClient client;
MACI_TEST::LogConfigTestClass_ptr comp;
if (client.init(argc,argv) == 0)
{
return -1;
}
else
{
//Must log into manager before we can really do anything
client.login();
}
try
{
comp = client.getComponent<MACI_TEST::LogConfigTestClass>("MACI_LOG_CONFIG",0,true);
comp->log_all();
client.releaseComponent ("MACI_LOG_CONFIG");
client.logout();
}
catch ( CORBA::Exception &ex )
{
ACE_PRINT_EXCEPTION(ex, "main");
}
ACS_SHORT_LOG ((LM_INFO, "Exiting maciLogConfigTestClient..."));
return 0;
} /* end main() */
示例2: main
int main(int argc, char *argv[]) {
SimpleClient client;
if( client.init(argc, argv) == 0 ) {
cerr << "Cannot initialize client, not continuing" << endl;
return 1;
}
client.login();
try {
ACS_SHORT_LOG((LM_INFO,"Obtaining reference to NEWCONFIG_RECEIVER"));
bulkdata::BulkDataReceiver_var receiver = client.getComponent<bulkdata::BulkDataReceiver>("NEWCONFIG_RECEIVER", 0, true);
// This stream is not configuredon the CDB, will use a default configuration
ACS_SHORT_LOG((LM_INFO,"Opening stream 'no_existing_stream' (not in CDB)"));
receiver->openReceiverStream("no_existing_stream");
// This is configured on the CDB, cool
ACS_SHORT_LOG((LM_INFO,"Opening stream 'Name1' (in CDB)"));
receiver->openReceiverStream("Name1");
sleep(2);
// Open the rest of the receivers
ACS_SHORT_LOG((LM_INFO,"Opening all remaining streams (namely, Name7)"));
receiver->openReceiver();
// now sleep a little bit
ACS_SHORT_LOG((LM_INFO,"Sleeping 10 seconds"));
ACE_OS::sleep(10);
// and close the receivers
// woops, this doesn't exist
ACS_SHORT_LOG((LM_INFO,"Closing stream 'name12'"));
receiver->closeReceiverStream("name12");
// This was the one we wanted to close before
ACS_SHORT_LOG((LM_INFO,"Closing stream 'Name1'"));
receiver->closeReceiverStream("Name1");
ACS_SHORT_LOG((LM_INFO,"Closing stream 'no_existing_stream' (but now it does exist)"));
receiver->closeReceiverStream("no_existing_stream");
// close the rest
ACS_SHORT_LOG((LM_INFO,"Closing remaining streams"));
receiver->closeReceiver();
// Close receiver
client.releaseComponent("NEWCONFIG_RECEIVER");
} catch(maciErrType::CannotGetComponentExImpl &ex) {
cerr << "Cannot get component '" << ex.getCURL() << "'. Reason: " << ex.getReason() << endl;
} catch(...) {
cerr << "Unexpected exception while running test code" << endl;
client.logout();
}
}
示例3: main
/** @cond
*/
int main(int argc, char* argv[])
{
MOUNT_ACS::Mount_var mount;
BACIThreadManager threadManager; // The thread manager is used to manage the thread
ThreadParamStruct param; // The parameter for the thread
// Check the arguments in the command line
if (argc<2) {
std::cerr<<"Usage: "<<argv[0]<<" component azimuth elevation <options>\n";
return -1;
}
double destAz, destEl;
if (sscanf(argv[2],"%lf",&destAz)+sscanf(argv[3],"%lf",&destEl)!=2) {
std::cerr<<"Format error in azimuth and/or elevation"<<std::endl;
std::cerr<<"Usage: "<<argv[0]<<" component azimuth elevation <options>\n";
return -1;
}
// Create the SimpleClient object
SimpleClient mountClient;
// Init the client
if (mountClient.init(argc,argv)==0) {
// Error initing
ACS_SHORT_LOG((LM_ERROR,"Error initing the client"));
return -1;
} else {
ACS_SHORT_LOG((LM_INFO,"SimpleClient built"));
}
// Login the client
if (mountClient.login()==0) {
//Error
ACS_SHORT_LOG((LM_ERROR,"Error logging in the client"));
return -1;
} else {
ACS_SHORT_LOG((LM_INFO,"Client logged in"));
}
try
{
// Get the component
ACS_SHORT_LOG((LM_INFO,"Getting component %s",argv[1]));
mount = mountClient.getComponent<MOUNT_ACS::Mount>(argv[1], 0, true);
}
catch(maciErrType::CannotGetComponentExImpl &_ex)
{
_ex.log();
return -1;
}
param.mount=mount.ptr();
param.az=destAz;
param.el=destEl;
char logStr[128];
sprintf(logStr,"Commanded position az=%lf, el=%lf",destAz,destEl);
ACS_SHORT_LOG((LM_INFO,logStr));
// Start the thread to read the position of the antenna
ACS_SHORT_LOG((LM_INFO,"Starting the thread"));
BACIThread* thread_p = threadManager.create("Position thread", //Name of the new thread
(void *)worker, //Function to run inside the thread
static_cast<void *>(¶m)); //the single parameter
if (thread_p==NULL) {
ACS_SHORT_LOG((LM_ERROR,"Error in spawning thread"));
}
thread_p->resume();
// The thread will run for 30 secs so we wait until it finishes
// There are better (and safer) solution to wait instead of a simple wait
// but... this is the faster one!
sleep(40);
// End of computation: begin to clean up
// Stop all the threads
ACS_SHORT_LOG((LM_INFO,"Terminating the thread"));
threadManager.terminateAll();
// Release the component
try
{
ACS_SHORT_LOG((LM_INFO,"Releasing %s",argv[1]));
mountClient.releaseComponent(argv[1]);
}
catch(maciErrType::CannotReleaseComponentExImpl &_ex)
{
_ex.log();
return -1;
}
// logout the client
try
{
ACS_SHORT_LOG((LM_INFO,"Logging out"));
//.........这里部分代码省略.........
示例4: main
/** @cond
*/
int main(int argc, char *argv[])
{
SimpleClient client;
acsexmplHelloWorld::HelloWorld_var foo;
// Creates and initializes the SimpleClient object
if (client.init(argc,argv) == 0)
{
return -1;
}
else
{
//Must log into manager before we can really do anything
client.login();
}
try
{
//Get the specific component we have requested on the command-line
foo = client.getComponent<acsexmplHelloWorld::HelloWorld>(argv[1], 0, true);
}
catch(maciErrType::CannotGetComponentExImpl &_ex)
{
_ex.log();
return -1;
}
//Call the displayMessage() method existing in the interface for HelloWorld
foo->displayMessage();
try
{
foo->badMethod();
}
catch(ACSErrTypeCommon::UnknownEx &ex)
{
ACSErrTypeCommon::UnknownExImpl badMethodEx(ex);
badMethodEx.log();
ACS::Time timeStamp = badMethodEx.getTimeStamp();
ACE_CString tString = getStringifiedUTC(timeStamp);
ACS_DEBUG_PARAM(argv[0], "Time of the exception: %s\n", tString.c_str());
}
//We release our component and logout from manager
try
{
client.releaseComponent(argv[1]);
}
catch(maciErrType::CannotReleaseComponentExImpl &_ex)
{
_ex.log();
return -1;
}
client.logout();
//Sleep for 3 sec to allow everytihng to cleanup and stablize
ACE_OS::sleep(3);
return 0;
}
示例5: main
//.........这里部分代码省略.........
// Now get the specific component we have requested from the command-line
ACS_SHORT_LOG((LM_INFO, "Getting component: %s", argv[1]));
//getComponent can throw an exception if it fails
MOUNT_ACS::Mount_var mount = client.getComponent<MOUNT_ACS::Mount>(argv[1], 0, true);
//Prints the descriptor of the requested component
ACS_SHORT_LOG((LM_DEBUG, "Requesting descriptor()... "));
ACS::CharacteristicComponentDesc_var descriptor = mount->descriptor();
ACS_SHORT_LOG((LM_DEBUG, "Got descriptor()."));
ACS_SHORT_LOG((LM_INFO,"Descriptor:"));
ACS_SHORT_LOG((LM_INFO,"\tname: %s", descriptor->name.in()));
//Get the reference to the actAz double property
ACS_SHORT_LOG((LM_INFO, "Getting component property: %s:actAz", argv[1]));
ACS::ROdouble_var actAz = mount->actAz();
if (actAz.ptr() != ACS::ROdouble::_nil())
{
//Get the current value of the property synchronously
ACSErr::Completion_var completion;
CORBA::Double val = actAz->get_sync(completion.out());
ACS_SHORT_LOG((LM_INFO,"Value: %f", val));
//Create the CBdouble property
ACS_SHORT_LOG((LM_INFO, "Trying to narrow CB for actAz... "));
MyCBdouble myCallback("actAz");
//Activate it as a CORBA object
ACS::CBdouble_var cb = myCallback._this();
ACS_SHORT_LOG((LM_INFO, "OK"));
//Invoke the asynchronous method.
ACS_SHORT_LOG((LM_INFO, "Call get_async for actAz..."));
ACS::CBDescIn desc;
actAz->get_async(cb.in(), desc); //returns control immediately
//Here some other useful things should be done
//while the asyncrhonous reply comes
//...
//...
//...
//Enter main loop and stays there for a fixed amount of time (1s)
//This is done to give the asynchronous method a chance to finish.
ACE_Time_Value tv(1);
client.run(tv);
}//if
}
catch(maciErrType::CannotGetComponentExImpl &_ex) // can be thrown by getComponent<..>(...)
{
_ex.log();
return -1;
}
catch( CORBA::SystemException &_ex ) // can be thrown by get_component_info
{
ACSErrTypeCommon::CORBAProblemExImpl corbaProblemEx(__FILE__, __LINE__,
"main");
corbaProblemEx.setMinor(_ex.minor());
corbaProblemEx.setCompletionStatus(_ex.completed());
corbaProblemEx.setInfo(_ex._info().c_str());
corbaProblemEx.log();
return -1;
}
catch(...)
{
ACSErrTypeCommon::UnexpectedExceptionExImpl uex(__FILE__, __LINE__,
"main");
uex.log();
return -1;
}//try-catch
//Another try section where we release our component and logout from the Manager
try
{
ACS_SHORT_LOG((LM_INFO,"Releasing..."));
client.releaseComponent( argv[1]);
client.logout();
}
catch(maciErrType::CannotReleaseComponentExImpl &_ex)
{
_ex.log();
return -1;
}
catch(...)
{
ACSErrTypeCommon::UnexpectedExceptionExImpl uex(__FILE__, __LINE__,
"main");
uex.log();
return -1;
}//try-catch
//sleep for 3 sec to allow everytihng to cleanup and stabilize
//so that the tests can be determinitstic.
ACE_OS::sleep(3);
return 0;
}
示例6: main
/*
* Main procedure
*/
int main(int argc, char *argv[])
{
//Checks command-line arguments.
if (argc < 2)
{
ACS_SHORT_LOG((LM_INFO, "Usage: %s <component name> <options>", argv[0]));
return -1;
}
else
{
ACS_SHORT_LOG((LM_INFO, "Welcome to %s!", argv[0]));
}
//Creates and initializes the SimpleClient object
SimpleClient client;
if (client.init(argc,argv) == 0)
{
ACE_DEBUG((LM_DEBUG,"Cannot init client"));
return -1;
}
else
{
//Must log into manager before we can really do anything
client.login();
}
//Create an instance of our user-defined callback class
MyCBdouble myCallback("refTemp");
try
{
//Get the specific component we have requested on the command-line
FRIDGE::FridgeControl_var fridge = client.getComponent<FRIDGE::FridgeControl>(argv[1], 0, true);
//Get one of the component's BACI properties
ACS::RWdouble_var refTemperature = fridge->refTemperature();
if (refTemperature.ptr() != ACS::RWdouble::_nil())
{
ACSErr::Completion_var completion;
//Just synchronously reading the value of refTemp
CORBA::Double val = refTemperature->get_sync(completion.out());
ACS_SHORT_LOG((LM_INFO,"Value: %f", val));
//Activate the callback as a CORBA object
ACS::CBdouble_var cb = myCallback._this();
ACS_SHORT_LOG((LM_INFO, "OK"));
ACS::CBDescIn desc;
desc.id_tag = 2;
ACS_SHORT_LOG((LM_INFO, "Trying to create monitor for refTemperature..."));
//Create the actual monitor
ACS::Monitordouble_var md = refTemperature->create_monitor(cb.in(), desc);
if (md.ptr() != ACS::Monitordouble::_nil())
{
ACS_SHORT_LOG((LM_INFO, "OK"));
//Set the timer trigger to one second.
md->set_timer_trigger(10000000);
}
else
{
ACS_SHORT_LOG((LM_INFO, "Failed"));
}
//Give the callback some time to run.
ACE_Time_Value time(20);
client.run(time);
//Must explicitly destroy the callback before exiting
md->destroy();
//Give the callback time to be really destroyed
ACE_OS::sleep(15);
}
}
catch(maciErrType::CannotGetComponentExImpl &_ex)
{
_ex.log();
return -1;
}
catch(...)
{
ACSErrTypeCommon::UnexpectedExceptionExImpl uex(__FILE__, __LINE__,
"main");
uex.log();
return -1;
}//try-catch
try
{
//Must release components and logout from manager
ACS_SHORT_LOG((LM_INFO,"Releasing..."));
client.releaseComponent(argv[1]);
client.logout();
}
catch(maciErrType::CannotReleaseComponentExImpl &_ex)
//.........这里部分代码省略.........
示例7: main
/** @cond
*/
int main(int argc, char *argv[])
{
//Checks command-line arguments
if (argc < 2)
{
ACS_SHORT_LOG((LM_INFO, "Usage: %s <component name> <options>", argv[0]));
return -1;
}
else
{
ACS_SHORT_LOG((LM_INFO, "Welcome to %s!", argv[0]));
}
//Creates and initialyses the SimpleClient object
SimpleClient client;
if (client.init(argc,argv) == 0)
{
ACE_DEBUG((LM_DEBUG,"Cannot init client"));
return -1;
}
else
{
//Must log into manager before we can really do anything
client.login();
}
try
{
//Gets from manager the reference to the requested component.
//Pay special attention that this reference is just a generic
//CORBA object at this point.
ACS_SHORT_LOG((LM_INFO, "Looking for Object '%s' ", argv[1]));
CORBA::Object_var obj = client.getComponent(argv[1], 0 , true);
//Get the stringified IOR of the component. The IOR of CORBA objects
//can be considered to be a unique "phone number" used to access CORBA
//servants.
ACS_SHORT_LOG((LM_INFO, "Getting stringified IOR"));
CORBA::String_var mior = client.getORB()->object_to_string(obj.in());
//Print the IOR to standard out
u_int result;
ACS_SHORT_LOG ((LM_INFO, "IOR for %s is: %s", argv[1], mior.in()));
result = ACE_OS::printf ("%s", mior.in());
}
catch(maciErrType::CannotGetComponentExImpl &_ex)
{
_ex.log();
return -1;
}
catch(...)
{
ACSErrTypeCommon::UnexpectedExceptionExImpl uex(__FILE__, __LINE__,
"main");
uex.log();
return -1;
}
//Normally you would not want to have separate try sections for releasing
//the components and logging out from manager. This is a very special case
//since we do not know ahead of time what will be released. In other words,
//argv[1] could technically be "manager" which would end up raising a
//no-permission exception. To get around this just use separate try/catch
//sections and ignore no-permission exceptions.
try
{
//All clients must cleanly release objects they activate!
client.releaseComponent(argv[1]);
}
catch(maciErrType::CannotReleaseComponentExImpl &_ex)
{
_ex.log();
return -1;
}
catch(...)
{
ACSErrTypeCommon::UnexpectedExceptionExImpl uex(__FILE__, __LINE__,
"main");
uex.log();
return -1;
}
try
{
if (client.logout() == 0)
{
ACS_SHORT_LOG ((LM_INFO, "Cannot logout"));
return -1;
}
}
catch(...)
{
ACS_SHORT_LOG((LM_ERROR, "Exception caught"));
return -1;
}
ACS_SHORT_LOG((LM_INFO,"The end!"));
//.........这里部分代码省略.........
示例8: main
/** @cond
*/
int main(int argc, char *argv[])
{
//Checks command-line arguments.
if (argc < 2)
{
ACS_SHORT_LOG((LM_INFO, "Usage: %s <component name> <options>", argv[0]));
return -1;
}
else
{
ACS_SHORT_LOG((LM_INFO, "Welcome to %s!", argv[0]));
}
//Creates and initializes the SimpleClient object
SimpleClient client;
if (client.init(argc,argv) == 0)
{
ACE_DEBUG((LM_DEBUG,"Cannot init client"));
return -1;
}
else
{
//Must log into manager before we can really do anything
client.login();
}
try
{
//Get the specific component we have requested on the command-line
FRIDGE::FridgeControl_var fridge = client.getComponent<FRIDGE::FridgeControl>(argv[1], 0, true);
//Run whatever supported command the end-user has specified
//from the command-line
if(strcmp(argv[2],"ON") == 0) // Command ON
{
ACS_SHORT_LOG((LM_INFO, "ON"));
fridge->on();
}
else if(strcmp(argv[2],"OFF") == 0) // Command OFF
{
ACS_SHORT_LOG((LM_INFO, "OFF"));
fridge->off();
}
else if(strcmp(argv[2],"OPEN") == 0) // Command OPEN
{
ACS_SHORT_LOG((LM_INFO, "OPEN"));
fridge->open();
}
else if(strcmp(argv[2],"CLOSE") == 0) // Command CLOSE
{
ACS_SHORT_LOG((LM_INFO, "CLOSE"));
fridge->close();
}
else
{
// User specified some non-existant command
ACS_SHORT_LOG((LM_INFO, "Unknown command"));
}
}
catch(maciErrType::CannotGetComponentExImpl &_ex)
{
_ex.log();
return -1;
}
catch(...)
{
ACSErrTypeCommon::UnexpectedExceptionExImpl uex(__FILE__, __LINE__,
"main");
uex.log();
return -1;
}
try
{
//Release the component and log out from manager.
ACS_SHORT_LOG((LM_INFO,"Releasing..."));
client.releaseComponent(argv[1]);
client.logout();
}
catch(maciErrType::CannotReleaseComponentExImpl &_ex)
{
_ex.log();
return -1;
}
catch(...)
{
ACSErrTypeCommon::UnexpectedExceptionExImpl uex(__FILE__, __LINE__,
"main");
uex.log();
}//try-catch
// sleep for 3 sec.
ACE_OS::sleep(3);
return 0;
}