diff options
Diffstat (limited to 'TAO/CIAO/DAnCE/TargetManager/CmpClient.cpp')
-rw-r--r-- | TAO/CIAO/DAnCE/TargetManager/CmpClient.cpp | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/TAO/CIAO/DAnCE/TargetManager/CmpClient.cpp b/TAO/CIAO/DAnCE/TargetManager/CmpClient.cpp index d695ab38062..b10bf6fd51d 100644 --- a/TAO/CIAO/DAnCE/TargetManager/CmpClient.cpp +++ b/TAO/CIAO/DAnCE/TargetManager/CmpClient.cpp @@ -9,6 +9,7 @@ * TM to getAllResources and getAvailable resources */ +#include "Deployment_DataC.h" #include "TargetManagerC.h" #include "ace/streams.h" #include "Config_Handlers/DnC_Dump.h" @@ -63,6 +64,88 @@ int main (int argc, char* argv[]) ACE_DEBUG((LM_DEBUG ,"Error:TargetManager:Exception in TargetManager call\n")); } + + // make a call to the commit resources ..... + + + Deployment::DeploymentPlan plan; + + plan.instance.length (1); + + ::Deployment::InstanceDeploymentDescription instance_; + instance_.node = CORBA::string_dup ("Delta"); + instance_.deployedResource.length (1); + instance_.deployedResource[0].requirementName = + CORBA::string_dup ("Processor"); + instance_.deployedResource[0].resourceName = + CORBA::string_dup ("CPULoad"); + + instance_.deployedResource[0].property.length (1); + instance_.deployedResource[0].property[0].name = + CORBA::string_dup ("LoadAverage"); + CORBA::Double d = 20; + instance_.deployedResource[0].property[0].value <<= d; + + plan.instance[0] = instance_; + + bool resource_available = 1; + + try + { + targetI->commitResources(plan); + ACE_DEBUG ((LM_DEBUG , "\n\ncommitResources Returned \n")); + } + catch(CORBA::NO_IMPLEMENT &) + { + cerr << "Error:TargetManager:CORBA::NO_IMPLEMENT thrown" << endl; + } + catch (Deployment::ResourceNotAvailable & e) + { + resource_available = 0; + cout << "TargetManager commitResources ResourceNotAvailable Exception" <<endl; + + ACE_DEBUG ((LM_DEBUG , + "ResourceNotAvailable\n name=[%s]\n elementName=[%s]\n resourceName=[%s]\n \ + resourceType= [%s]\n propertyName=[%s]\n", + e.name.in (), + e.elementName.in (), + e.resourceName.in (), + e.resourceType.in (), + e.propertyName.in ())); + } + catch(CORBA::Exception & ex) + { + cout << "Error:TargetManager:commitResources Exception" <<endl; + cout << "Error:TargetManager:CORBA Generic Exception " << endl; + cerr << "Error:TargetManager:Exception in TargetManager call" << ex << endl; + } + + + // Make a call to release resources , if resource < 0 + try + { + if (resource_available == 0) + { + targetI->releaseResources(plan); + ACE_DEBUG ((LM_DEBUG , "\n\nreleaseResources Returned \n")); + } + } + catch(CORBA::NO_IMPLEMENT &) + { + cerr << "Error:TargetManager:CORBA::NO_IMPLEMENT thrown" << endl; + } + catch (Deployment::ResourceNotAvailable & e) + { + cout << "Error:TargetManager releaseResources ResourceNotAvailable Exception" <<endl; + } + catch(CORBA::Exception & ex) + { + cout << "Error:TargetManager:releaseResources Exception" <<endl; + cout << "Error:TargetManager:CORBA Generic Exception " << endl; + cerr << "Error:TargetManager:Exception in TargetManager call" << ex << endl; + } + + // Now make a call of getAvailableResources on the TargetManager ... try { |