summaryrefslogtreecommitdiff
path: root/modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.cpp')
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.cpp
new file mode 100644
index 00000000000..020396582d3
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.cpp
@@ -0,0 +1,46 @@
+// $Id$
+#include "STD_IAD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "ciao/Packaging_DataC.h"
+#include "Property_Handler.h"
+
+#include "iad.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ bool
+ STD_IAD_Handler::impl_artifact_descr (
+ const ImplementationArtifactDescription &desc,
+ ::Deployment::ImplementationArtifactDescription &toconfig)
+ {
+ toconfig.label =
+ desc.label ().c_str ();
+
+ toconfig.UUID =
+ desc.UUID ().c_str ();
+
+ for (ImplementationArtifactDescription::location_const_iterator iter =
+ desc.begin_location ();
+ iter != desc.end_location ();
+ iter++)
+ {
+ CORBA::ULong len =
+ toconfig.location.length ();
+ toconfig.location.length (len + 1);
+ toconfig.location [len] = (*iter).c_str ();
+ }
+
+ if (desc.execParameter_p ())
+ {
+ Property p = desc.execParameter ();
+ Deployment::Property idl_p;
+ Property_Handler::get_property (p, idl_p);
+ toconfig.execParameter.length (1);
+ toconfig.execParameter [0] = idl_p;
+ }
+ return true;
+ }
+ }
+}