summaryrefslogtreecommitdiff
path: root/TAO/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.cpp
blob: 1adf552c09efb24c1ab81bcb03565d0fdac96bc2 (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
// $Id$

#include "OC_Handler.h"
#include "OR_Handler.h"
#include "PS_Handler.h"
#include "ciao/ServerResourcesC.h"
#include "CIAOServerResources.hpp"

namespace CIAO
{
    namespace Config_Handlers
    {

	bool OC_Handler::orb_config (
	    const ORBConfigs &src,
	    ::CIAO::DAnCE::ORBConfigs &dest)
	{
          if (src.resources_p ())
            OR_Handler::orb_resources (src.resources (), dest.orb_resources);
          
          CORBA::ULong pos (dest.policy_set.length ());
          
          dest.policy_set.length (pos + src.count_policySet ());
          
          for (ORBConfigs::policySet_const_iterator i = src.begin_policySet ();
               i != src.end_policySet ();
               ++i)
            {
              PS_Handler::policy_set (*i, dest.policy_set[pos++]);
            }
          
          return true;
	}


	ORBConfigs OC_Handler::orb_config (
	    const ::CIAO::DAnCE::ORBConfigs &src)
	{
          ORBConfigs oc;
          
          oc.resources(OR_Handler::orb_resources (src.orb_resources));
          
          size_t len = src.policy_set.length();
          for(size_t i = 0; i < len; i++)
	    {
              oc.add_policySet (PS_Handler::policy_set (src.policy_set [i]));
	    }
          
          return oc;
	}
    }
}