diff options
Diffstat (limited to 'TAO/CIAO/DAnCE/ComponentPackager/PDL_Handler.cpp')
-rw-r--r-- | TAO/CIAO/DAnCE/ComponentPackager/PDL_Handler.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/TAO/CIAO/DAnCE/ComponentPackager/PDL_Handler.cpp b/TAO/CIAO/DAnCE/ComponentPackager/PDL_Handler.cpp new file mode 100644 index 00000000000..1691a91cded --- /dev/null +++ b/TAO/CIAO/DAnCE/ComponentPackager/PDL_Handler.cpp @@ -0,0 +1,63 @@ +// $Id$ + +#include "PDL_Handler.h" +#include "Config_Handlers/XML_Helper.h" +#include "xercesc/dom/DOM.hpp" + +namespace CIAO +{ + namespace Component_Packager + { + using namespace CIAO::Config_Handlers; + using xercesc::DOMDocument; + + PDL_Handler::PDL_Handler () + { + } + + PDL_Handler::~PDL_Handler() + { + } + + + int + PDL_Handler::process_pdl (const char *pdl_url, + DESC_LIST &desc_list) + { + //@@ retrieve location information for standard descriptors + XML_Helper pdl_helper; + + if (!pdl_helper.is_initialized ()) + return -1; + + xercesc::DOMDocument* pdl_dom = + pdl_helper.create_dom (pdl_url); + + if (!pdl_dom) + return -1; + + Package::PackageDescriptorsList list = + Package::packageDescriptorsList (pdl_dom); + + this->get_DescriptorsList (list, + desc_list); + return 0; + } + + void + PDL_Handler::get_DescriptorsList (Package::PackageDescriptorsList &list, + DESC_LIST &desc_list) + { + for (Package::PackageDescriptorsList::desc_const_iterator iter = list.begin_desc (); + iter != list.end_desc (); + iter++) + { + ACE_TString value((*iter).c_str ()); + if (value.length () != 0) + desc_list.push_back (value); + } + return; + } + + } +} |