Merge pull request #1551 from DOCGroup/plm_jira_333
[ACE_TAO.git] / TAO / orbsvcs / IFR_Service / ifr_adding_visitor_exception.h
bloba667d6a6b5b9ecd2f3e469a74fc8d7a8013a5a32
2 /* -*- c++ -*- */
3 //=============================================================================
4 /**
5 * @file ifr_adding_visitor_exception.h
7 * Header file for class ifr_adding_visitor_exception.
9 * @author Jeff Parsons <parsons@cs.wustl.edu>
11 //=============================================================================
14 #ifndef TAO_IFR_ADDING_VISITOR_EXCEPTION_H
15 #define TAO_IFR_ADDING_VISITOR_EXCEPTION_H
17 #include "ifr_adding_visitor.h"
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 # pragma once
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 /**
24 * @class ifr_adding_visitor_exception
26 * @brief ifr_adding_visitor_exception.
28 * This visitor overrides a few of the visit methods
29 * for the case when an exception node is seen in the AST.
31 class ifr_adding_visitor_exception : public ifr_adding_visitor
33 public:
34 /// Constructor.
35 ifr_adding_visitor_exception (AST_Decl *scope,
36 CORBA::Boolean in_reopened_);
38 /// Destructor.
39 virtual ~ifr_adding_visitor_exception (void);
41 /// Visit a struct.
42 virtual int visit_scope (UTL_Scope *node);
44 /// Visit a struct.
45 virtual int visit_structure (AST_Structure *node);
47 /// Visit a struct.
48 virtual int visit_exception (AST_Exception *node);
50 /// Visit an enum.
51 virtual int visit_enum (AST_Enum *node);
53 /// Visit union.
54 virtual int visit_union (AST_Union *node);
56 /// Lets the visitor one level above acess this value.
57 virtual CORBA::IDLType_ptr ir_current (void) const;
59 private:
60 /// Common code called whether we are creating a new exception
61 /// or filling out a forward declaration.
62 int add_members (AST_Exception *node, CORBA::ExceptionDef_ptr except_def);
64 private:
65 /// Holder for the member list passed to create_struct() or
66 /// create_exception().
67 CORBA::StructMemberSeq members_;
71 #endif /* TAO_IFR_ADDING_VISITOR_EXCEPTION_H */