summaryrefslogtreecommitdiff
path: root/modules/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.cpp')
-rw-r--r--modules/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/modules/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.cpp b/modules/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.cpp
new file mode 100644
index 00000000000..41c45ee7c96
--- /dev/null
+++ b/modules/CIAO/tools/Config_Handlers/RT-CCM/OC_Handler.cpp
@@ -0,0 +1,51 @@
+// $Id$
+
+#include "OC_Handler.h"
+#include "OR_Handler.h"
+#include "PS_Handler.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;
+ }
+ }
+}