diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-02-18 20:37:07 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-02-18 20:37:07 +0000 |
commit | d962de7484784d44a19ca5732689bdc4ae2f2007 (patch) | |
tree | d6960f89744d8219b9bd6a0a1dbd522df27e1f71 /TAO/TAO_IDL/include/utl_scope.h | |
parent | b7d404dec39364d950ab21ce9667535b358e4bb3 (diff) | |
download | ATCD-d962de7484784d44a19ca5732689bdc4ae2f2007.tar.gz |
ChangeLogTag: Thu Feb 18 20:36:04 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'TAO/TAO_IDL/include/utl_scope.h')
-rw-r--r-- | TAO/TAO_IDL/include/utl_scope.h | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/TAO/TAO_IDL/include/utl_scope.h b/TAO/TAO_IDL/include/utl_scope.h index f9f697010da..cf9c8edb1c2 100644 --- a/TAO/TAO_IDL/include/utl_scope.h +++ b/TAO/TAO_IDL/include/utl_scope.h @@ -316,7 +316,26 @@ protected: friend class AST_Enum; friend class IDL_GlobalData; - // Scope Management Protocol. + /// Scope Management Protocol. + + /// Common code for most basic adding action. + AST_Decl *fe_add_decl (AST_Decl *d); + + /// Specialized for types that reference another type. + AST_Field *fe_add_ref_decl (AST_Field *d); + + template<typename DECL> + DECL *fe_add_full_intf_decl (DECL *t); + + template<typename FULL_DECL> + typename FULL_DECL::FWD_TYPE *fe_add_fwd_intf_decl ( + typename FULL_DECL::FWD_TYPE *t); + + AST_Structure *fe_add_full_struct_type (AST_Structure *t); + AST_StructureFwd *fe_add_fwd_struct_type (AST_StructureFwd *t); + + /// No-op base class version of the specialized adding actions. + virtual AST_PredefinedType *fe_add_predefined_type ( AST_PredefinedType *t); @@ -454,6 +473,16 @@ protected: virtual AST_Mirror_Port *fe_add_mirror_port (AST_Mirror_Port *mp); + +private: + /// Checks called from fe_add_decl() specific to interfaces + /// (and its subtypes) and operations respectively. + bool inherited_op_attr_clash (AST_Decl *t); + bool arg_specific_error (AST_Decl *t); + + /// Encapsulates the vagaries of adding fields vs decls to + /// structs/unions vs other types. + void smart_local_add (AST_Decl *t); }; // Active iterator for a UTL_Scope node @@ -495,4 +524,12 @@ private: long il; }; +#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) +#include "utl_tmpl/UTL_Scope_T.cpp" +#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ + +#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) +#pragma implementation ("utl_tmpl/UTL_Scope_T.cpp") +#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ + #endif // _UTL_SCOPE_UTL_SCOPE_HH |