summaryrefslogtreecommitdiff
path: root/TAO/CIAO/DAnCE/Config_Handlers/IRDD_Handler.cpp
blob: 57e876b81b0aa6828d7ee7f243a70c5f45222032 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

// $Id$


#include "IRDD_Handler.h"
#include "Basic_Deployment_Data.hpp"
#include "ciao/Deployment_DataC.h"
#include "Any_Handler.h"



namespace CIAO
{
  namespace Config_Handlers
  {

    IRDD_Handler::IRDD_Handler (void)
    {
    }

    IRDD_Handler::~IRDD_Handler (void)
    {
    }


    void
    IRDD_Handler::instance_resource_deployment_descr (
                    const InstanceResourceDeploymentDescription& desc,
                    Deployment::InstanceResourceDeploymentDescription& toconfig)
    {


      
      if (desc.resourceUsage () ==
         ResourceUsageKind::None)        
         toconfig.resourceUsage = Deployment::None;
      if (desc.resourceUsage () ==
         ResourceUsageKind::InstanceUsesResource)        
         toconfig.resourceUsage = Deployment::InstanceUsesResource;
      if (desc.resourceUsage () ==
         ResourceUsageKind::ResourceUsesInstance)        
         toconfig.resourceUsage = Deployment::ResourceUsesInstance;
      if (desc.resourceUsage () ==
         ResourceUsageKind::PortUsesResource)        
         toconfig.resourceUsage = Deployment::PortUsesResource;
      if (desc.resourceUsage () ==
         ResourceUsageKind::ResourceUsesPort)        
         toconfig.resourceUsage = Deployment::ResourceUsesPort;
      
      toconfig.requirementName=
           CORBA::string_dup (desc.requirementName ().c_str ());
      
      toconfig.resourceName=
           CORBA::string_dup (desc.resourceName ().c_str ());
      
      Any_Handler::extract_into_any (
       desc.resourceValue (),
       toconfig.resourceValue);
      
    }

    InstanceResourceDeploymentDescription
    IRDD_Handler::instance_resource_deployment_descr (
      const Deployment::InstanceResourceDeploymentDescription& src)
    {
      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);  
      
      if (src.resourceUsage == Deployment::None)
         irdd.resourceUsage (ResourceUsageKind::None);
      if (src.resourceUsage  ==
         Deployment::InstanceUsesResource)
         irdd.resourceUsage (ResourceUsageKind::InstanceUsesResource);
      if (src.resourceUsage  ==
         Deployment::ResourceUsesInstance)
         irdd.resourceUsage (ResourceUsageKind::ResourceUsesInstance);
      if (src.resourceUsage  ==
         Deployment::PortUsesResource)
         irdd.resourceUsage (ResourceUsageKind::PortUsesResource);
      if (src.resourceUsage  ==
         Deployment::ResourceUsesPort)
         irdd.resourceUsage (ResourceUsageKind::ResourceUsesPort);
         
      return irdd;
    }
  }

}