summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be_include/be_interface.h
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-12-29 19:55:00 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-12-29 19:55:00 +0000
commitf5683a2775257b6a8fca921fed3c58411d5cb26c (patch)
treeb0faf2614db67f3b59f16b8524afc8638f1e7d5a /TAO/TAO_IDL/be_include/be_interface.h
parent335c2fa6d36b80cfce255558770118ffe777fdfd (diff)
downloadATCD-f5683a2775257b6a8fca921fed3c58411d5cb26c.tar.gz
ChangeLogTag:Mon Dec 29 13:18:49 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
Diffstat (limited to 'TAO/TAO_IDL/be_include/be_interface.h')
-rw-r--r--TAO/TAO_IDL/be_include/be_interface.h46
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