Merge pull request #1844 from jrw972/monterey
[ACE_TAO.git] / TAO / TAO_IDL / be_include / be_visitor_array / array.h
blob42fa8a82bc4a130371825900fd82c14505547e25
2 //=============================================================================
3 /**
4 * @file array.h
6 * Visitors for generation of code for Arrays.
8 * @author Aniruddha Gokhale
9 */
10 //=============================================================================
13 #ifndef _BE_VISITOR_ARRAY_ARRAY_H_
14 #define _BE_VISITOR_ARRAY_ARRAY_H_
16 // ************************************************************
17 // class be_visitor_array
18 // ************************************************************
20 /**
21 * @class be_visitor_array
23 * @brief be_visitor_array
25 * This is a generic visitor for arrays
27 class be_visitor_array : public be_visitor_decl
29 public:
30 /// Constructor
31 be_visitor_array (be_visitor_context *ctx);
33 /// destructor
34 ~be_visitor_array (void);
36 /// visit the array node
37 virtual int visit_array (be_array *);
39 // = Visitor methods on array types
41 /// visit an enum
42 virtual int visit_enum (be_enum *node);
44 /// visit an interface
45 virtual int visit_interface (be_interface *node);
47 /// visit an interface forward node
48 virtual int visit_interface_fwd (be_interface_fwd *node);
50 /// visit a valuebox
51 virtual int visit_valuebox (be_valuebox *node);
53 /// visit a valuetype
54 virtual int visit_valuetype (be_valuetype *node);
56 /// visit a valuetype forward node
57 virtual int visit_valuetype_fwd (be_valuetype_fwd *node);
59 /// visit a predefined type node
60 virtual int visit_predefined_type (be_predefined_type *node);
62 /// visit sequence
63 virtual int visit_sequence (be_sequence *node);
65 /// visit string
66 virtual int visit_string (be_string *node);
68 /// visit structure
69 virtual int visit_structure (be_structure *node);
71 /// visit typedef
72 virtual int visit_typedef (be_typedef *node);
74 /// visit union
75 virtual int visit_union (be_union *node);
77 protected:
79 /// helper that does the common job
80 int visit_node (be_type *);
82 /// helper that does the common job
83 int emit_common (be_type *node);
87 #endif /* _BE_VISITOR_ARRAY_ARRAY_H_*/