diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-04-13 14:47:50 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-04-13 14:47:50 +0000 |
commit | feb8e89d1f3932917e3068c9c23db15ce55286e4 (patch) | |
tree | 0d62c61c2e4151b7665392d162436ee7d1e6782d /TAO/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.cpp | |
parent | cbe8aa5d5be1d4679ae0c4e30baaea24fbae416c (diff) | |
download | ATCD-feb8e89d1f3932917e3068c9c23db15ce55286e4.tar.gz |
Thu Apr 13 13:43:19 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>escher_x_4_9_integration_point
Diffstat (limited to 'TAO/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.cpp')
-rw-r--r-- | TAO/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.cpp | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/TAO/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.cpp b/TAO/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.cpp new file mode 100644 index 00000000000..ef29bc86272 --- /dev/null +++ b/TAO/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.cpp @@ -0,0 +1,113 @@ +//$Id$ + +#include "SatisfierProperty_Handler.h" +#include "Any_Handler.h" +#include "Basic_Deployment_Data.hpp" +#include "ciao/Deployment_DataC.h" +#include "ciao/CIAO_common.h" +#include "Utils/Exceptions.h" +namespace CIAO +{ + namespace Config_Handlers + { + + SatisfierProperty_Handler::SatisfierProperty_Handler (void) + { + } + + SatisfierProperty_Handler::~SatisfierProperty_Handler (void) + { + } + + void + SatisfierProperty_Handler::get_sat_property ( + const SatisfierProperty& desc, + Deployment::SatisfierProperty& toconfig) + { + CIAO_TRACE("SatisfierProperty_Handler::get_sat_property"); + + toconfig.name = desc.name ().c_str (); + + switch (desc.kind ().integral ()) + { + case SatisfierPropertyKind::Quantity_l: + toconfig.kind = Deployment::Quantity; + break; + + case SatisfierPropertyKind::Capacity_l: + toconfig.kind = Deployment::Capacity; + break; + + case SatisfierPropertyKind::Minimum_l: + toconfig.kind = Deployment::Minimum; + break; + + case SatisfierPropertyKind::Maximum_l: + toconfig.kind = Deployment::Maximum; + break; + + // case SatisfierPropertyKind::Attribute_l: + //toconfig.kind = Deployment::_Attribute; + //break; + + case SatisfierPropertyKind::Selection_l: + toconfig.kind = Deployment::Selection; + break; + } + + toconfig.dynamic = desc.dynamic (); + + Any_Handler::extract_into_any (desc.value (), + toconfig.value); + } + + SatisfierProperty + SatisfierProperty_Handler::get_sat_property ( + const Deployment::SatisfierProperty& src) + { + CIAO_TRACE("SatisfierProperty_Handler::get_sat_property - reverse"); + + ::XMLSchema::string< ACE_TCHAR > name ((src.name)); + SatisfierPropertyKind::Value kind; + + const SatisfierPropertyKind *spk; + + switch (src.kind) + { + case Deployment::Quantity: + spk = &SatisfierPropertyKind::Quantity; + break; + + case Deployment::Capacity: + spk = &SatisfierPropertyKind::Capacity; + break; + + case Deployment::Minimum: + spk = &SatisfierPropertyKind::Minimum; + break; + + case Deployment::Maximum: + spk = &SatisfierPropertyKind::Maximum; + break; + + // case Deployment::_Attribute: + //kind = SatisfierPropertyKind::Attribute_l; + //break; + + case Deployment::Selection: + kind = SatisfierPropertyKind::Selection_l; + break; + + default: + throw Plan_Error ("Invalid SatisfierPropertyKind"); + } + + bool dynamic = src.dynamic; + + Any value (Any_Handler::get_any (src.value)); + + return SatisfierProperty (name, *spk, dynamic, value); + } + + } +} |