diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_helper.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_helper.cpp | 595 |
1 files changed, 0 insertions, 595 deletions
diff --git a/TAO/TAO_IDL/be/be_helper.cpp b/TAO/TAO_IDL/be/be_helper.cpp deleted file mode 100644 index 65a0a7cc4b4..00000000000 --- a/TAO/TAO_IDL/be/be_helper.cpp +++ /dev/null @@ -1,595 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_helper.cpp -// -// = DESCRIPTION -// Provides helper classes to print generated code to the output -// -// = AUTHOR -// Aniruddha Gokhale -// -// Improvements by Carlos O'Ryan -// -// ============================================================================ - -#include "be_helper.h" -#include "be_codegen.h" -#include "be_extern.h" -#include "idl_defines.h" -#include "ace/OS_NS_string.h" - -ACE_RCSID (be, - be_helper, - "$Id$") - -static const char copyright[] = -"// -*- C++ -*-\n" -"//\n" -"// $I" "d$\n\n" -"// **** Code generated by the The ACE ORB (TAO) IDL Compiler ****\n" -"// TAO and the TAO IDL Compiler have been developed by:\n" -"// Center for Distributed Object Computing\n" -"// Washington University\n" -"// St. Louis, MO\n" -"// USA\n" -"// http://www.cs.wustl.edu/~schmidt/doc-center.html\n" -"// and\n" -"// Distributed Object Computing Laboratory\n" -"// University of California at Irvine\n" -"// Irvine, CA\n" -"// USA\n" -"// http://doc.ece.uci.edu/\n" -"// and\n" -"// Institute for Software Integrated Systems\n" -"// Vanderbilt University\n" -"// Nashville, TN\n" -"// USA\n" -"// http://www.isis.vanderbilt.edu/\n" -"//\n" -"// Information about TAO is available at:\n" -"// http://www.cs.wustl.edu/~schmidt/TAO.html"; - -TAO_NL::TAO_NL (void) -{ - ACE_UNUSED_ARG (copyright); -} - -TAO_INDENT::TAO_INDENT (int do_now) - : do_now_ (do_now) -{ -} - -TAO_UNINDENT::TAO_UNINDENT (int do_now) - : do_now_ (do_now) -{ -} - -const TAO_NL be_nl; -const TAO_INDENT be_idt; -const TAO_INDENT be_idt_nl (1); -const TAO_UNINDENT be_uidt; -const TAO_UNINDENT be_uidt_nl (1); - -TAO_ENV_ARG::TAO_ENV_ARG (bool with_defaults, - bool single, - bool arg, - bool not_used) - : with_defaults_ (with_defaults), - single_ (single), - arg_ (arg), - not_used_ (not_used) -{ -} - -const TAO_ENV_ARG env_decl; -const TAO_ENV_ARG env_dflts (true); -const TAO_ENV_ARG env_sngl (false, true); -const TAO_ENV_ARG env_sngl_dflts (true, true); -const TAO_ENV_ARG env_not (false, false, false, true); -const TAO_ENV_ARG env_sngl_not (false, true, false, true); -const TAO_ENV_ARG env_arg (false, false, true); -const TAO_ENV_ARG env_sngl_arg (false, true, true); - -TAO_ACE_CHECK::TAO_ACE_CHECK (const char *retval, - bool do_return) - : retval_ (retval), - do_return_ (retval != 0 || do_return) -{ -} - -TAO_ACE_TRY_CHECK::TAO_ACE_TRY_CHECK (void) -{ -} - -TAO_ACE_ENDTRY::TAO_ACE_ENDTRY (void) -{ -} - -const TAO_ACE_TRY_CHECK ace_try_check; -const TAO_ACE_ENDTRY ace_endtry; - -// Methods of the TAO_OutStream class. - -TAO_OutStream::TAO_OutStream (void) - : fp_ (0), - indent_level_ (0) -{ -} - -TAO_OutStream::~TAO_OutStream (void) -{ - // Close the underlying I/O handle only if it exists. - if (this->fp_ != 0) - { - ACE_OS::fclose (this->fp_); - this->fp_ = 0; - } - - indent_level_ = 0; -} - -int -TAO_OutStream::open (const char *fname, - TAO_OutStream::STREAM_TYPE st) -{ - if (fname != 0) - { - // File name exists, open an I/O file handle. - this->fp_ = ACE_OS::fopen (fname, "w"); - - if (this->fp_ != 0) - { - this->st_ = st; - // Put the copyright notice. Not for the gperf's temp input - // file. - if (st != TAO_OutStream::TAO_GPERF_INPUT) - { - ACE_OS::fprintf (this->fp_, - "%s\n", - copyright); - - ACE_OS::fflush (this->fp_); - } - - return 0; - } - else - { - return -1; - } - } - else - { - return -1; - } -} - -// Set and get the stream type. -void -TAO_OutStream::stream_type (TAO_OutStream::STREAM_TYPE st) -{ - this->st_ = st; -} - -TAO_OutStream::STREAM_TYPE -TAO_OutStream::stream_type (void) -{ - return this->st_; -} - -// Return the underlying lowlevel file pointer. -// indentation. -FILE * -TAO_OutStream::file (void) -{ - return this->fp_; -} - -int -TAO_OutStream::incr_indent (unsigned short flag) -{ - indent_level_++; - - if (flag != 0) - { - return this->indent (); - } - else - { - // Do not indent output. - return 0; - } -} - -// Indentation -int -TAO_OutStream::decr_indent (unsigned short flag) -{ - this->indent_level_--; - // Just in case somebody gets "unindent happy". - if (this->indent_level_ < 0) - { - // ACE_DEBUG ((LM_DEBUG, "negative indentation?\n")); - this->indent_level_ = 0; - } - if (flag != 0) - { - return this->indent (); - } - else - { - // Do not indent output. - return 0; - } -} - -int -TAO_OutStream::reset (void) -{ - this->indent_level_ = 0; - return 0; -} - -// Indented print. -int -TAO_OutStream::indent (void) -{ - // Based on the current indentation level, leave appropriate number of blank - // spaces in the output. - if (this->indent_level_ > 0) - { - for (int i = 0; i < this->indent_level_; i++) - { - ACE_OS::fprintf (this->fp_, " "); -#if !defined (ACE_OPENVMS) - ACE_OS::fflush (this->fp_); -#endif - } - } - - return 0; -} - -int -TAO_OutStream::nl (void) -{ - ACE_OS::fprintf (this->fp_, "\n"); - this->indent (); - return 0; -} - -// Macro generation. -int -TAO_OutStream::gen_ifdef_macro (const char *flat_name, - const char *suffix, - bool add_stream_type_suffix) -{ - static char macro [NAMEBUFSIZE]; - - ACE_OS::memset (macro, - '\0', - NAMEBUFSIZE); - - ACE_OS::sprintf (macro, - "_%s_", - tao_cg->upcase (flat_name)); - if (suffix != 0) - { - //ACE_OS::sprintf (macro, "%s_%s_", macro, cg->upcase (suffix)); - // Can't have macro on both sides of sprintf - // I'm not sure if the first strcat of "_" should be here or - // not, but having it gives the same functionality as the old - // sprintf call... - ACE_OS::strcat (macro, "_"); - ACE_OS::strcat (macro, tao_cg->upcase (suffix)); - ACE_OS::strcat (macro, "_"); - } - - // Append a suffix representing the stream type. - if (add_stream_type_suffix) - switch (this->st_) - { - case TAO_OutStream::TAO_CLI_HDR: - ACE_OS::strcat (macro, "CH_"); - break; - case TAO_OutStream::TAO_CLI_INL: - ACE_OS::strcat (macro, "CI_"); - break; - case TAO_OutStream::TAO_CLI_IMPL: - ACE_OS::strcat (macro, "CS_"); - break; - case TAO_OutStream::TAO_SVR_HDR: - ACE_OS::strcat (macro, "SH_"); - break; - case TAO_OutStream::TAO_IMPL_HDR: - ACE_OS::strcat (macro, "IH_"); - break; - case TAO_OutStream::TAO_IMPL_SKEL: - ACE_OS::strcat (macro, "IS_"); - break; - case TAO_OutStream::TAO_SVR_INL: - ACE_OS::strcat (macro, "SI_"); - break; - case TAO_OutStream::TAO_SVR_IMPL: - ACE_OS::strcat (macro, "SS_"); - break; - default: - return -1; - } - - *this << "\n\n#if !defined (" << macro << ")\n"; - *this << "#define " << macro; - - return 0; -} - -int -TAO_OutStream::gen_endif (void) -{ - *this << "\n\n#endif /* end #if !defined */"; - - return 0; -} - -// Printf style variable argument print. -int -TAO_OutStream::print (const char *format, ...) -{ - int result = 0; - va_list ap; - va_start (ap, format); - ACE_OSCALL (::vfprintf (this->fp_, - format, - ap), - int, - -1, - result); -#if !defined (ACE_OPENVMS) - ACE_OS::fflush (this->fp_); -#endif - va_end (ap); - - return result; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const char *str) -{ - ACE_OS::fprintf (this->fp_, "%s", str); -#if !defined (ACE_OPENVMS) - ACE_OS::fflush (this->fp_); -#endif - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const ACE_CDR::UShort num) -{ - ACE_OS::fprintf (this->fp_, - "%hu", - num); - -#if !defined (ACE_OPENVMS) - ACE_OS::fflush (this->fp_); -#endif - - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const ACE_CDR::Short num) -{ - ACE_OS::fprintf (this->fp_, - "%hd", - num); - -#if !defined (ACE_OPENVMS) - ACE_OS::fflush (this->fp_); -#endif - - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const ACE_CDR::ULong num) -{ - ACE_OS::fprintf (this->fp_, - "%lu", - (unsigned long) num); - -#if !defined (ACE_OPENVMS) - ACE_OS::fflush (this->fp_); -#endif - - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const ACE_CDR::Long num) -{ - ACE_OS::fprintf (this->fp_, - "%ld", - (long) num); - -#if !defined (ACE_OPENVMS) - ACE_OS::fflush (this->fp_); -#endif - - return *this; -} - -#if defined (ACE_WIN64) -TAO_OutStream & -TAO_OutStream::operator<< (const ACE_CDR::ULongLong num) -{ - ACE_OS::fprintf (this->fp_, - ACE_UINT64_FORMAT_SPECIFIER, - num); - -#if !defined (ACE_OPENVMS) - ACE_OS::fflush (this->fp_); -#endif - - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const ACE_CDR::LongLong num) -{ - ACE_OS::fprintf (this->fp_, - ACE_INT64_FORMAT_SPECIFIER, - num); - -#if !defined (ACE_OPENVMS) - ACE_OS::fflush (this->fp_); -#endif - - return *this; -} -#endif /* ACE_WIN64 */ - -TAO_OutStream & -TAO_OutStream::operator<< (const unsigned long num) -{ - ACE_OS::fprintf (this->fp_, - "%lu", - num); - -#if !defined (ACE_OPENVMS) - ACE_OS::fflush (this->fp_); -#endif - - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const long num) -{ - ACE_OS::fprintf (this->fp_, - "%ld", - num); - -#if !defined (ACE_OPENVMS) - ACE_OS::fflush (this->fp_); -#endif - - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const TAO_NL&) -{ - ACE_OS::fprintf (this->fp_ , - "\n"); - this->indent (); - - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const TAO_INDENT& i) -{ - this->incr_indent (0); - - if (i.do_now_) - { - this->nl (); - } - - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const TAO_UNINDENT& i) -{ - this->decr_indent (0); - - if (i.do_now_) - { - this->nl (); - } - - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const TAO_ENV_ARG& i) -{ - if (!be_global->use_raw_throw ()) - { - (*this) << be_nl - << "ACE_ENV_" - << (i.single_ ? "SINGLE_" : "") - << "ARG_" - << (i.arg_ ? "PARAMETER" : "DECL") - << (i.with_defaults_ ? "_WITH_DEFAULTS" : "") - << (i.not_used_ ? "_NOT_USED" : ""); - } - - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const TAO_ACE_CHECK& i) -{ - if (!be_global->use_raw_throw ()) - { - (*this) << be_nl - << "ACE_CHECK" - << (i.do_return_ ? "_RETURN (" : "") - << (i.retval_ ? i.retval_ : "") - << (i.do_return_ ? ")" : "") - << ";"; - } - - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const TAO_ACE_TRY_CHECK&) -{ - if (!be_global->use_raw_throw ()) - { - (*this) << be_nl - << "ACE_TRY_CHECK;"; - } - - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (const TAO_ACE_ENDTRY&) -{ - if (!be_global->use_raw_throw ()) - { - (*this) << be_nl - << "ACE_ENDTRY;"; - } - - return *this; -} - -TAO_OutStream & -TAO_OutStream::operator<< (Identifier *id) -{ - return this->print (id); -} - -TAO_OutStream & -TAO_OutStream::operator<< (UTL_IdList *id) -{ - return this->print (id); -} - -TAO_OutStream & -TAO_OutStream::operator<< (AST_Expression *expr) -{ - return this->print (expr); -} |