diff options
Diffstat (limited to 'modules/CIAO/tools/Config_Handlers/STD_PCD_Handler.cpp')
-rw-r--r-- | modules/CIAO/tools/Config_Handlers/STD_PCD_Handler.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/modules/CIAO/tools/Config_Handlers/STD_PCD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/STD_PCD_Handler.cpp new file mode 100644 index 00000000000..5a65826f340 --- /dev/null +++ b/modules/CIAO/tools/Config_Handlers/STD_PCD_Handler.cpp @@ -0,0 +1,52 @@ +// $Id$ +#include "STD_PCD_Handler.h" +#include "STD_CPD_Handler.h" +#include "Basic_Deployment_Data.hpp" +#include "ciao/Packaging_DataC.h" +#include "Deployment.hpp" + + +namespace CIAO +{ + namespace Config_Handlers + { + + bool + STD_PCD_Handler::package_config ( + const PackageConfiguration &desc, + ::Deployment::PackageConfiguration &toconfig) + { + toconfig.label = + desc.label ().c_str (); + + toconfig.UUID = + desc.UUID ().c_str (); + + if (!XML_Helper::XML_HELPER.is_initialized ()) + return false; + + // parse the .cpd (ComponentPackageDescription) file + // that <basePackage> links to + xercesc::DOMDocument* dom = + XML_Helper::XML_HELPER.create_dom ((desc.basePackage()).href ().c_str ()); + + if (!dom) + return false; + + ComponentPackageDescription cpc = + componentPackageDescription (dom); + + Deployment::ComponentPackageDescription idl_cpc; + + STD_CPD_Handler cpd_handler; + + cpd_handler.component_package_descr (cpc, + idl_cpc); + + toconfig.basePackage.length (1); + toconfig.basePackage [0] = idl_cpc; + + return true; + } + } +} |