summaryrefslogtreecommitdiff
path: root/TAO/CIAO/DAnCE/Config_Handlers/CPK_Handler.cpp
blob: 49516dd54ae637cbd68ab0c9594c5ebe06687f4a (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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
//$Id$

#include "CPK_Handler.h"
#include "tao/Exception.h"
#include "Utils.h"

using CIAO::Config_Handler::Utils;

void
CIAO::Config_Handler::CPK_Handler::
process_CCMComponentPortKind (DOMNodeIterator * iter,
                              Deployment::CCMComponentPortKind &kind)
{
  char* facet = XMLString::transcode (XStr ("Facet"));
  char* simplex_receptacle = XMLString::transcode (XStr ("SimplexReceptacle"));
  char* multiplex_receptacle = XMLString::transcode 
                                 (XStr ("MultiplexReceptacle"));
  char* event_emitter = XMLString::transcode (XStr ("EventEmitter"));
  char* event_publisher = XMLString::transcode (XStr ("EventPublisher"));
  char* event_consumer = XMLString::transcode (XStr ("EventConsumer"));
  char* rtec_event_emitter = XMLString::transcode (XStr ("rtecEventEmitter"));
  char* rtec_event_publisher = XMLString::transcode (XStr ("rtecEventPublisher"));
  char* cos_event_emitter = XMLString::transcode (XStr ("cosEventEmitter"));
  char* cos_event_publisher = XMLString::transcode (XStr ("cosEventPublisher"));
  char* ns_event_emitter = XMLString::transcode (XStr ("nsEventEmitter"));
  char* ns_event_publisher = XMLString::transcode (XStr ("nsEventPublisher"));
  char * temp = Utils::parse_string (iter);
  XStr kind_str = XStr (temp);
  XMLString::release (&temp);

  char* kind_str_tr = XMLString::transcode (kind_str);

  if ((ACE_OS::strcmp (kind_str_tr, facet)) == 0)
    {
      kind = Deployment::Facet;
    }
  else if ((ACE_OS::strcmp (kind_str_tr, simplex_receptacle)) == 0)
    {
      kind = Deployment::SimplexReceptacle;
    }
  else if ((ACE_OS::strcmp (kind_str_tr, multiplex_receptacle)) == 0)
    {
      kind = Deployment::MultiplexReceptacle;
    }
  else if ((ACE_OS::strcmp (kind_str_tr, event_emitter)) == 0)
    {
      kind = Deployment::EventEmitter;
    }
  else if ((ACE_OS::strcmp (kind_str_tr, event_publisher)) == 0)
    {
      kind = Deployment::EventPublisher;
    }
  else if ((ACE_OS::strcmp (kind_str_tr, event_consumer)) == 0)
    {
      kind = Deployment::EventConsumer;
    }
  // RTEC event supplier
  else if ((ACE_OS::strcmp (kind_str_tr, rtec_event_emitter)) == 0)
    {
      kind = Deployment::rtecEventEmitter;
    }
  else if ((ACE_OS::strcmp (kind_str_tr, rtec_event_publisher)) == 0)
    {
      kind = Deployment::rtecEventPublisher;
    }
  // COS EC event supplier
  else if ((ACE_OS::strcmp (kind_str_tr, cos_event_emitter)) == 0)
    {
      kind = Deployment::cosEventEmitter;
    }
  else if ((ACE_OS::strcmp (kind_str_tr, cos_event_publisher)) == 0)
    {
      kind = Deployment::cosEventPublisher;
    }
  // NS event supplier
  else if ((ACE_OS::strcmp (kind_str_tr, ns_event_emitter)) == 0)
    {
      kind = Deployment::nsEventEmitter;
    }
  else if ((ACE_OS::strcmp (kind_str_tr, ns_event_publisher)) == 0)
    {
      kind = Deployment::nsEventPublisher;
    }
  else
    {
      // Something wrong here.. Throw exception
      XMLString::release (&kind_str_tr);
      XMLString::release (&facet);
      XMLString::release (&simplex_receptacle);
      XMLString::release (&multiplex_receptacle);
      XMLString::release (&event_emitter);
      XMLString::release (&event_publisher);
      XMLString::release (&event_consumer);

      ACE_DEBUG ((LM_DEBUG,
                  "Config_Handler::CPK_Handler::process_CCMComponentPortKing \
                   illegal <CCMComponentPortKind> value found \n"));
      ACE_THROW (CORBA::INTERNAL ());
    }

  XMLString::release (&kind_str_tr);
  XMLString::release (&facet);
  XMLString::release (&simplex_receptacle);
  XMLString::release (&multiplex_receptacle);
  XMLString::release (&event_emitter);
  XMLString::release (&event_publisher);
  XMLString::release (&event_consumer);
}