summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_enum_val.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_enum_val.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_enum_val.cpp33
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);