summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/include/idl_global.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/include/idl_global.h')
-rw-r--r--TAO/TAO_IDL/include/idl_global.h141
1 files changed, 72 insertions, 69 deletions
diff --git a/TAO/TAO_IDL/include/idl_global.h b/TAO/TAO_IDL/include/idl_global.h
index e0cb760293e..0f6de0c430f 100644
--- a/TAO/TAO_IDL/include/idl_global.h
+++ b/TAO/TAO_IDL/include/idl_global.h
@@ -265,70 +265,60 @@ public:
, PS_PragmaPrefixSyntax // Could not parse the #pragma prefix
};
- // 64-bit vector of flags for types of declarations seen while parsing.
- ACE_UINT64 decls_seen_info_;
-
- // Holds the masks to set and get in the above bit vector.
- struct dsf
- {
- dsf (void);
-
- ACE_UINT64 interface_seen_;
- ACE_UINT64 valuetype_seen_;
- ACE_UINT64 abstract_iface_seen_;
- ACE_UINT64 local_iface_seen_;
- ACE_UINT64 non_local_iface_seen_;
- ACE_UINT64 fwd_iface_seen_;
- ACE_UINT64 fwd_valuetype_seen_;
- ACE_UINT64 basic_type_seen_;
- ACE_UINT64 ambiguous_type_seen_;
- ACE_UINT64 enum_seen_;
- ACE_UINT64 string_seen_;
- ACE_UINT64 array_seen_;
- ACE_UINT64 aggregate_seen_;
- ACE_UINT64 union_seen_;
- ACE_UINT64 exception_seen_;
- ACE_UINT64 operation_seen_;
- ACE_UINT64 non_local_op_seen_;
- ACE_UINT64 typecode_seen_;
- ACE_UINT64 any_seen_;
- ACE_UINT64 parametermode_seen_;
- ACE_UINT64 base_object_seen_;
- ACE_UINT64 valuefactory_seen_;
- ACE_UINT64 valuebase_seen_;
-
- ACE_UINT64 seq_seen_;
- ACE_UINT64 iface_seq_seen_;
- ACE_UINT64 vt_seq_seen_;
- ACE_UINT64 array_seq_seen_;
- ACE_UINT64 pseudo_seq_seen_;
- ACE_UINT64 string_seq_seen_;
- ACE_UINT64 wstring_seq_seen_;
- ACE_UINT64 octet_seq_seen_;
- ACE_UINT64 boolean_seq_seen_;
- ACE_UINT64 char_seq_seen_;
- ACE_UINT64 wchar_seq_seen_;
- ACE_UINT64 short_seq_seen_;
- ACE_UINT64 ushort_seq_seen_;
- ACE_UINT64 long_seq_seen_;
- ACE_UINT64 ulong_seq_seen_;
- ACE_UINT64 longlong_seq_seen_;
- ACE_UINT64 ulonglong_seq_seen_;
- ACE_UINT64 float_seq_seen_;
- ACE_UINT64 double_seq_seen_;
- ACE_UINT64 longdouble_seq_seen_;
- ACE_UINT64 any_seq_seen_;
-
- ACE_UINT64 basic_arg_seen_;
- ACE_UINT64 bd_string_arg_seen_;
- ACE_UINT64 fixed_array_arg_seen_;
- ACE_UINT64 fixed_size_arg_seen_;
- ACE_UINT64 object_arg_seen_;
- ACE_UINT64 special_basic_arg_seen_;
- ACE_UINT64 ub_string_arg_seen_;
- ACE_UINT64 var_array_arg_seen_;
- ACE_UINT64 var_size_arg_seen_;
- } decls_seen_masks;
+ // flags for types of declarations seen while parsing.
+ bool abstract_iface_seen_;
+ bool aggregate_seen_;
+ bool ambiguous_type_seen_;
+ bool any_arg_seen_;
+ bool any_seen_;
+ bool any_seq_seen_;
+ bool array_seen_;
+ bool array_seq_seen_;
+ bool base_object_seen_;
+ bool basic_arg_seen_;
+ bool basic_type_seen_;
+ bool bd_string_arg_seen_;
+ bool boolean_seq_seen_;
+ bool char_seq_seen_;
+ bool double_seq_seen_;
+ bool enum_seen_;
+ bool exception_seen_;
+ bool fixed_array_arg_seen_;
+ bool fixed_size_arg_seen_;
+ bool float_seq_seen_;
+ bool fwd_iface_seen_;
+ bool fwd_valuetype_seen_;
+ bool iface_seq_seen_;
+ bool interface_seen_;
+ bool local_iface_seen_;
+ bool long_seq_seen_;
+ bool longdouble_seq_seen_;
+ bool longlong_seq_seen_;
+ bool non_local_iface_seen_;
+ bool non_local_op_seen_;
+ bool object_arg_seen_;
+ bool octet_seq_seen_;
+ bool operation_seen_;
+ bool pseudo_seq_seen_;
+ bool seq_seen_;
+ bool short_seq_seen_;
+ bool special_basic_arg_seen_;
+ bool string_seen_;
+ bool string_seq_seen_;
+ bool typecode_seen_;
+ bool ub_string_arg_seen_;
+ bool ulong_seq_seen_;
+ bool ulonglong_seq_seen_;
+ bool union_seen_;
+ bool ushort_seq_seen_;
+ bool valuebase_seen_;
+ bool valuefactory_seen_;
+ bool valuetype_seen_;
+ bool var_array_arg_seen_;
+ bool var_size_arg_seen_;
+ bool vt_seq_seen_;
+ bool wchar_seq_seen_;
+ bool wstring_seq_seen_;
// Constructor
IDL_GlobalData (void);
@@ -399,6 +389,8 @@ public:
virtual unsigned long n_include_file_names (void); // How many
virtual void set_n_include_file_names (unsigned long n);
+ virtual void reset_flag_seen (void);
+
// = Access methods to deal with other IDL files included in the main
// IDL file. These IDL files are exactly the same strings that are
// "#include"d in the main IDL file, not the ones after CC
@@ -530,17 +522,25 @@ public:
ACE_Hash_Map_Manager<ACE_CString, char *, ACE_Null_Mutex> &
file_prefixes (void);
// Accessor for the IDL file prefix container.
-
+
idl_bool pass_orb_idl (void) const;
void pass_orb_idl (idl_bool val);
// Accessor for the pass_orb_idl_ member.
-
+
+ bool using_ifr_backend (void) const;
+ void using_ifr_backend (bool val);
+
int check_gperf (void);
// Currently called only from IDL backend, but could be useful elsewhere.
-
+
void fini (void);
// Do final cleanup just before process exits.
+ void create_uses_multiple_stuff (AST_Component *c,
+ AST_Component::port_description &pd);
+ // We must do this in the front end since the executor
+ // mapping IDL will have these data types.
+
private:
// Data
UTL_ScopeStack pd_scopes; // Store scopes stack
@@ -580,7 +580,7 @@ private:
char *tao_root_;
// Needed if orb.idl is included.
-
+
char *gperf_path_;
// Path for the perfect hash generator(gperf) program. Default
// is $ACE_ROOT/bin/gperf.
@@ -620,9 +620,12 @@ private:
ACE_Hash_Map_Manager<ACE_CString, char *, ACE_Null_Mutex> file_prefixes_;
// Associates a prefix with a file.
-
+
idl_bool pass_orb_idl_;
// Treat orb.idl like any other included IDL file.
+
+ bool using_ifr_backend_;
+ // Set by the IFR backend itself.
};