summaryrefslogtreecommitdiff
path: root/TAO/CIAO/DAnCE/ComponentPackager/PDL_Handler.cpp
blob: 1691a91cded00fd2345913183be103fc55551c85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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;    
  }

  }
}