diff options
Diffstat (limited to 'TAO/CIAO/tools/Config_Handlers/IRDD_Handler.cpp')
-rw-r--r-- | TAO/CIAO/tools/Config_Handlers/IRDD_Handler.cpp | 150 |
1 files changed, 79 insertions, 71 deletions
diff --git a/TAO/CIAO/tools/Config_Handlers/IRDD_Handler.cpp b/TAO/CIAO/tools/Config_Handlers/IRDD_Handler.cpp index 36ab6231001..110297ce783 100644 --- a/TAO/CIAO/tools/Config_Handlers/IRDD_Handler.cpp +++ b/TAO/CIAO/tools/Config_Handlers/IRDD_Handler.cpp @@ -5,8 +5,8 @@ #include "IRDD_Handler.h" #include "Basic_Deployment_Data.hpp" #include "ciao/Deployment_DataC.h" -#include "Any_Handler.h" - +#include "Property_Handler.h" +#include "ciao/CIAO_common.h" namespace CIAO @@ -25,90 +25,98 @@ namespace CIAO void IRDD_Handler::instance_resource_deployment_descr ( - const InstanceResourceDeploymentDescription& desc, - Deployment::InstanceResourceDeploymentDescription& toconfig) + const InstanceResourceDeploymentDescription& desc, + Deployment::InstanceResourceDeploymentDescription& toconfig) throw (Config_Error) { - + CIAO_TRACE("IRDD_Handler::instance_resource_deployment_descr"); + switch (desc.resourceUsage ().integral ()) - { - case ResourceUsageKind::None_l: - toconfig.resourceUsage = Deployment::None; - break; - - case ResourceUsageKind::InstanceUsesResource_l: - toconfig.resourceUsage = Deployment::InstanceUsesResource; - break; - - case ResourceUsageKind::ResourceUsesInstance_l: - toconfig.resourceUsage = Deployment::ResourceUsesInstance; - break; - - case ResourceUsageKind::PortUsesResource_l: - toconfig.resourceUsage = Deployment::PortUsesResource; - break; - - case ResourceUsageKind::ResourceUsesPort_l: - toconfig.resourceUsage = Deployment::ResourceUsesPort; - break; - - default: - throw Config_Error (desc.requirementName (), - "Unknown ResourceUsageKind."); - break; - } - + { + case ResourceUsageKind::None_l: + toconfig.resourceUsage = Deployment::None; + break; + + case ResourceUsageKind::InstanceUsesResource_l: + toconfig.resourceUsage = Deployment::InstanceUsesResource; + break; + + case ResourceUsageKind::ResourceUsesInstance_l: + toconfig.resourceUsage = Deployment::ResourceUsesInstance; + break; + + case ResourceUsageKind::PortUsesResource_l: + toconfig.resourceUsage = Deployment::PortUsesResource; + break; + + case ResourceUsageKind::ResourceUsesPort_l: + toconfig.resourceUsage = Deployment::ResourceUsesPort; + break; + + default: + throw Config_Error (desc.requirementName (), + "Unknown ResourceUsageKind."); + break; + } + toconfig.requirementName = desc.requirementName ().c_str (); - + toconfig.resourceName= desc.resourceName ().c_str (); - - Any_Handler::extract_into_any (desc.resourceValue (), - toconfig.resourceValue); - + + toconfig.property.length (desc.count_property ()); + std::for_each (desc.begin_property (), + desc.end_property (), + Property_Functor (toconfig.property)); } InstanceResourceDeploymentDescription IRDD_Handler::instance_resource_deployment_descr ( - const Deployment::InstanceResourceDeploymentDescription& src) + const Deployment::InstanceResourceDeploymentDescription& src) throw (Config_Error) { + CIAO_TRACE("IRDD_Handler::instance_resource_deployment_descr - reverse"); + XMLSchema::string< char > reqname ((src.requirementName)); XMLSchema::string< char > resname ((src.resourceName)); - Any resval (Any_Handler::get_any (src.resourceValue)); - + InstanceResourceDeploymentDescription irdd (ResourceUsageKind::None, - reqname, - resname, - resval); - + reqname, + resname); + switch (src.resourceUsage) - { - case Deployment::None: - irdd.resourceUsage (ResourceUsageKind::None); - break; - - case Deployment::InstanceUsesResource: - irdd.resourceUsage (ResourceUsageKind::InstanceUsesResource); - break; - - case Deployment::ResourceUsesInstance: - irdd.resourceUsage (ResourceUsageKind::ResourceUsesInstance); - break; - - case Deployment::PortUsesResource: - irdd.resourceUsage (ResourceUsageKind::PortUsesResource); - break; - - case Deployment::ResourceUsesPort: - irdd.resourceUsage (ResourceUsageKind::ResourceUsesPort); - break; - - default: - throw Config_Error (src.resourceName.in (), - "Unknown ResourceUsageKind."); - break; - } - + { + case Deployment::None: + irdd.resourceUsage (ResourceUsageKind::None); + break; + + case Deployment::InstanceUsesResource: + irdd.resourceUsage (ResourceUsageKind::InstanceUsesResource); + break; + + case Deployment::ResourceUsesInstance: + irdd.resourceUsage (ResourceUsageKind::ResourceUsesInstance); + break; + + case Deployment::PortUsesResource: + irdd.resourceUsage (ResourceUsageKind::PortUsesResource); + break; + + case Deployment::ResourceUsesPort: + irdd.resourceUsage (ResourceUsageKind::ResourceUsesPort); + break; + + default: + throw Config_Error (src.resourceName.in (), + "Unknown ResourceUsageKind."); + break; + } + + for (CORBA::ULong i = 0; i < src.property.length (); ++i) + { + irdd.add_property (Property_Handler::get_property (src.property[i])); + } + + return irdd; } } |