summaryrefslogtreecommitdiff
path: root/trunk/CIAO/CCF/CCF/IDL3/SemanticAction/Impl/Factory.hpp
blob: fc6b80a9a6b98a67e7c291e67df17f5b18970061 (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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
// file      : CCF/IDL3/SemanticAction/Impl/Factory.hpp
// author    : Boris Kolpackov <boris@dre.vanderbilt.edu>
// cvs-id    : $Id$

#ifndef CCF_IDL3_SEMANTIC_ACTION_IMPL_FACTORY_HPP
#define CCF_IDL3_SEMANTIC_ACTION_IMPL_FACTORY_HPP

#include "CCF/IDL3/SemanticAction/Factory.hpp"

#include "CCF/IDL2/SemanticAction/Impl/Factory.hpp"

#include "CCF/IDL3/SemanticAction/Impl/Component.hpp"
#include "CCF/IDL3/SemanticAction/Impl/Provides.hpp"
#include "CCF/IDL3/SemanticAction/Impl/Uses.hpp"
#include "CCF/IDL3/SemanticAction/Impl/Publishes.hpp"
#include "CCF/IDL3/SemanticAction/Impl/Emits.hpp"
#include "CCF/IDL3/SemanticAction/Impl/Consumes.hpp"
#include "CCF/IDL3/SemanticAction/Impl/EventType.hpp"
#include "CCF/IDL3/SemanticAction/Impl/EventTypeFactory.hpp"
#include "CCF/IDL3/SemanticAction/Impl/Home.hpp"
#include "CCF/IDL3/SemanticAction/Impl/HomeFactory.hpp"
#include "CCF/IDL3/SemanticAction/Impl/HomeFinder.hpp"
#include "CCF/IDL3/SemanticAction/Impl/Include.hpp"

namespace CCF
{
  namespace IDL3
  {
    namespace SemanticAction
    {
      namespace Impl
      {
        struct Factory : virtual IDL3::SemanticAction::Factory,
                         virtual IDL2::SemanticAction::Impl::Factory
        {
          Factory (CompilerElements::Context& context,
                   Diagnostic::Stream& dout,
                   SemanticGraph::TranslationUnit& tu);

          virtual SemanticAction::Consumes&
          consumes ()
          {
            return consumes_;
          }

          virtual SemanticAction::Component&
          component ()
          {
            return component_;
          }

          virtual SemanticAction::Emits&
          emits ()
          {
            return emits_;
          }


          virtual SemanticAction::EventType&
          event_type ()
          {
            return event_type_;
          }

          virtual EventTypeFactory&
          event_type_factory ()
          {
            return event_type_factory_;
          }


          virtual SemanticAction::Home&
          home ()
          {
            return home_;
          }

          virtual SemanticAction::HomeFactory&
          home_factory ()
          {
            return home_factory_;
          }

          virtual SemanticAction::HomeFinder&
          home_finder ()
          {
            return home_finder_;
          }

          virtual IDL2::SemanticAction::Include&
          include ()
          {
            return include_;
          }

          virtual SemanticAction::Provides&
          provides ()
          {
            return provides_;
          }

          virtual SemanticAction::Publishes&
          publishes ()
          {
            return publishes_;
          }

          virtual SemanticAction::Uses&
          uses ()
          {
            return uses_;
          }

        private:

          Component component_;
          Consumes consumes_;
          Emits emits_;
          EventType event_type_;
          EventTypeFactory event_type_factory_;
          Home home_;
          HomeFactory home_factory_;
          HomeFinder home_finder_;
          Include include_;
          Provides provides_;
          Publishes publishes_;
          Uses uses_;
        };
      }
    }
  }
}

#endif  // CCF_IDL3_SEMANTIC_ACTION_IMPL_FACTORY_HPP