diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_enum_val.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_enum_val.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be/be_enum_val.cpp b/TAO/TAO_IDL/be/be_enum_val.cpp index 3fcd99fdd6f..3a52a779278 100644 --- a/TAO/TAO_IDL/be/be_enum_val.cpp +++ b/TAO/TAO_IDL/be/be_enum_val.cpp @@ -40,6 +40,39 @@ be_enum_val::be_enum_val (unsigned long v, UTL_ScopedName *n, UTL_StrList *p) } int +be_enum_val::gen_encapsulation (void) +{ + TAO_OutStream *cs; // output stream + TAO_CodeGen *cg = TAO_CODEGEN::instance (); + long i, arrlen; + ACE_UINT32 *arr; + + cs = cg->client_stubs (); + cs->indent (); // start from whatever indentation level we were at + + // generate name + *cs << (ACE_OS::strlen (this->local_name ()->get_string ())+1) << ", "; + (void)this->tc_name2long(this->local_name ()->get_string (), arr, arrlen); + for (i=0; i < arrlen; i++) + { + cs->print ("ACE_NTOHL (0x%x), ", arr[i]); + } + *cs << " // name = " << this->local_name () << "\n"; + return 0; +} + +long +be_enum_val::tc_encap_len (void) +{ + if (this->encap_len_ == -1) // not computed yet + { + this->encap_len_ = this->name_encap_len (); // for name + } + + return this->encap_len_; +} + +int be_enum_val::accept (be_visitor *visitor) { return visitor->visit_enum_val (this); |