summaryrefslogtreecommitdiff
path: root/TAO/tao/Principal.h
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-05-27 13:58:52 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-05-27 13:58:52 +0000
commit64e2375ceb787cdc9bb5c58f9bd688194767b86d (patch)
treee17583a5b0dec946bbb46faf585a6f3682b43bed /TAO/tao/Principal.h
parent8319558b9965fa9af1f539930b65e7d7f0290a6b (diff)
downloadATCD-64e2375ceb787cdc9bb5c58f9bd688194767b86d.tar.gz
Added _var and _out declarations.
Diffstat (limited to 'TAO/tao/Principal.h')
-rw-r--r--TAO/tao/Principal.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/TAO/tao/Principal.h b/TAO/tao/Principal.h
index 0a2c01dccf3..43eeb47518d 100644
--- a/TAO/tao/Principal.h
+++ b/TAO/tao/Principal.h
@@ -50,6 +50,7 @@ public:
#if !defined(__GNUC__) || __GNUC__ > 2 || __GNUC_MINOR__ >= 8
typedef CORBA_Principal_ptr _ptr_type;
+ typedef CORBA_Principal_var _var_type;
#endif /* __GNUC__ */
// Useful for template programming.
@@ -75,6 +76,72 @@ private:
#endif /* __GNUG__ */
};
+class TAO_Export CORBA_Principal_var
+{
+ // = TITLE
+ // The T_var class for Principal
+ //
+ // = DESCRIPTION
+ // As any other pseudo object Principal must have a T_var class,
+ // the interface an semantics are specified in the CORBA spec.
+ //
+ // = NOTE
+ // We use CORBA_Principal_ptr as the _ptr type instead of
+ // CORBA::Principal_ptr, this is an attempt to reduced the cyclic
+ // dependencies in TAO.
+ //
+public:
+ CORBA_Principal_var (void);
+ CORBA_Principal_var (CORBA_Principal_ptr);
+ CORBA_Principal_var (const CORBA_Principal_var &);
+ ~CORBA_Principal_var (void);
+
+ CORBA_Principal_var &operator= (CORBA_Principal_ptr);
+ CORBA_Principal_var &operator= (const CORBA_Principal_var &);
+ CORBA_Principal_ptr operator-> (void) const;
+
+ operator const CORBA_Principal_ptr &() const;
+ operator CORBA_Principal_ptr &();
+ // in, inout, out, _retn
+ CORBA_Principal_ptr in (void) const;
+ CORBA_Principal_ptr &inout (void);
+ CORBA_Principal_ptr &out (void);
+ CORBA_Principal_ptr _retn (void);
+ CORBA_Principal_ptr ptr (void) const;
+
+private:
+ CORBA_Principal_ptr ptr_;
+};
+
+class TAO_Export CORBA_Principal_out
+{
+ // = TITLE
+ // The T_out class for Principal
+ //
+ // = DESCRIPTION
+ // As any other pseudo object Principal must have a T_out class,
+ // the interface an semantics are specified in the CORBA spec.
+ //
+ // = NOTE
+ // We use CORBA_Principal_ptr as the _ptr type instead of
+ // CORBA::Principal_ptr, this is an attempt to reduced the cyclic
+ // dependencies in TAO.
+ //
+public:
+ CORBA_Principal_out (CORBA_Principal_ptr &);
+ CORBA_Principal_out (CORBA_Principal_var &);
+ CORBA_Principal_out (CORBA_Principal_out &);
+ CORBA_Principal_out &operator= (CORBA_Principal_out &);
+ CORBA_Principal_out &operator= (const CORBA_Principal_var &);
+ CORBA_Principal_out &operator= (CORBA_Principal_ptr);
+ operator CORBA_Principal_ptr &();
+ CORBA_Principal_ptr &ptr (void);
+ CORBA_Principal_ptr operator-> (void);
+
+private:
+ CORBA_Principal_ptr &ptr_;
+};
+
extern TAO_Export CORBA::Boolean
operator<< (TAO_OutputCDR&, CORBA_Principal*);