summaryrefslogtreecommitdiff
path: root/ace/CORBA_Ref.h
diff options
context:
space:
mode:
authorlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1996-10-21 21:41:34 +0000
committerlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1996-10-21 21:41:34 +0000
commita5fdebc5f6375078ec1763850a4ca23ec7fe6458 (patch)
treebcf0a25c3d45a209a6e3ac37b233a4812f29c732 /ace/CORBA_Ref.h
downloadATCD-a5fdebc5f6375078ec1763850a4ca23ec7fe6458.tar.gz
Initial revision
Diffstat (limited to 'ace/CORBA_Ref.h')
-rw-r--r--ace/CORBA_Ref.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/ace/CORBA_Ref.h b/ace/CORBA_Ref.h
new file mode 100644
index 00000000000..c344cc401c6
--- /dev/null
+++ b/ace/CORBA_Ref.h
@@ -0,0 +1,80 @@
+/* -*- C++ -*- */
+// $Id$
+
+
+// ============================================================================
+//
+// = LIBRARY
+// ace
+//
+// = FILENAME
+// CORBA_Ref
+//
+// = AUTHOR
+// Irfan Pyarali (irfan@wuerl.wustl.edu).
+// Tim Harrison (harrison@cs.wustl.edu)
+//
+// = DESCRIPTION
+// A wrapper for helping with Orbix object references.
+//
+// ============================================================================
+
+#if !defined (ACE_CORBA_REF_H)
+#define ACE_CORBA_REF_H
+
+template <class CORBA_REF>
+class ACE_CORBA_Ref
+ // = TITLE
+ // A wrapper for helping with orbix object references.
+ //
+ // = DESCRIPTION
+ // ACE_CORBA_Ref is parameterized by the type of orbix object
+ // reference to be used. The construtor, operator=, and the
+ // destructor of ACE_CORBA_Ref perform implicit duplicates and
+ // releases in order to help make the use of orbix object
+ // references transparent.
+{
+public:
+ ACE_CORBA_Ref (void);
+ // Null construction.
+
+ ACE_CORBA_Ref (CORBA_REF *ref);
+ // Contruction with an orbix ref.
+ // performs a ref->_duplicate().
+
+ CORBA_REF *operator= (CORBA_REF *ref);
+ // Assignment performs a ref->_duplicate().
+
+ operator CORBA_REF *(void) const;
+ // Type operator
+
+ CORBA_REF *operator-> (void) const;
+ // Smart pointer to forward all CORBA_REF calls to the underlying
+ // orbix reference.
+
+ int operator== (CORBA_REF *) const;
+ // Pointer comparison.
+
+ int operator!= (CORBA_REF *) const;
+ // Pointer comparison.
+
+ ~ACE_CORBA_Ref (void);
+ // Destruction: calls ref_->_release
+
+private:
+ CORBA_REF *ref_;
+};
+
+#if defined (__ACE_INLINE__)
+#include "ace/CORBA_Ref.i"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/CORBA_Ref.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("CORBA_Ref.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#endif /* CORBA_REF_H */