summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be')
-rw-r--r--TAO/TAO_IDL/be/be_codegen.cpp11
-rw-r--r--TAO/TAO_IDL/be/be_global.cpp34
-rw-r--r--TAO/TAO_IDL/be/be_interface.cpp107
-rw-r--r--TAO/TAO_IDL/be/be_sequence.cpp12
-rw-r--r--TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp4
-rw-r--r--TAO/TAO_IDL/be/be_visitor_root.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_root/root.cpp19
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp5
-rw-r--r--TAO/TAO_IDL/be/be_visitor_template_export.cpp151
9 files changed, 67 insertions, 277 deletions
diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp
index 36dafafec75..e5b567283fb 100644
--- a/TAO/TAO_IDL/be/be_codegen.cpp
+++ b/TAO/TAO_IDL/be/be_codegen.cpp
@@ -849,12 +849,12 @@ TAO_CodeGen::start_anyop_header (const char *fname)
const char *tao_prefix = "";
ACE_CString pidl_checker (idl_global->filename ()->get_string ());
- bool const got_tao_pidl =
+ bool const got_pidl =
(pidl_checker.substr (pidl_checker.length () - 5) == ".pidl");
// If we're here and we have a .pidl file, we need to generate
- // the *C.h include from the tao library.
- if (got_tao_pidl)
+ // the *A.h include from the AnyTypeCode library.
+ if (got_pidl)
{
tao_prefix = "tao/";
}
@@ -1704,7 +1704,10 @@ TAO_CodeGen::gen_stub_hdr_includes (void)
ACE_CString pidl_checker (idl_name);
bool got_pidl =
- (pidl_checker.substr (pidl_checker.length () - 5) == ".pidl");
+ (pidl_checker.substr (pidl_checker.length () - 5) == ".pidl")
+ && (pidl_checker.find ("IFR_Client") == ACE_CString::npos);
+ // We can't use the -GA option on IFR_Client .pidl files,
+ // because there are decls inside interfaces.
// If we're here and we have a .pidl file, we need to generate
// the *A.h include from the AnyTypeCode library.
diff --git a/TAO/TAO_IDL/be/be_global.cpp b/TAO/TAO_IDL/be/be_global.cpp
index 7db39ced0c5..46b004d62ac 100644
--- a/TAO/TAO_IDL/be/be_global.cpp
+++ b/TAO/TAO_IDL/be/be_global.cpp
@@ -112,8 +112,7 @@ BE_GlobalData::BE_GlobalData (void)
gen_client_stub_ (true),
gen_server_skeleton_ (true),
gen_local_iface_anyops_ (true),
- use_clonable_in_args_ (false),
- gen_template_export_ (false)
+ use_clonable_in_args_ (false)
{
}
@@ -851,18 +850,6 @@ BE_GlobalData::use_clonable_in_args (void) const
return this->use_clonable_in_args_;
}
-bool
-BE_GlobalData::gen_template_export (void) const
-{
- return this->gen_template_export_;
-}
-
-void
-BE_GlobalData::gen_template_export (bool val)
-{
- this->gen_template_export_ = val;
-}
-
const char*
BE_GlobalData::anyop_header_ending (void) const
{
@@ -1307,8 +1294,6 @@ BE_GlobalData::ccmobject (void)
AST_Decl *d =
idl_global->scopes ().top_non_null ()->lookup_by_name (&sn,
- true,
- true,
true);
sn.destroy ();
@@ -1988,11 +1973,6 @@ BE_GlobalData::parse_args (long &i, char **av)
// Smart proxies.
be_global->gen_smart_proxies (true);
}
- else if (av[i][3] == 'e')
- {
- // Explicit sequence base class template export.
- be_global->gen_template_export (true);
- }
else
{
ACE_ERROR ((
@@ -2637,18 +2617,14 @@ BE_GlobalData::usage (void) const
));
ACE_DEBUG ((
LM_DEBUG,
- ACE_TEXT (" -GA\t\t\tgenerate Any operator and type codes in *A.{h,cpp}")
- ACE_TEXT (" (generated in *C.{h,cpp} by default)\n")
+ ACE_TEXT (" -GA\t\t\tgenerate Any operator and type code bodies in *A.cpp")
+ ACE_TEXT (" (generated in *C.cpp by default)\n")
));
ACE_DEBUG ((
LM_DEBUG,
ACE_TEXT (" -Guc\t\t\tgenerate uninlined constant if declared ")
- ACE_TEXT ("in a module (inlined by default)\n")
- ));
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT (" -Gse\t\t\tgenerate explicit export of sequence's ")
- ACE_TEXT ("template base class (not generated by default)\n")
+ ACE_TEXT ("in a module")
+ ACE_TEXT (" (inlined by default)\n")
));
ACE_DEBUG ((
LM_DEBUG,
diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp
index 816cb87badb..6fc79e08fe7 100644
--- a/TAO/TAO_IDL/be/be_interface.cpp
+++ b/TAO/TAO_IDL/be/be_interface.cpp
@@ -502,8 +502,7 @@ be_interface::gen_def_ctors_helper (be_interface* node,
}
else
{
- *os << ", " << be_global->impl_class_prefix ()
- << base->flat_name ()
+ *os << ", " << be_global->impl_class_prefix () << base->flat_name ()
<< be_global->impl_class_suffix () << " ()";
}
}
@@ -763,8 +762,8 @@ Pure_Virtual_Regenerator::emit (be_interface *derived_interface,
if (d->accept (this->visitor_) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) Pure_Virtual_Regenerator::emit - "
- "visit base interface operation failed\n"),
+ "(%N:%l) Pure_Virtual_Regenerator::emit - "
+ "visit base interface operation failed\n"),
-1);
}
@@ -922,8 +921,7 @@ be_interface::gen_operation_table (const char *flat_name,
// interface.
// Retrieve the singleton instance to the outstream factory.
- TAO_OutStream_Factory *factory =
- TAO_OUTSTREAM_FACTORY::instance ();
+ TAO_OutStream_Factory *factory = TAO_OUTSTREAM_FACTORY::instance ();
// Get a new instance for the temp file.
TAO_OutStream *os = factory->make_outstream ();
@@ -1293,8 +1291,7 @@ be_interface::gen_collocated_skel_body (be_interface *derived,
*os << be_nl << be_nl
<< "ACE_INLINE void" << be_nl
<< derived->full_direct_proxy_impl_name ()
- << "::" << prefix << d->local_name () << " ("
- << be_idt << be_idt_nl
+ << "::" << prefix << d->local_name () << " (" << be_idt << be_idt_nl
<< "TAO_Abstract_ServantBase *servant," << be_nl
<< "TAO::Argument ** args," << be_nl
<< "int num_args" << env_decl << be_uidt_nl
@@ -1305,8 +1302,7 @@ be_interface::gen_collocated_skel_body (be_interface *derived,
*os << be_uidt_nl
<< "{" << be_idt_nl
<< ancestor->full_direct_proxy_impl_name ()
- << "::" << prefix << d->local_name () << " ("
- << be_idt << be_idt_nl
+ << "::" << prefix << d->local_name () << " (" << be_idt << be_idt_nl
<< "servant," << be_nl
<< "args," << be_nl
<< "num_args" << env_arg << be_uidt_nl
@@ -1384,8 +1380,8 @@ be_interface::traverse_inheritance_graph (be_interface::tao_code_emitter gen,
if (insert_queue.enqueue_tail (this) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_interface::traverse_inheritance_graph"
- " - error generating entries\n"),
+ "(%N:%l) be_interface::traverse_inheritance_graph - "
+ "error generating entries\n"),
-1);
}
@@ -1428,7 +1424,7 @@ be_interface::traverse_inheritance_graph (
{
(void) this->insert_non_dup (base);
- long const n_supports = base->n_supports ();
+ long n_supports = base->n_supports ();
AST_Interface **supports = base->supports ();
for (long j = 0; j < n_supports; ++j)
@@ -1657,14 +1653,11 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name)
"fclose"),
-1);
}
-
+
// Open the temp file.
#if defined (ACE_OPENVMS)
- ACE_HANDLE input = ::open (tao_cg->gperf_input_filename (),
- O_RDONLY,
- "shr=get,put,upd",
- "ctx=rec",
- "fop=dfw");
+ ACE_HANDLE input = ::open(tao_cg->gperf_input_filename(), O_RDONLY,
+ "shr=get,put,upd", "ctx=rec", "fop=dfw");
#else
ACE_HANDLE input = ACE::open_temp_file (tao_cg->gperf_input_filename (),
O_RDONLY);
@@ -1689,20 +1682,14 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name)
// this, remember to update the file offset to the correct location.
#if defined (ACE_OPENVMS)
- char* gperfOutput = tempnam (0, "idl_");
-
- if (gperfOutput == 0)
+ char* gperfOutput = tempnam(NULL, "idl_");
+ if (gperfOutput == NULL)
{
- ACE_OS::close (input);
- ACE_ERROR_RETURN ((LM_ERROR, "failed to allocate memory\n"), -1);
+ ACE_OS::close(input);
+ ACE_ERROR_RETURN ((LM_ERROR, "failed to allocate memory\n"), -1);
}
-
- ACE_HANDLE output = ::open (gperfOutput,
- O_WRONLY | O_CREAT | O_EXCL,
- ACE_DEFAULT_FILE_PERMS ,
- "shr=get,put,upd",
- "ctx=rec",
- "fop=dfw");
+ ACE_HANDLE output = ::open(gperfOutput, O_WRONLY | O_CREAT | O_EXCL,
+ ACE_DEFAULT_FILE_PERMS , "shr=get,put,upd", "ctx=rec", "fop=dfw");
#else
ACE_HANDLE output = ACE_OS::open (this->strategy_->get_out_stream_fname (),
O_WRONLY | O_APPEND);
@@ -1798,8 +1785,7 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name)
default:
ACE_ERROR ((LM_ERROR,
- "tao_idl:ERROR:%N:%l:Unknown "
- "Operation Lookup Strategy\n"));
+ "tao_idl:ERROR:%N:%l:Unknown Operation Lookup Strategy\n"));
result = -1;
}
@@ -1820,8 +1806,7 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name)
else if (process.wait () == -1)
{
ACE_ERROR ((LM_ERROR,
- "Error:%p:Error on waiting for "
- "completion of gperf program.\n",
+ "Error:%p:Error on waiting for completion of gperf program.\n",
"process.wait"));
result = -1;
@@ -1829,7 +1814,7 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name)
// Adjust the file offset to the EOF for the server skeleton
// file.
- ACE_OS::fseek (this->strategy_->get_out_stream ()->file (),
+ ACE_OS::fseek (this->strategy_->get_out_stream()->file (),
0,
SEEK_END);
}
@@ -1837,15 +1822,13 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name)
ACE_OS::close (output);
ACE_OS::close (input);
-#if defined (ACE_OPENVMS)
- ACE_OS::unlink(tao_cg->gperf_input_filename ());
- process_options.release_handles ();
-
+#if defined(ACE_OPENVMS)
+ ACE_OS::unlink(tao_cg->gperf_input_filename());
+ process_options.release_handles();
if (result != -1)
{
FILE* gperfOutputFile;
- gperfOutputFile = ::fopen (gperfOutput, "r");
-
+ gperfOutputFile = ::fopen(gperfOutput, "r");
if (gperfOutputFile == 0)
{
ACE_ERROR ((LM_ERROR,
@@ -1855,28 +1838,24 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name)
}
else
{
- FILE* out = this->strategy_->get_out_stream ()->file ();
+ FILE* out = this->strategy_->get_out_stream()->file();
int c;
-
while ((c = fgetc(gperfOutputFile)) != EOF)
{
- fputc (c, out);
+ fputc(c, out);
}
-
- if (ferror (gperfOutputFile) || ferror (out))
+ if (ferror(gperfOutputFile) || ferror(out))
{
ACE_ERROR ((LM_ERROR,
"Error:%p:Couldn't open gperf output file\n",
"get/put"));
result = -1;
}
-
- fclose (gperfOutputFile);
+ fclose(gperfOutputFile);
}
}
-
- ACE_OS::unlink (gperfOutput);
- free (gperfOutput);
+ ACE_OS::unlink(gperfOutput);
+ free(gperfOutput);
#endif /* ACE_OPENVMS */
return result;
@@ -1963,9 +1942,9 @@ be_interface::gen_skel_helper (be_interface *derived,
if (ancestor->nmembers () > 0)
{
// If there are elements in ancestor scope i.e., any operations and
- // attributes defined by "ancestor", become methods on the derived
- // class which call the corresponding method of the base class by
- // doing the proper casting.
+ // attributes defined by "ancestor", become methods on the derived class
+ // which call the corresponding method of the base class by doing the
+ // proper casting.
for (UTL_ScopeActiveIterator si (ancestor, UTL_Scope::IK_decls);
!si.is_done ();
@@ -1976,10 +1955,10 @@ be_interface::gen_skel_helper (be_interface *derived,
if (d->node_type () == AST_Decl::NT_op)
{
- *os << be_nl << be_nl
- << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__
- << be_nl << be_nl;
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
+
+ *os << be_nl << be_nl;
if (os->stream_type () == TAO_OutStream::TAO_SVR_HDR)
{
@@ -2203,8 +2182,7 @@ be_interface::gen_colloc_op_decl_helper (be_interface *derived,
// Generate the static method corresponding to
// this method.
*os << "static void" << be_nl
- << "_set_" << d->local_name () << " ("
- << be_idt << be_idt_nl
+ << "_set_" << d->local_name () << " (" << be_idt << be_idt_nl
<< "TAO_Abstract_ServantBase *servant, " << be_nl
<< "TAO::Argument ** args," << be_nl
<< "int num_args" << env_dflts << be_uidt_nl
@@ -2456,7 +2434,7 @@ be_interface::destroy (void)
delete this->strategy_;
this->strategy_ = 0;
}
-
+
// Call the destroy methods of our base classes.
this->AST_Interface::destroy ();
this->be_scope::destroy ();
@@ -2479,8 +2457,7 @@ be_interface::next_state (TAO_CodeGen::CG_STATE current_state,
}
int
-be_interface::has_extra_code_generation (
- TAO_CodeGen::CG_STATE current_state)
+be_interface::has_extra_code_generation (TAO_CodeGen::CG_STATE current_state)
{
return this->strategy_->has_extra_code_generation (current_state);
}
@@ -2512,7 +2489,7 @@ be_interface::has_mixed_parentage (void)
}
AST_Decl::NodeType nt = this->node_type ();
-
+
if (AST_Decl::NT_component == nt || AST_Decl::NT_home == nt)
{
return 0;
diff --git a/TAO/TAO_IDL/be/be_sequence.cpp b/TAO/TAO_IDL/be/be_sequence.cpp
index fb8131c0c32..57e3185c11b 100644
--- a/TAO/TAO_IDL/be/be_sequence.cpp
+++ b/TAO/TAO_IDL/be/be_sequence.cpp
@@ -467,7 +467,7 @@ be_sequence::instance_name ()
if (this->unbounded ())
{
ACE_OS::sprintf (namebuf,
- "TAO::unbounded_basic_string_sequence<char>");
+ "TAO::unbounded_string_sequence");
}
else
{
@@ -481,7 +481,7 @@ be_sequence::instance_name ()
if (this->unbounded ())
{
ACE_OS::sprintf (namebuf,
- "TAO::unbounded_basic_string_sequence<CORBA::WChar>");
+ "TAO::unbounded_wstring_sequence");
}
else
{
@@ -587,11 +587,11 @@ be_sequence::gen_base_class_name (TAO_OutStream *os,
case be_sequence::MNG_STRING:
if (this->unbounded ())
{
- *os << "TAO::unbounded_basic_string_sequence<char>";
+ *os << "TAO::unbounded_string_sequence";
}
else
{
- *os << "TAO::bounded_basic_string_sequence<char, "
+ *os << "TAO::bounded_string_sequence<"
<< this->max_size ()->ev ()->u.ulval << ">";
}
@@ -599,11 +599,11 @@ be_sequence::gen_base_class_name (TAO_OutStream *os,
case be_sequence::MNG_WSTRING:
if (this->unbounded ())
{
- *os << "TAO::unbounded_basic_string_sequence<CORBA::WChar>";
+ *os << "TAO::unbounded_wstring_sequence";
}
else
{
- *os << "TAO::bounded_basic_string_sequence<CORBA::WChar, "
+ *os << "TAO::bounded_wstring_sequence<"
<< this->max_size ()->ev ()->u.ulval << ">";
}
diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp
index 0c77523309d..4e8cc346e23 100644
--- a/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp
@@ -248,7 +248,7 @@ be_visitor_component_cs::visit_component (be_component *node)
while (ancestor != 0)
{
*os << "!ACE_OS::strcmp (" << be_idt << be_idt_nl
- << "value," << be_nl
+ << "(char *)value," << be_nl
<< "\"" << ancestor->repoID () << "\"" << be_uidt_nl
<< ") ||" << be_uidt_nl;
@@ -256,7 +256,7 @@ be_visitor_component_cs::visit_component (be_component *node)
}
*os << "!ACE_OS::strcmp (" << be_idt << be_idt_nl
- << "value," << be_nl
+ << "(char *)value," << be_nl
<< "\"IDL:omg.org/Components/CCMObject:1.0\"" << be_uidt_nl
<< ")" << be_uidt << be_uidt_nl
<< " )" << be_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_root.cpp b/TAO/TAO_IDL/be/be_visitor_root.cpp
index b88712b67f5..3cee0de1265 100644
--- a/TAO/TAO_IDL/be/be_visitor_root.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_root.cpp
@@ -59,7 +59,6 @@
#include "be_visitor_home.h"
#include "be_visitor_traits.h"
#include "be_visitor_arg_traits.h"
-#include "be_visitor_template_export.h"
#include "be_visitor_context.h"
#include "be_visitor_root/root.cpp"
diff --git a/TAO/TAO_IDL/be/be_visitor_root/root.cpp b/TAO/TAO_IDL/be/be_visitor_root/root.cpp
index 74b1174c595..44ae5a92566 100644
--- a/TAO/TAO_IDL/be/be_visitor_root/root.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_root/root.cpp
@@ -272,8 +272,8 @@ int be_visitor_root::visit_root (be_root *node)
{
case TAO_CodeGen::TAO_ROOT_CH:
{
- be_visitor_traits traits_visitor (&ctx);
- status = node->accept (&traits_visitor);
+ be_visitor_traits visitor (&ctx);
+ status = node->accept (&visitor);
if (status == -1)
{
@@ -283,21 +283,6 @@ int be_visitor_root::visit_root (be_root *node)
"failed to generate traits\n"),
-1);
}
-
- if (be_global->gen_template_export ())
- {
- be_visitor_template_export export_visitor (&ctx);
- status = node->accept (&export_visitor);
-
- if (status == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_root::"
- "visit_root - "
- "failed to export templates\n"),
- -1);
- }
- }
}
break;
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
index 7752e68912a..265e0b8261e 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
@@ -55,11 +55,12 @@ int be_visitor_sequence_ch::visit_sequence (be_sequence *node)
return 0;
}
+ be_type *bt = 0;
TAO_OutStream *os = this->ctx_->stream ();
// Retrieve the base type since we may need to do some code
// generation for the base type.
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
+ bt = be_type::narrow_from_decl (node->base_type ());
if (bt == 0)
{
@@ -73,7 +74,7 @@ int be_visitor_sequence_ch::visit_sequence (be_sequence *node)
bt->seen_in_sequence (true);
AST_Decl::NodeType nt = bt->node_type ();
- // If our base type is an anonymous sequence, we must create a name
+ // If our base type is an anonymouse sequence, we must create a name
// and generate a class declaration for it as well.
if (nt == AST_Decl::NT_sequence)
{
diff --git a/TAO/TAO_IDL/be/be_visitor_template_export.cpp b/TAO/TAO_IDL/be/be_visitor_template_export.cpp
deleted file mode 100644
index 6fb14458121..00000000000
--- a/TAO/TAO_IDL/be/be_visitor_template_export.cpp
+++ /dev/null
@@ -1,151 +0,0 @@
-//=============================================================================
-/**
-* @file be_visitor_template_export.cpp
-*
-* $Id$
-*
-* This visitor generates template instantiations with export macro
-*
-* @author Jeff Parsons <j.parsons@vanderbilt.edu>
-*/
-//=============================================================================
-
-#include "be_visitor_template_export.h"
-#include "be_visitor_context.h"
-#include "be_root.h"
-#include "be_module.h"
-#include "be_typedef.h"
-#include "be_sequence.h"
-#include "be_extern.h"
-#include "be_helper.h"
-#include "be_predefined_type.h"
-
-ACE_RCSID (be,
- be_visitor_template_export,
- "$Id$")
-
-be_visitor_template_export::be_visitor_template_export (
- be_visitor_context *ctx)
- : be_visitor_scope (ctx)
-{
-}
-
-be_visitor_template_export::~be_visitor_template_export (void)
-{
-}
-
-int
-be_visitor_template_export::visit_root (be_root *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
-
- *os << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
-
- *os << "#if defined ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT";
-
- if (this->visit_scope (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_template_export::"
- "visit_root - visit scope failed\n"),
- -1);
- }
-
- *os << be_nl << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT */";
-
- return 0;
-}
-
-int
-be_visitor_template_export::visit_module (be_module *node)
-{
- if (this->visit_scope (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_template_export::"
- "visit_module - visit scope failed\n"),
- -1);
- }
-
- return 0;
-}
-
-int
-be_visitor_template_export::visit_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
-
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- // TAO provides extensions for octet sequences, first find out if
- // the base type is an octet (or an alias for octet).
- be_predefined_type *predef = 0;
-
- if (bt->base_node_type () == AST_Type::NT_pre_defined)
- {
- be_typedef* alias =
- be_typedef::narrow_from_decl (bt);
-
- if (alias == 0)
- {
- predef = be_predefined_type::narrow_from_decl (bt);
- }
- else
- {
- predef =
- be_predefined_type::narrow_from_decl (
- alias->primitive_base_type ()
- );
- }
- }
-
- // When it is a sequence add a special guard
- if (predef != 0 && predef->pt () == AST_PredefinedType::PT_octet
- && node->unbounded ())
- {
- *os << "\n#if (TAO_NO_COPY_OCTET_SEQUENCES == 0)";
- }
-
- *os << be_idt << be_nl
- << "template class " << be_global->stub_export_macro ()
- << " ";
-
- if (node->gen_base_class_name (os, "", this->ctx_->scope ()) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_template_export::"
- "visit_sequence - "
- "Base class name generation failed\n"),
- -1);
- }
-
- *os << ";" << be_uidt;
-
- if (predef != 0 && predef->pt () == AST_PredefinedType::PT_octet
- && node->unbounded ())
- {
- *os << "\n#endif /* TAO_NO_COPY_OCTET_SEQUENCE == 0 */";
- }
-
- return 0;
-}
-
-int
-be_visitor_template_export::visit_typedef (be_typedef *node)
-{
- this->ctx_->alias (node);
- be_type *bt = node->primitive_base_type ();
-
- if (bt->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_template_export::"
- "visit_typedef - "
- "visit base type failed\n"),
- -1);
- }
-
- this->ctx_->alias (0);
- return 0;
-}