diff options
Diffstat (limited to 'TAO/TAO_IDL/be_include/be_visitor_interface/amh_sh.h')
-rw-r--r-- | TAO/TAO_IDL/be_include/be_visitor_interface/amh_sh.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/amh_sh.h b/TAO/TAO_IDL/be_include/be_visitor_interface/amh_sh.h new file mode 100644 index 00000000000..8610ca7c579 --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_interface/amh_sh.h @@ -0,0 +1,45 @@ +//============================================================================= +/** + * @file amh_sh.h + * + * $Id$ + * + * Specialized interface visitor for AMH + * + * @author Darrell Brunsch <brunsch@cs.wustl.edu> + */ +//============================================================================= + +#ifndef AMH_SH_H_ +#define AMH_SH_H_ + +class be_visitor_amh_interface_sh : public be_visitor_interface_sh +{ +public: + be_visitor_amh_interface_sh (be_visitor_context *ctx); + ~be_visitor_amh_interface_sh (void); + + int visit_interface (be_interface *node); + int visit_operation (be_operation *node); + int visit_attribute (be_attribute *node); + +protected: + virtual void this_method (be_interface *node); + +private: + /// Create an AMH node 'on the fly' from the + /// original interface node + be_interface* create_amh_class (ACE_CString name); + + /// Add attributes and operations from original-interface + /// into the newly created AMH-node + int add_original_members (be_interface *node, + be_interface *amh_node); + + /// For every operation in the original-interface, create + /// an AMH-operation and add it to the newly created AMH-node + int add_amh_operation (be_operation *orig_operation, + be_interface *amh_node); +}; + +#endif /* AMH_SH_H_ */ |