summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h52
1 files changed, 50 insertions, 2 deletions
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h
index 1921057cfc4..1ff1ab76fb4 100644
--- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h
+++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h
@@ -23,7 +23,7 @@
#include "SSLIOP_Current_Impl.h"
-#include "orbsvcs/SSLIOPC.h"
+#include "orbsvcs/orbsvcs/SSLIOPC.h"
#include "tao/ORB_Core.h"
// This is to remove "inherits via dominance" warnings from MSVC.
@@ -41,8 +41,8 @@ namespace TAO
namespace SSLIOP
{
class Current;
+ class Current_var;
typedef Current * Current_ptr;
- typedef TAO_Pseudo_Var_T<Current> Current_var;
/**
* @class Current
@@ -112,12 +112,24 @@ namespace TAO
* compiler for all IDL interfaces.
*/
//@{
+#if !defined(__GNUC__) || !defined (ACE_HAS_GNUG_PRE_2_8)
+ typedef Current_ptr _ptr_type;
+ typedef Current_var _var_type;
+#endif /* ! __GNUC__ || g++ >= 2.8 */
+
+ static int _tao_class_id;
+
// The static operations.
static Current_ptr _duplicate (Current_ptr obj);
static Current_ptr _narrow (CORBA::Object_ptr obj
ACE_ENV_ARG_DECL);
+
+ static Current_ptr _unchecked_narrow (CORBA::Object_ptr obj
+ ACE_ENV_ARG_DECL);
+
+
static Current_ptr _nil (void)
{
return (Current_ptr)0;
@@ -157,6 +169,42 @@ namespace TAO
};
+ class Current_var : public TAO_Base_var
+ {
+ public:
+ Current_var (void); // default constructor
+ Current_var (Current_ptr p) : ptr_ (p) {}
+ Current_var (const Current_var &); // copy constructor
+ ~Current_var (void); // destructor
+
+ Current_var &operator= (Current_ptr);
+ Current_var &operator= (const Current_var &);
+ Current_ptr operator-> (void) const;
+
+ operator const Current_ptr &() const;
+ operator Current_ptr &();
+ // in, inout, out, _retn
+ Current_ptr in (void) const;
+ Current_ptr &inout (void);
+ Current_ptr &out (void);
+ Current_ptr _retn (void);
+ Current_ptr ptr (void) const;
+
+ // Hooks used by template sequence and object manager classes
+ // for non-defined forward declared interfaces.
+ static Current_ptr tao_duplicate (Current_ptr);
+ static void tao_release (Current_ptr);
+ static Current_ptr tao_nil (void);
+ static Current_ptr tao_narrow (CORBA::Object *
+ ACE_ENV_ARG_DECL);
+ static CORBA::Object * tao_upcast (void *);
+
+ private:
+ Current_ptr ptr_;
+ // Unimplemented - prevents widening assignment.
+ Current_var (const TAO_Base_var &rhs);
+ Current_var &operator= (const TAO_Base_var &rhs);
+ };
} // End SSLIOP namespace.
} // End TAO namespace.