Merge pull request #1844 from jrw972/monterey
[ACE_TAO.git] / TAO / TAO_IDL / be_include / be_visitor_component / component.h
blobfc6a2ae7d11f9674a9295aea6256b8155dd429a7
1 /* -*- c++ -*- */
3 //=============================================================================
4 /**
5 * @file component.h
7 * Concrete visitor for components
8 * This one provides the generic visitor for the be_component node.
10 * @author Jeff Parsons
12 //=============================================================================
14 #ifndef _BE_VISITOR_COMPONENT_COMPONENT_H_
15 #define _BE_VISITOR_COMPONENT_COMPONENT_H_
17 /**
18 * @class be_visitor_component
20 * @brief be_visitor_component
22 * This is a concrete visitor for component
23 * that abstracts all common tasks.
25 class be_visitor_component : public be_visitor_interface
28 public:
29 be_visitor_component (be_visitor_context *ctx);
31 ~be_visitor_component (void);
33 /// This is the only type of declaration a component may contain.
34 virtual int visit_attribute (be_attribute *node);
36 /// Operations are created by the back end for 'provides', 'uses', 'emits',
37 /// 'publishes' and 'consumes' declarations.
38 virtual int visit_operation (be_operation *node);
40 /// Structs and sequences are created by the back end for 'uses multiple'
41 /// declarations.
42 virtual int visit_structure (be_structure *node);
43 virtual int visit_typedef (be_typedef *node);
45 /// Overridden to pick up attribute declarations from a porrttype.
46 virtual int visit_extended_port (be_extended_port *node);
47 virtual int visit_mirror_port (be_mirror_port *node);
50 #endif /* _BE_VISITOR_MODULE_MODULE_H_ */