summaryrefslogtreecommitdiff
path: root/modules/CIAO/tools/Config_Handlers/test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/tools/Config_Handlers/test.cpp')
-rw-r--r--modules/CIAO/tools/Config_Handlers/test.cpp119
1 files changed, 119 insertions, 0 deletions
diff --git a/modules/CIAO/tools/Config_Handlers/test.cpp b/modules/CIAO/tools/Config_Handlers/test.cpp
new file mode 100644
index 00000000000..fd50374aa7e
--- /dev/null
+++ b/modules/CIAO/tools/Config_Handlers/test.cpp
@@ -0,0 +1,119 @@
+// $Id$
+
+#include <iostream>
+
+#include "Deployment.hpp"
+#include "DP_Handler.h"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "ace/Get_Opt.h"
+#include "Utils/XML_Typedefs.h"
+#include "tao/ORB.h"
+static const char *input_file = "BasicSP.cdp";
+
+
+static int
+parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "i:");
+
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'i':
+ input_file = get_opts.opt_arg ();
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-i <input file> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command-line
+ return 0;
+}
+
+// Check to see if SRD was imported.
+void check_srd (const Deployment::DeploymentPlan &);
+
+using namespace CIAO::Config_Handlers;
+
+
+int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ // Initialize an ORB so Any will work
+ CORBA::ORB_ptr orb = CORBA::ORB_init (argc, argv);
+ ACE_UNUSED_ARG (orb);
+
+ //Create an XML_Helper for all the file work
+
+ if (xercesc::DOMDocument *doc =
+ XML_Helper::XML_HELPER.create_dom (input_file))
+ {
+ //Read in the XSC type structure from the DOMDocument
+ DeploymentPlan dp = deploymentPlan (doc);
+
+ //Convert the XSC to an IDL datatype
+
+ DP_Handler dp_handler (dp);
+
+ std::cout << "Instance document import succeeded. Dumping contents to file\n";
+
+ //Retrieve the newly created IDL structure
+ Deployment::DeploymentPlan *idl = dp_handler.plan();
+
+ // Check for server resources, if present....
+ check_srd (*idl);
+
+ //Convert it back to an XSC structure with a new DP_Handler
+ DP_Handler reverse_handler(*idl);
+
+ //Create a new DOMDocument for writing the XSC into XML
+ xercesc::DOMDocument* the_xsc
+ (XML_Helper::XML_HELPER.create_dom(0));
+
+ //Serialize the XSC into a DOMDocument
+ deploymentPlan(*reverse_handler.xsc(), the_xsc);
+
+
+ //Write it to test.xml
+ XML_Helper::XML_HELPER.write_DOM(the_xsc, "test.xml");
+
+ //Cleanliness is next to Godliness
+ delete doc;
+ }
+
+ std::cout << "Test completed!\n";
+
+ return 0;
+}
+
+
+void check_srd (const Deployment::DeploymentPlan &dp)
+{
+ for (CORBA::ULong i = 0;
+ i < dp.infoProperty.length ();
+ ++i)
+ {
+ if (ACE_OS::strcmp (dp.infoProperty[i].name.in (),
+ "CIAOServerResources") == 0)
+ {
+ CIAO::DAnCE::ServerResource *test;
+
+ if (dp.infoProperty[i].value >>= test)
+ std::cerr << "ServerResources found and successfully extracted." << std::endl;
+ else
+ std::cerr << "ERROR: ServerResource extraction failed!" << std::endl;
+ }
+ }
+
+}
+