diff options
Diffstat (limited to 'TAO/TAO_IDL/be_include/be_interface.h')
-rw-r--r-- | TAO/TAO_IDL/be_include/be_interface.h | 46 |
1 files changed, 36 insertions, 10 deletions
diff --git a/TAO/TAO_IDL/be_include/be_interface.h b/TAO/TAO_IDL/be_include/be_interface.h index 584a1bae6ce..57305767513 100644 --- a/TAO/TAO_IDL/be_include/be_interface.h +++ b/TAO/TAO_IDL/be_include/be_interface.h @@ -49,6 +49,9 @@ public: // Constructor that sets its scoped name <n>, a list of inherited interfaces // <ih>, the number of inherited interfaces <nih>, and any prgmas <p> + ~be_interface (void); + // dtor + virtual int gen_client_header (void); // Generates the client-side header information for the interface @@ -82,6 +85,20 @@ public: const char *full_skel_name (void); // retrieve the fully scoped skel class name + // + // Each interface (to fix names "T") also defines two help classes, + // the "collocated" class inherits from T, but delegates on the + // skeleton for T (usually POA_T or POA_ModuleName::T), in other + // words it is a Bridge from T to its implementation. + // The class is nested inside the skeleton class. + // + // The "stub" is a class defined on the client scope, it actually + // defines the stubs (all operations in T are pure virtual). + // @@ TODO currently the stub class is not implemented. + // + const char *full_coll_name (void) const; + // retrieve the fully qualified collocated class name + virtual int gen_typecode (void); // generate the typecode @@ -98,21 +115,14 @@ public: TAO_OutStream *os); // template method using breadth first traversal of inheritance graph + // Visiting + virtual int accept (be_visitor* visitor); + // Narrowing DEF_NARROW_METHODS3 (be_interface, AST_Interface, be_scope, be_type); DEF_NARROW_FROM_DECL (be_interface); DEF_NARROW_FROM_SCOPE (be_interface); -private: - void compute_fullskelname (void); - // compute the fully scoped skel class name - - int gen_operation_table (void); - // generate the operation table including entries for inherited interfaces - - int gen_optable_entries (be_interface *); - // generate the operation table entries - static int is_a_helper (be_interface *, be_interface *, TAO_OutStream *os); // helper method passed to the template method @@ -126,9 +136,25 @@ private: TAO_OutStream *os); // helper method passed to the template method +private: + void compute_fullskelname (void); + // compute the fully scoped skel class name + + int gen_operation_table (void); + // generate the operation table including entries for inherited interfaces + + int gen_optable_entries (be_interface *); + // generate the operation table entries + + void compute_coll_name (void); + // compute the fully qualified collocated class name. + +private: char *full_skel_name_; // fully scoped skeleton name int skel_count_; // number of static skeletons in the operation table + + char *full_coll_name_; }; #endif // if !defined |