summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-07-08 17:54:39 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-07-08 17:54:39 +0000
commita85dad4deeb19718e87ab79380c1059b9568947d (patch)
treed2ef0fdbbf1920502277dcaef0a6a05c03d5b6cc
parent6079eb791668092243a525583128d3646b7fd7fa (diff)
downloadATCD-a85dad4deeb19718e87ab79380c1059b9568947d.tar.gz
ChangeLogTag: Tue Jul 8 12:50:23 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog_ref14
-rw-r--r--TAO/TAO_IDL/be/be_codegen.cpp108
-rw-r--r--TAO/TAO_IDL/be_include/be_codegen.h4
-rw-r--r--TAO/TAO_IDL/util/utl_global.cpp11
4 files changed, 84 insertions, 53 deletions
diff --git a/TAO/ChangeLog_ref b/TAO/ChangeLog_ref
index 0beb2ead65f..e05f6c7b0af 100644
--- a/TAO/ChangeLog_ref
+++ b/TAO/ChangeLog_ref
@@ -1,3 +1,17 @@
+Tue Jul 8 12:50:23 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/be/be_codegen.cpp:
+ * TAO_IDL/be_include/be_codegen.h:
+
+ Created a separate function call for the generation of file includes
+ for the stub source file, and moved the generation of arg class file
+ includes there, along with the existing file include generations.
+
+ * TAO_IDL/util/utl_global.cpp:
+
+ Fixed initialization of the bitmasks used to modify the bit vector
+ used to select ORB file includes for code generation.
+
Mon Jul 7 21:58:32 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
* tests/Bench/wire/testC.cpp:
diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp
index 9aedf3d2e8b..29642decbfa 100644
--- a/TAO/TAO_IDL/be/be_codegen.cpp
+++ b/TAO/TAO_IDL/be/be_codegen.cpp
@@ -186,7 +186,7 @@ TAO_CodeGen::start_client_header (const char *fname)
<< "\"";
}
- this->gen_orb_file_includes (this->client_header_);
+ this->gen_stub_hdr_includes ();
size_t nfiles = idl_global->n_included_idl_files ();
@@ -304,54 +304,7 @@ TAO_CodeGen::start_client_stubs (const char *fname)
// Generate the ident string, if any.
this->gen_ident_string (this->client_stubs_);
- // Generate the include statement for the precompiled header file.
- if (be_global->pch_include ())
- {
- *this->client_stubs_ << "#include \""
- << be_global->pch_include ()
- << "\"";
- }
-
- // Generate the include statement for the client header. We just
- // need to put only the base names. Path info is not required.
- *this->client_stubs_ << "\n#include \""
- << be_global->be_get_client_hdr_fname (1)
- << "\"";
-
- this->gen_standard_include (this->client_stubs_, "tao/Stub.h");
- this->gen_standard_include (this->client_stubs_, "tao/Invocation.h");
-
- // The following header must always be included.
- this->gen_standard_include (this->client_stubs_,
- "tao/PortableInterceptor.h");
-
- // Include the Portable Interceptor related headers.
- *this->client_stubs_ << "\n\n#if TAO_HAS_INTERCEPTORS == 1";
- this->gen_standard_include (this->client_stubs_,
- "tao/RequestInfo_Util.h");
- this->gen_standard_include (this->client_stubs_,
- "tao/ClientRequestInfo_i.h");
- this->gen_standard_include (this->client_stubs_,
- "tao/ClientInterceptorAdapter.h");
- *this->client_stubs_ << "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */\n";
-
- if (be_global->ami_call_back () == I_TRUE)
- {
- // Including Asynch Invocation file.
- this->gen_standard_include (this->client_stubs_,
- "tao/Messaging/Twoway_Asynch_Invocation.h");
- *this->client_stubs_ << "\n#if TAO_HAS_INTERCEPTORS == 1\n";
- this->gen_standard_include (this->client_stubs_,
- "tao/Messaging/AMI_ClientRequestInfo_i.h");
- *this->client_stubs_ << "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */\n";
- }
-
- if (be_global->gen_amh_classes () == I_TRUE)
- {
- // Necessary for the AIX compiler.
- this->gen_standard_include (this->client_stubs_,
- "ace/Auto_Ptr.h");
- }
+ this->gen_stub_src_includes ();
*this->client_stubs_ << "\n\n#if defined (__BORLANDC__)\n"
<< "#pragma option -w-rvl -w-rch -w-ccc -w-aus -w-sig\n"
@@ -1356,7 +1309,7 @@ TAO_CodeGen::gen_standard_include (TAO_OutStream *stream,
}
void
-TAO_CodeGen::gen_orb_file_includes (TAO_OutStream *stream)
+TAO_CodeGen::gen_stub_hdr_includes (void)
{
// Include the Messaging files if AMI is enabled.
if (be_global->ami_call_back () == I_TRUE)
@@ -1407,6 +1360,59 @@ TAO_CodeGen::gen_orb_file_includes (TAO_OutStream *stream)
this->gen_standard_include (this->client_header_,
"tao/Valuetype/Sequence_T.h");
}
+}
+
+void
+TAO_CodeGen::gen_stub_src_includes (void)
+{
+ // Generate the include statement for the precompiled header file.
+ if (be_global->pch_include ())
+ {
+ *this->client_stubs_ << "#include \""
+ << be_global->pch_include ()
+ << "\"";
+ }
+
+ // Generate the include statement for the client header. We just
+ // need to put only the base names. Path info is not required.
+ *this->client_stubs_ << "\n#include \""
+ << be_global->be_get_client_hdr_fname (1)
+ << "\"";
+
+ this->gen_standard_include (this->client_stubs_, "tao/Stub.h");
+ this->gen_standard_include (this->client_stubs_, "tao/Invocation.h");
+
+ // The following header must always be included.
+ this->gen_standard_include (this->client_stubs_,
+ "tao/PortableInterceptor.h");
+
+ // Include the Portable Interceptor related headers.
+ *this->client_stubs_ << "\n\n#if TAO_HAS_INTERCEPTORS == 1";
+ this->gen_standard_include (this->client_stubs_,
+ "tao/RequestInfo_Util.h");
+ this->gen_standard_include (this->client_stubs_,
+ "tao/ClientRequestInfo_i.h");
+ this->gen_standard_include (this->client_stubs_,
+ "tao/ClientInterceptorAdapter.h");
+ *this->client_stubs_ << "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */\n";
+
+ if (be_global->ami_call_back () == I_TRUE)
+ {
+ // Including Asynch Invocation file.
+ this->gen_standard_include (this->client_stubs_,
+ "tao/Messaging/Twoway_Asynch_Invocation.h");
+ *this->client_stubs_ << "\n#if TAO_HAS_INTERCEPTORS == 1\n";
+ this->gen_standard_include (this->client_stubs_,
+ "tao/Messaging/AMI_ClientRequestInfo_i.h");
+ *this->client_stubs_ << "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */\n";
+ }
+
+ if (be_global->gen_amh_classes () == I_TRUE)
+ {
+ // Necessary for the AIX compiler.
+ this->gen_standard_include (this->client_stubs_,
+ "ace/Auto_Ptr.h");
+ }
this->gen_arg_file_include (idl_global->decls_seen_masks.basic_arg_seen_,
"tao/Basic_Arguments.h");
@@ -1434,7 +1440,7 @@ TAO_CodeGen::gen_arg_file_include (ACE_UINT64 mask, const char *filepath)
if (ACE_BIT_ENABLED (idl_global->decls_seen_info_,
mask))
{
- this->gen_standard_include (this->client_header_,
+ this->gen_standard_include (this->client_stubs_,
filepath);
}
}
diff --git a/TAO/TAO_IDL/be_include/be_codegen.h b/TAO/TAO_IDL/be_include/be_codegen.h
index 6b91422c07e..d02052b2a11 100644
--- a/TAO/TAO_IDL/be_include/be_codegen.h
+++ b/TAO/TAO_IDL/be_include/be_codegen.h
@@ -400,7 +400,9 @@ private:
void gen_standard_include (TAO_OutStream *stream,
const char *included_file);
- void gen_orb_file_includes (TAO_OutStream *stream);
+ // Utility methods for generating ORB file includes.
+ void gen_stub_hdr_includes (void);
+ void gen_stub_src_includes (void);
void gen_arg_file_include (ACE_UINT64, const char *);
private:
diff --git a/TAO/TAO_IDL/util/utl_global.cpp b/TAO/TAO_IDL/util/utl_global.cpp
index 6dc60397909..0804b4e6637 100644
--- a/TAO/TAO_IDL/util/utl_global.cpp
+++ b/TAO/TAO_IDL/util/utl_global.cpp
@@ -87,7 +87,16 @@ static long seen_once[INCREMENT] = {0};
IDL_GlobalData::dsf::dsf (void)
: valuetype_seen_ (0),
abstract_iface_seen_ (0),
- iface_seq_seen_ (0)
+ iface_seq_seen_ (0),
+ basic_arg_seen_ (0),
+ bd_string_arg_seen_ (0),
+ fixed_array_arg_seen_ (0),
+ fixed_size_arg_seen_ (0),
+ object_arg_seen_ (0),
+ special_basic_arg_seen_ (0),
+ ub_string_arg_seen_ (0),
+ var_array_arg_seen_ (0),
+ var_size_arg_seen_ (0)
{}
IDL_GlobalData::IDL_GlobalData (void)