summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/include/utl_scope.h
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2010-02-18 20:37:07 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2010-02-18 20:37:07 +0000
commitd962de7484784d44a19ca5732689bdc4ae2f2007 (patch)
treed6960f89744d8219b9bd6a0a1dbd522df27e1f71 /TAO/TAO_IDL/include/utl_scope.h
parentb7d404dec39364d950ab21ce9667535b358e4bb3 (diff)
downloadATCD-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.h39
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