Merge pull request #1844 from jrw972/monterey
[ACE_TAO.git] / TAO / TAO_IDL / be_include / be_decl.h
blobdce208816c29e920138624f9a37af830c8290515
1 /* -*- c++ -*- */
3 //=============================================================================
4 /**
5 * @file be_decl.h
7 * Extension of the AST_Decl class.
9 * @author Copyright 1994-1995 by Sun Microsystems
10 * @author Inc. and Aniruddha Gokhale
12 //=============================================================================
14 #ifndef TAO_BE_DECL_H
15 #define TAO_BE_DECL_H
17 #include "ast_decl.h"
19 class be_scope;
20 class be_visitor;
21 class be_type;
23 /**
24 * @class be_decl
26 * @brief be_decl
28 * The back end extension of the AST_Decl class. Provides an abstract
29 * interface.
31 class be_decl : public virtual AST_Decl
33 public:
34 be_decl (AST_Decl::NodeType type,
35 UTL_ScopedName *n);
37 ~be_decl (void);
39 // Methods used by the interface type strategy.
40 /// Both the arguments should be non-null!!!. Applies prefix and
41 /// suffix to the local name and makes a flat name.
42 void compute_full_name (const char *prefix,
43 const char *suffix,
44 char *&name);
46 /// Both the arguments should be non-null!!!. Applies prefix and
47 /// suffix to the local name and makes a flat name.
48 void compute_flat_name (const char *prefix,
49 const char *suffix,
50 char *& name);
52 // End of Methods use by the interface type strategy.
54 /// Return the scope created by this node (if one exists).
55 virtual be_scope *scope (void);
57 // Visiting
58 virtual int accept (be_visitor *visitor);
60 /// Cleanup function.
61 virtual void destroy (void);
63 /// Temporarily set this node's is_local_ flag.
64 void set_local (bool val);
66 // Boolean methods to test if code was already generated.
67 bool cli_hdr_gen (void);
68 bool cli_stub_gen (void);
69 bool cli_inline_gen (void);
70 bool srv_hdr_gen (void);
71 bool impl_hdr_gen (void);
72 bool srv_skel_gen (void);
73 bool impl_skel_gen (void);
74 bool srv_inline_gen (void);
75 bool tie_skel_gen (void);
76 bool cli_hdr_any_op_gen (void);
77 bool cli_stub_any_op_gen (void);
78 bool cli_hdr_cdr_op_gen (void);
79 bool cli_stub_cdr_op_gen (void);
80 bool cli_inline_cdr_op_gen (void);
81 bool cli_inline_cdr_decl_gen (void);
82 bool cli_traits_gen (void);
83 bool cli_arg_traits_gen (void);
84 bool srv_arg_traits_gen (void);
85 bool srv_sarg_traits_gen (void);
86 bool cli_pragma_inst_gen (void);
87 bool cli_inarg_tmpl_class_gen (void);
88 bool cli_inarg_pragma_inst_gen (void);
89 bool cli_inoutarg_tmpl_class_gen (void);
90 bool cli_inoutarg_pragma_inst_gen (void);
91 bool cli_outarg_tmpl_class_gen (void);
92 bool cli_outarg_pragma_inst_gen (void);
93 bool cli_retarg_tmpl_class_gen (void);
94 bool cli_retarg_pragma_inst_gen (void);
95 bool srv_tmpl_class_gen (void);
96 bool srv_pragma_inst_gen (void);
97 bool srv_inarg_tmpl_class_gen (void);
98 bool srv_inarg_pragma_inst_gen (void);
99 bool srv_inoutarg_tmpl_class_gen (void);
100 bool srv_inoutarg_pragma_inst_gen (void);
101 bool srv_outarg_tmpl_class_gen (void);
102 bool srv_outarg_pragma_inst_gen (void);
103 bool srv_retarg_tmpl_class_gen (void);
104 bool srv_retarg_pragma_inst_gen (void);
105 bool ccm_pre_proc_gen (void);
106 bool ex_idl_facet_gen (void);
107 bool svnt_hdr_facet_gen (void);
108 bool svnt_src_facet_gen (void);
109 bool exec_hdr_facet_gen (void);
110 bool exec_src_facet_gen (void);
111 bool ami4ccm_ex_idl_gen (void);
113 // Set the flag indicating that code generation is done.
114 void cli_hdr_gen (bool);
115 void cli_stub_gen (bool);
116 void cli_inline_gen (bool);
117 void srv_hdr_gen (bool);
118 void impl_hdr_gen (bool);
119 void srv_skel_gen (bool);
120 void impl_skel_gen (bool);
121 void srv_inline_gen (bool);
122 void tie_skel_gen (bool);
123 void cli_hdr_any_op_gen (bool);
124 void cli_stub_any_op_gen (bool);
125 void cli_hdr_cdr_op_gen (bool);
126 void cli_stub_cdr_op_gen (bool);
127 void cli_inline_cdr_op_gen (bool);
128 void cli_inline_cdr_decl_gen (bool);
129 void cli_traits_gen (bool);
130 void cli_arg_traits_gen (bool);
131 void srv_arg_traits_gen (bool);
132 void srv_sarg_traits_gen (bool);
133 void cli_pragma_inst_gen (bool);
134 void cli_inarg_tmpl_class_gen (bool);
135 void cli_inarg_pragma_inst_gen (bool);
136 void cli_inoutarg_tmpl_class_gen (bool);
137 void cli_inoutarg_pragma_inst_gen (bool);
138 void cli_outarg_tmpl_class_gen (bool);
139 void cli_outarg_pragma_inst_gen (bool);
140 void cli_retarg_tmpl_class_gen (bool);
141 void cli_retarg_pragma_inst_gen (bool);
142 void srv_tmpl_class_gen (bool);
143 void srv_pragma_inst_gen (bool);
144 void srv_inarg_tmpl_class_gen (bool);
145 void srv_inarg_pragma_inst_gen (bool);
146 void srv_inoutarg_tmpl_class_gen (bool);
147 void srv_inoutarg_pragma_inst_gen (bool);
148 void srv_outarg_tmpl_class_gen (bool);
149 void srv_outarg_pragma_inst_gen (bool);
150 void srv_retarg_tmpl_class_gen (bool);
151 void srv_retarg_pragma_inst_gen (bool);
152 void ccm_pre_proc_gen (bool);
153 void ex_idl_facet_gen (bool);
154 void svnt_hdr_facet_gen (bool);
155 void svnt_src_facet_gen (bool);
156 void exec_hdr_facet_gen (bool);
157 void exec_src_facet_gen (bool);
158 void ami4ccm_ex_idl_gen (bool);
160 // Narrowing
162 DEF_NARROW_FROM_DECL (be_decl);
164 private:
165 // Variables that indicate if the code generation for that node is already
166 // been done. This way we avoid regenerating same code.
167 bool cli_hdr_gen_;
168 bool cli_stub_gen_;
169 bool cli_inline_gen_;
170 bool srv_hdr_gen_;
171 bool impl_hdr_gen_;
172 bool srv_skel_gen_;
173 bool impl_skel_gen_;
174 bool srv_inline_gen_;
175 bool tie_skel_gen_;
176 bool cli_hdr_any_op_gen_;
177 bool cli_stub_any_op_gen_;
178 bool cli_hdr_cdr_op_gen_;
179 bool cli_stub_cdr_op_gen_;
180 bool cli_inline_cdr_op_gen_;
181 bool cli_inline_cdr_decl_gen_;
182 bool cli_traits_gen_;
183 bool cli_arg_traits_gen_;
184 bool srv_arg_traits_gen_;
185 bool srv_sarg_traits_gen_;
186 bool cli_pragma_inst_gen_;
187 bool cli_inarg_tmpl_class_gen_;
188 bool cli_inarg_pragma_inst_gen_;
189 bool cli_inoutarg_tmpl_class_gen_;
190 bool cli_inoutarg_pragma_inst_gen_;
191 bool cli_outarg_tmpl_class_gen_;
192 bool cli_outarg_pragma_inst_gen_;
193 bool cli_retarg_tmpl_class_gen_;
194 bool cli_retarg_pragma_inst_gen_;
195 bool srv_tmpl_class_gen_;
196 bool srv_pragma_inst_gen_;
197 bool srv_inarg_tmpl_class_gen_;
198 bool srv_inarg_pragma_inst_gen_;
199 bool srv_inoutarg_tmpl_class_gen_;
200 bool srv_inoutarg_pragma_inst_gen_;
201 bool srv_outarg_tmpl_class_gen_;
202 bool srv_outarg_pragma_inst_gen_;
203 bool srv_retarg_tmpl_class_gen_;
204 bool srv_retarg_pragma_inst_gen_;
205 bool ccm_pre_proc_gen_;
206 bool ex_idl_facet_gen_;
207 bool svnt_hdr_facet_gen_;
208 bool svnt_src_facet_gen_;
209 bool exec_hdr_facet_gen_;
210 bool exec_src_facet_gen_;
211 bool ami4ccm_ex_idl_gen_;
214 #endif // if !defined