diff options
Diffstat (limited to 'modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.cpp')
-rw-r--r-- | modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.cpp b/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.cpp new file mode 100644 index 00000000000..dbef7942d93 --- /dev/null +++ b/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.cpp @@ -0,0 +1,61 @@ +// $Id$ +// +#include "ResourceCommitmentManager.h" +#include "DomainDataManager.h" +#include "DAnCE/Logger/Log_Macros.h" + +DAnCE::ResourceCommitmentManager_i::ResourceCommitmentManager_i (void) +{ + DANCE_TRACE ("DAnCE::ResourceCommitmentManager_i"); +} + +DAnCE::ResourceCommitmentManager_i::~ResourceCommitmentManager_i (void) +{ + DANCE_TRACE ("DAnCE::~ResourceCommitmentManager_i"); +} + +void +DAnCE::ResourceCommitmentManager_i::commitResources ( + const ::Deployment::ResourceAllocations& resources) +{ + DANCE_TRACE ("DAnCE::ResourceCommitmentManager_i::commitResources"); + + DOMAIN_DATA_MANAGER->commitResourceAllocation (resources); + + // Commit succesful .. add to commited resource, we get an exception + // if the method above fails + this->add_to_committed_resource (resources); +} + +void +DAnCE::ResourceCommitmentManager_i::releaseResources ( + const ::Deployment::ResourceAllocations & resources) +{ + DANCE_TRACE ("DAnCE::ResourceCommitmentManager_i::releaseResources"); + + // If the resources set is null, use the already allocated resources .. + if (resources.length () == 0) + { + DOMAIN_DATA_MANAGER->releaseResourceAllocation (this->resources_); + } + else + { + DOMAIN_DATA_MANAGER->releaseResourceAllocation (resources); + } +} + +void +DAnCE::ResourceCommitmentManager_i::add_to_committed_resource ( + ::Deployment::ResourceAllocations res) +{ + DANCE_TRACE ("DAnCE::ResourceCommitmentManager_i::add_to_commited_resource"); + + CORBA::ULong const current_length = this->resources_.length (); + + this->resources_.length (current_length + res.length ()); + + for (CORBA::ULong i = 0;i < res.length ();i++) + { + this->resources_[current_length + i] = res[i]; + } +} |