summaryrefslogtreecommitdiff
path: root/TAO/CIAO/CCF/CCF/CIDL/SyntaxTree/HomeExecutor.hpp
blob: d47bfb3188b991e1c0e039a13619e2e89f599409 (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
// file      : CCF/CIDL/SyntaxTree/HomeExecutor.hpp
// author    : Boris Kolpackov <boris@dre.vanderbilt.edu>
// cvs-id    : $Id$

#ifndef CCF_CIDL_SYNTAX_TREE_HOME_EXECUTOR_HPP
#define CCF_CIDL_SYNTAX_TREE_HOME_EXECUTOR_HPP

#include "CCF/IDL2/SyntaxTree/Elements.hpp"
#include "CCF/IDL3/SyntaxTree/Home.hpp"

namespace CCF
{
  namespace CIDL
  {
    namespace SyntaxTree
    {
      using namespace IDL3::SyntaxTree;

      //
      //
      //
      class HomeExecutor : public virtual Scope
      {
      public:
        virtual
        ~HomeExecutor () throw () {}

        HomeExecutor (SimpleName const& name,
                      ScopePtr const& scope,
                      ScopedName implements,
                      SimpleName manages)
            : Declaration (name, scope),
              implements_ (table (), implements),
              manages_ (manages)
        {
          type_info (static_type_info ());
        }

      public:
        HomeDefPtr
        implements () const
        {
          return implements_.resolve ();
        }

        SimpleName
        manages () const
        {
          return manages_;
        }

        // Runtime declaration type information
      public:
        virtual std::string
        declaration_class ()
        {
          return "home executor";
        }

      public:
        static Introspection::TypeInfo const&
        static_type_info ();

      private:
        HomeDefRef implements_;
        SimpleName manages_;
      };

      typedef
      StrictPtr<HomeExecutor>
      HomeExecutorPtr;
    }
  }
}

#endif  // CCF_CIDL_SYNTAX_TREE_HOME_EXECUTOR_HPP