summaryrefslogtreecommitdiff
path: root/modules/CIAO/tools/Config_Handlers/XML_File_Intf.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/tools/Config_Handlers/XML_File_Intf.cpp')
-rw-r--r--modules/CIAO/tools/Config_Handlers/XML_File_Intf.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/modules/CIAO/tools/Config_Handlers/XML_File_Intf.cpp b/modules/CIAO/tools/Config_Handlers/XML_File_Intf.cpp
new file mode 100644
index 00000000000..d7d55058b25
--- /dev/null
+++ b/modules/CIAO/tools/Config_Handlers/XML_File_Intf.cpp
@@ -0,0 +1,65 @@
+// $Id$
+
+#include "XML_File_Intf.h"
+#include "Utils/XML_Helper.h"
+#include "Deployment.hpp"
+#include "DP_Handler.h"
+#include "ciao/Deployment_DataC.h"
+#include "ciao/CIAO_common.h"
+
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ XML_File_Intf::XML_File_Intf (const char *file)
+ {
+ if (!this->read_process_file (file))
+ throw;
+ }
+
+ bool
+ XML_File_Intf::read_process_file (const char *file)
+ {
+ CIAO_TRACE("XML_File_Intf::read_process_file");
+
+ XML_Helper helper;
+
+ if (!helper.is_initialized ())
+ return false;
+
+ XERCES_CPP_NAMESPACE::DOMDocument *dom =
+ helper.create_dom (file);
+
+ if (!dom)
+ return false;
+
+ DeploymentPlan dp =
+ deploymentPlan (dom);
+
+
+ DP_Handler dp_handler (dp);
+
+ this->idl_dp_.reset (dp_handler.plan ());
+
+ if (this->idl_dp_.get ())
+ return true;
+
+ return false;
+ }
+
+ ::Deployment::DeploymentPlan const *
+ XML_File_Intf::get_plan (void) const
+ {
+ CIAO_TRACE("get_plan");
+ return this->idl_dp_.get ();
+ }
+
+ ::Deployment::DeploymentPlan *
+ XML_File_Intf::get_plan (void)
+ {
+ CIAO_TRACE("XML_File_Intf::get_plan");
+ return this->idl_dp_.release ();
+ }
+ }
+}