summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be_include/be_visitor_structure.h
blob: 63484a80692782ebd5ecfd11ffc580b154b687ff (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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
/* -*- c++ -*- */
//
// $Id$
//

// ============================================================================
//
// = LIBRARY
//    TAO IDL
//
// = FILENAME
//    be_visitor_structure.h
//
// = DESCRIPTION
//    Concrete visitor for the Structure class
//
// = AUTHOR
//    Aniruddha Gokhale
//
// ============================================================================

#if !defined (TAO_BE_VISITOR_STRUCTURE_H)
#define TAO_BE_VISITOR_STRUCTURE_H

#include "be_visitor.h"
#include "be_visitor_scope.h"

class be_visitor_structure : public be_visitor_scope
{
  //
  // = TITLE
  //   be_visitor_structure
  //
  // = DESCRIPTION
  //   This is the base visitor for structure
  //
  //
public:
  be_visitor_structure (be_visitor_context *ctx);
  // constructureor

  ~be_visitor_structure (void);
  // destructureor

  virtual int visit_structure (be_structure *node);
  // visit structure. We provide code for this method in the derived class

  // =visit operations on syntactically valid elements in our scope

  virtual int visit_field (be_field *node);
  // visit field
};

class be_visitor_structure_ch : public be_visitor_structure
{
  //
  // = TITLE
  //   be_visitor_structure_ch
  //
  // = DESCRIPTION
  //   This is a concrete visitor to generate the client header for structure
  //
  //
public:
  be_visitor_structure_ch (be_visitor_context *ctx);
  // constructureor

  ~be_visitor_structure_ch (void);
  // destructureor

  virtual int visit_structure (be_structure *node);
  // visit structure. We provide code for this method in the derived class

};

class be_visitor_structure_ci : public be_visitor_structure
{
  //
  // = TITLE
  //   be_visitor_structure_ci
  //
  // = DESCRIPTION
  //   This is a concrete visitor to generate the client inline for structure
  //
  //
public:
  be_visitor_structure_ci (be_visitor_context *ctx);
  // constructureor

  ~be_visitor_structure_ci (void);
  // destructureor

  virtual int visit_structure (be_structure *node);
  // visit structure. We provide code for this method in the derived class

};

class be_visitor_structure_cs : public be_visitor_structure
{
  //
  // = TITLE
  //   be_visitor_structure_cs
  //
  // = DESCRIPTION
  //   This is a concrete visitor to generate the client stubs for structure
  //
  //
public:
  be_visitor_structure_cs (be_visitor_context *ctx);
  // constructureor

  ~be_visitor_structure_cs (void);
  // destructureor

  virtual int visit_structure (be_structure *node);
  // visit structure. We provide code for this method in the derived class

};

class be_visitor_structure_any_op_ch : public be_visitor_structure
{
  //
  // = TITLE
  //   be_visitor_structure_any_op_ch
  //
  // = DESCRIPTION
  //   This is a concrete visitor for structure that generates the Any operator
  //   declarations
  //

public:
  be_visitor_structure_any_op_ch (be_visitor_context *ctx);
  // constructor

  ~be_visitor_structure_any_op_ch (void);
  // destructor

  virtual int visit_structure (be_structure *node);
  // visit structure

  virtual int visit_field (be_field *node);
  // visit field
};

class be_visitor_structure_any_op_cs : public be_visitor_structure
{
  //
  // = TITLE
  //   be_visitor_structure_any_op_cs
  //
  // = DESCRIPTION
  //   This is a concrete visitor for structure that generates the Any operator
  //   implementations
  //

public:
  be_visitor_structure_any_op_cs (be_visitor_context *ctx);
  // constructor

  ~be_visitor_structure_any_op_cs (void);
  // destructor

  virtual int visit_structure (be_structure *node);
  // visit structure

  virtual int visit_field (be_field *node);
  // visit field
};


#endif // TAO_BE_VISITOR_STRUCTURE_H