summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be_include/be_interface_strategy.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be_include/be_interface_strategy.h')
-rw-r--r--TAO/TAO_IDL/be_include/be_interface_strategy.h83
1 files changed, 41 insertions, 42 deletions
diff --git a/TAO/TAO_IDL/be_include/be_interface_strategy.h b/TAO/TAO_IDL/be_include/be_interface_strategy.h
index 1eb19ea72b1..8514b9365d7 100644
--- a/TAO/TAO_IDL/be_include/be_interface_strategy.h
+++ b/TAO/TAO_IDL/be_include/be_interface_strategy.h
@@ -7,16 +7,13 @@
// TAO IDL
//
// = FILENAME
-// be_interface.h
+// be_interface_strategy.h
//
// = DESCRIPTION
-// Extension of class AST_Interface that provides additional means for C++
-// mapping of an interface.
+// Strategy to cover differences between operations, e.g.
+// the sendc_ and raise_ operations in the AMI spec.
//
// = AUTHOR
-// Copyright 1994-1995 by Sun Microsystems, Inc.
-// and
-// Aniruddha Gokhale,
// Michael Kircher
//
// ============================================================================
@@ -31,7 +28,7 @@ class be_interface;
// This class serves as a strategy base class for the differences
// in generating e.g. ami reply handlers.
-class be_interface_type_strategy
+class be_interface_strategy
{
public:
enum Strategy_Kind {
@@ -40,10 +37,10 @@ public:
AMI_EXCEPTION_HOLDER
};
- be_interface_type_strategy (be_interface *node,
+ be_interface_strategy (be_interface *node,
Strategy_Kind strategy_type);
- virtual ~be_interface_type_strategy ();
+ virtual ~be_interface_strategy ();
virtual const char *local_name (void) = 0;
// return the local name
@@ -125,11 +122,13 @@ protected:
// Current cached collocated name.
Strategy_Kind strategy_type_;
- //
+ // The type of strategy
};
+// @@ Michael: Deprecated due to new AMI design
+#if 0
class be_interface_prefix_suffix_strategy
- : public be_interface_type_strategy
+ : public be_interface_strategy
{
public:
// begin overridden methods.
@@ -170,42 +169,16 @@ protected:
const char *suffix_;
// The suffix to the interface
};
-
-
-class be_interface_ami_handler_strategy
- : public be_interface_prefix_suffix_strategy
-{
-public:
- // begin overridden methods.
- be_interface_ami_handler_strategy (be_interface *node);
-
- virtual ~be_interface_ami_handler_strategy ();
-
- // overridden methods.
- TAO_CodeGen::CG_STATE next_state (TAO_CodeGen::CG_STATE current_state);
-};
-
-
-class be_interface_ami_exception_holder_strategy
- : public be_interface_prefix_suffix_strategy
-{
-public:
- // begin overridden methods.
- be_interface_ami_exception_holder_strategy (be_interface *node);
-
- virtual ~be_interface_ami_exception_holder_strategy ();
-
- // overridden methods.
- TAO_CodeGen::CG_STATE next_state (TAO_CodeGen::CG_STATE current_state);
-};
+#endif /* 0 */
class be_interface_default_strategy
- : public be_interface_type_strategy
+ : public be_interface_strategy
{
public:
// begin overridden methods.
- be_interface_default_strategy (be_interface *node);
+ be_interface_default_strategy (be_interface *node,
+ Strategy_Kind strategy_type = DEFAULT);
virtual ~be_interface_default_strategy ();
@@ -230,8 +203,34 @@ public:
virtual const char *local_coll_name (int);
// retrieve the fully qualified collocated class name.
- TAO_CodeGen::CG_STATE next_state (TAO_CodeGen::CG_STATE current_state);
+ virtual TAO_CodeGen::CG_STATE next_state (TAO_CodeGen::CG_STATE current_state);
// end of overridden methods
};
+
+class be_interface_ami_handler_strategy
+ : public be_interface_default_strategy
+{
+public:
+ be_interface_ami_handler_strategy (be_interface *node);
+
+ virtual ~be_interface_ami_handler_strategy ();
+
+ // overridden methods.
+ TAO_CodeGen::CG_STATE next_state (TAO_CodeGen::CG_STATE current_state);
+};
+
+
+class be_interface_ami_exception_holder_strategy
+ : public be_interface_default_strategy
+{
+public:
+ be_interface_ami_exception_holder_strategy (be_interface *node);
+
+ virtual ~be_interface_ami_exception_holder_strategy ();
+
+ // overridden methods.
+ virtual TAO_CodeGen::CG_STATE next_state (TAO_CodeGen::CG_STATE current_state);
+};
+
#endif // if !defined