summaryrefslogtreecommitdiff
path: root/TAO/tao
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-07-07 19:29:54 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-07-07 19:29:54 +0000
commiteeeff9e795f44b7858aa9537a9c03e7a6854f007 (patch)
tree09487628621d01cb6bab1384bbf145bd6066497d /TAO/tao
parent14cfc6c404c62adf27126bd4a74306396d7ad092 (diff)
downloadATCD-eeeff9e795f44b7858aa9537a9c03e7a6854f007.tar.gz
ChangeLogTag:Wed Jul 7 14:24:08 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
Diffstat (limited to 'TAO/tao')
-rw-r--r--TAO/tao/CDR_Interpreter.cpp6
-rw-r--r--TAO/tao/DomainC.cpp8
-rw-r--r--TAO/tao/DynAnyC.cpp24
-rw-r--r--TAO/tao/IORC.cpp108
-rw-r--r--TAO/tao/IORC.h102
-rw-r--r--TAO/tao/IORC.i289
-rw-r--r--TAO/tao/IORManipulation.cpp12
-rw-r--r--TAO/tao/Makefile21
-rw-r--r--TAO/tao/MessagingC.cpp8
-rw-r--r--TAO/tao/ORB.cpp2
-rw-r--r--TAO/tao/ORB_Core.h2
-rw-r--r--TAO/tao/Object.cpp4
-rw-r--r--TAO/tao/PolicyC.cpp12
-rw-r--r--TAO/tao/PollableC.cpp12
-rw-r--r--TAO/tao/decode.cpp16
-rw-r--r--TAO/tao/deep_free.cpp6
-rw-r--r--TAO/tao/encode.cpp18
-rw-r--r--TAO/tao/varout.cpp51
-rw-r--r--TAO/tao/varout.h634
-rw-r--r--TAO/tao/varout.i58
20 files changed, 190 insertions, 1203 deletions
diff --git a/TAO/tao/CDR_Interpreter.cpp b/TAO/tao/CDR_Interpreter.cpp
index d72ef2cc6b8..70e944d816b 100644
--- a/TAO/tao/CDR_Interpreter.cpp
+++ b/TAO/tao/CDR_Interpreter.cpp
@@ -93,6 +93,8 @@ TAO_CDR_Interpreter::table_[CORBA::TC_KIND_COUNT] =
// make sure that alignment of IDL-defined data types is consistent
// (one byte).
+typedef TAO_Object_Field_T<CORBA::Object,CORBA::Object_var> TAO_Object_Field_Class;
+
enum TCKIND
{
tk_null = 0,
@@ -178,7 +180,7 @@ declare_entry (CORBA::Any, tk_any);
declare_entry (CORBA::TypeCode_ptr, tk_TypeCode);
declare_entry (CORBA::Principal_ptr, tk_Principal);
-declare_entry (TAO_Object_Field_T<CORBA_Object>, tk_objref);
+declare_entry (TAO_Object_Field_Class, tk_objref);
declare_entry (CORBA::String, tk_string);
#if !defined (TAO_NO_COPY_OCTET_SEQUENCES)
@@ -210,7 +212,7 @@ TAO_CDR_Interpreter::init (void)
setup_entry (CORBA::TypeCode_ptr, tk_TypeCode);
setup_entry (CORBA::Principal_ptr, tk_Principal);
setup_entry (CORBA::Object_ptr, tk_objref);
- setup_entry (TAO_Object_Field_T<CORBA_Object>, tk_objref);
+ setup_entry (TAO_Object_Field_Class, tk_objref);
enum generic_enum {a, b, c, d};
diff --git a/TAO/tao/DomainC.cpp b/TAO/tao/DomainC.cpp
index 8e84c3969db..ac8406364a5 100644
--- a/TAO/tao/DomainC.cpp
+++ b/TAO/tao/DomainC.cpp
@@ -346,11 +346,11 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, CORBA_DomainManager_ptr
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- template class TAO_Object_Field_T<CORBA_DomainManager>;
+ template class TAO_Object_Field_T<CORBA_DomainManager,CORBA_DomainManager_var>;
template class TAO_Unbounded_Object_Sequence<CORBA_DomainManager,CORBA_DomainManager_var>;
template class TAO_Object_Manager<CORBA_DomainManager,CORBA_DomainManager_var>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# pragma instantiate TAO_Object_Field_T<CORBA_DomainManager>
+# pragma instantiate TAO_Object_Field_T<CORBA_DomainManager,CORBA_DomainManager_var>
# pragma instantiate TAO_Unbounded_Object_Sequence<CORBA_DomainManager,CORBA_DomainManager_var>
# pragma instantiate TAO_Object_Manager<CORBA_DomainManager,CORBA_DomainManager_var>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
@@ -408,9 +408,9 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, CORBA_ConstructionPolicy
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- template class TAO_Object_Field_T<CORBA_ConstructionPolicy>;
+ template class TAO_Object_Field_T<CORBA_ConstructionPolicy,CORBA_ConstructionPolicy_var>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# pragma instantiate TAO_Object_Field_T<CORBA_ConstructionPolicy>
+# pragma instantiate TAO_Object_Field_T<CORBA_ConstructionPolicy,CORBA_ConstructionPolicy_var>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
#endif /* ! defined (TAO_HAS_MINIMUM_CORBA) */
diff --git a/TAO/tao/DynAnyC.cpp b/TAO/tao/DynAnyC.cpp
index 49ee76e240e..85bdf7fb301 100644
--- a/TAO/tao/DynAnyC.cpp
+++ b/TAO/tao/DynAnyC.cpp
@@ -1356,19 +1356,19 @@ CORBA::TypeCode_ptr _tc_CORBA_DynArray =
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- template class TAO_Object_Field_T<CORBA_DynAny>;
- template class TAO_Object_Field_T<CORBA_DynEnum>;
- template class TAO_Object_Field_T<CORBA_DynStruct>;
- template class TAO_Object_Field_T<CORBA_DynUnion>;
- template class TAO_Object_Field_T<CORBA_DynSequence>;
- template class TAO_Object_Field_T<CORBA_DynArray>;
+ template class TAO_Object_Field_T<CORBA_DynAny,CORBA_DynAny_var>;
+ template class TAO_Object_Field_T<CORBA_DynEnum,CORBA_DynEnum_var>;
+ template class TAO_Object_Field_T<CORBA_DynStruct,CORBA_DynStruct_var>;
+ template class TAO_Object_Field_T<CORBA_DynUnion,CORBA_DynUnion_var>;
+ template class TAO_Object_Field_T<CORBA_DynSequence,CORBA_DynSequence_var>;
+ template class TAO_Object_Field_T<CORBA_DynArray,CORBA_DynArray_var>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# pragma instantiate TAO_Object_Field_T<CORBA_DynAny>
-# pragma instantiate TAO_Object_Field_T<CORBA_DynEnum>
-# pragma instantiate TAO_Object_Field_T<CORBA_DynStruct>
-# pragma instantiate TAO_Object_Field_T<CORBA_DynUnion>
-# pragma instantiate TAO_Object_Field_T<CORBA_DynSequence>
-# pragma instantiate TAO_Object_Field_T<CORBA_DynArray>
+# pragma instantiate TAO_Object_Field_T<CORBA_DynAny,CORBA_DynAny_var>
+# pragma instantiate TAO_Object_Field_T<CORBA_DynEnum,CORBA_DynEnum_var>
+# pragma instantiate TAO_Object_Field_T<CORBA_DynStruct,CORBA_DynStruct_var>
+# pragma instantiate TAO_Object_Field_T<CORBA_DynUnion,CORBA_DynUnion_var>
+# pragma instantiate TAO_Object_Field_T<CORBA_DynSequence,CORBA_DynSequence_var>
+# pragma instantiate TAO_Object_Field_T<CORBA_DynArray,CORBA_DynArray_var>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
#endif /* TAO_HAS_MINIMUM_CORBA */
diff --git a/TAO/tao/IORC.cpp b/TAO/tao/IORC.cpp
index a0e0dbc35cd..5f5f85ea73e 100644
--- a/TAO/tao/IORC.cpp
+++ b/TAO/tao/IORC.cpp
@@ -304,87 +304,6 @@ static CORBA::TypeCode _tc_TAO_tc_TAO_IOP_TAO_IOR_Manipulation_Invalid_IOR (CORB
CORBA::TypeCode_ptr TAO_IOP::TAO_IOR_Manipulation::_tc_Invalid_IOR = &_tc_TAO_tc_TAO_IOP_TAO_IOR_Manipulation_Invalid_IOR;
-#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
-
-#if !defined (__TAO_UNBOUNDED_OBJECT_SEQUENCE_TAO_IOP_TAO_IOR_MANIPULATION_IORLIST_CS_)
-#define __TAO_UNBOUNDED_OBJECT_SEQUENCE_TAO_IOP_TAO_IOR_MANIPULATION_IORLIST_CS_
-
- // The Base_Sequence functions, please see tao/Sequence.h
- void
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::_allocate_buffer (CORBA::ULong length)
- {
- CORBA::Object **tmp = TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::allocbuf (length);
-
- if (this->buffer_ != 0)
- {
- CORBA::Object **old = ACE_reinterpret_cast (CORBA::Object**, this->buffer_);
- for (CORBA::ULong i = 0; i < this->length_; ++i)
- if (!this->release_)
- tmp[i] = CORBA::Object::_duplicate (old[i]);
- else
- tmp[i] = old[i];
-
- if (this->release_)
- delete[] old;
-
- }
- this->buffer_ = tmp;
- }
-
- void
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::_deallocate_buffer (void)
- {
- if (this->buffer_ == 0 || this->release_ == 0)
- return;
- CORBA::Object **tmp = ACE_reinterpret_cast (CORBA::Object**, this->buffer_);
- for (CORBA::ULong i = 0; i < this->length_; ++i)
- {
- CORBA::release (tmp[i]);
- tmp[i] = CORBA::Object::_nil ();
- }
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::freebuf (tmp);
- this->buffer_ = 0;
- }
-
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::~_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList (void)
- {
- this->_deallocate_buffer ();
- }
-
- void
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::_shrink_buffer (CORBA::ULong nl, CORBA::ULong ol)
- {
- CORBA::Object **tmp = ACE_reinterpret_cast (CORBA::Object**, this->buffer_);
-
- for (CORBA::ULong i = nl; i < ol; ++i)
- {
- CORBA::release (tmp[i]);
- tmp[i] = CORBA::Object::_nil ();
- }
- }
- void
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::_downcast (
- void* target,
- CORBA_Object *src,
- CORBA_Environment &ACE_TRY_ENV
- )
- {
- CORBA::Object **tmp = ACE_static_cast (CORBA::Object**, target);
- *tmp = CORBA::Object::_narrow (src, ACE_TRY_ENV);
- }
-
- CORBA_Object*
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::_upcast (void *src) const
- {
- CORBA::Object **tmp = ACE_static_cast (CORBA::Object**, src);
- return *tmp;
- }
-
-#endif /* end #if !defined */
-
-
-#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
-
#if !defined (_TAO_IOP_TAO_IOR_MANIPULATION_IORLIST_CS_)
#define _TAO_IOP_TAO_IOR_MANIPULATION_IORLIST_CS_
@@ -396,30 +315,15 @@ TAO_IOP::TAO_IOR_Manipulation::IORList::IORList (void)
{}
TAO_IOP::TAO_IOR_Manipulation::IORList::IORList (CORBA::ULong max) // uses max size
:
-#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
- _TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList
-#else /* TAO_USE_SEQUENCE_TEMPLATES */
- TAO_Unbounded_Object_Sequence<CORBA::Object,CORBA::Object_var>
-#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
- (max)
+ TAO_Unbounded_Object_Sequence<CORBA::Object,CORBA::Object_var> (max)
{}
TAO_IOP::TAO_IOR_Manipulation::IORList::IORList (CORBA::ULong max, CORBA::ULong length, CORBA::Object_ptr *buffer, CORBA::Boolean release)
:
-#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
- _TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList
-#else /* TAO_USE_SEQUENCE_TEMPLATES */
- TAO_Unbounded_Object_Sequence<CORBA::Object,CORBA::Object_var>
-#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
- (max, length, buffer, release)
+ TAO_Unbounded_Object_Sequence<CORBA::Object,CORBA::Object_var> (max, length, buffer, release)
{}
TAO_IOP::TAO_IOR_Manipulation::IORList::IORList (const IORList &seq) // copy ctor
:
-#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
- _TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList
-#else /* TAO_USE_SEQUENCE_TEMPLATES */
- TAO_Unbounded_Object_Sequence<CORBA::Object,CORBA::Object_var>
-#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
- (seq)
+ TAO_Unbounded_Object_Sequence<CORBA::Object,CORBA::Object_var> (seq)
{}
TAO_IOP::TAO_IOR_Manipulation::IORList::~IORList (void) // dtor
{}
@@ -862,9 +766,11 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, TAO_IOP::TAO_IOR_Manipul
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- template class TAO_Object_Field_T<TAO_IOP::TAO_IOR_Manipulation>;
+ template class TAO_Object_Field_T<TAO_IOP::TAO_IOR_Manipulation,TAO_IOP::TAO_IOR_Manipulation_var>;
+ template class TAO_Object_Manager<TAO_IOP::TAO_IOR_Manipulation,TAO_IOP::TAO_IOR_Manipulation_var>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# pragma instantiate TAO_Object_Field_T<TAO_IOP::TAO_IOR_Manipulation>
+# pragma instantiate TAO_Object_Field_T<TAO_IOP::TAO_IOR_Manipulation,TAO_IOP::TAO_IOR_Manipulation_var>
+# pragma instantiate TAO_Object_Manager<TAO_IOP::TAO_IOR_Manipulation,TAO_IOP::TAO_IOR_Manipulation_var>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
void operator<<= (CORBA::Any &_tao_any, const TAO_IOP::TAO_IOR_Manipulation::EmptyProfileList &_tao_elem) // copying
diff --git a/TAO/tao/IORC.h b/TAO/tao/IORC.h
index 814f22c2b2a..fd5488bef8d 100644
--- a/TAO/tao/IORC.h
+++ b/TAO/tao/IORC.h
@@ -277,90 +277,6 @@ TAO_NAMESPACE TAO_IOP
#endif /* end #if !defined */
-
-#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
-
-#if !defined (__TAO_UNBOUNDED_OBJECT_SEQUENCE_TAO_IOP_TAO_IOR_MANIPULATION_IORLIST_CH_)
-#define __TAO_UNBOUNDED_OBJECT_SEQUENCE_TAO_IOP_TAO_IOR_MANIPULATION_IORLIST_CH_
-
- class _TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object;
-
- class TAO_Export _TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList : public TAO_Unbounded_Base_Sequence
- {
- public:
- // = Initialization and termination methods.
-
- _TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList (void);
- _TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList (CORBA::ULong maximum);
- _TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList (CORBA::ULong maximum,
- CORBA::ULong length,
- CORBA::Object* *value,
- CORBA::Boolean release = 0);
- _TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList(const _TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList &rhs);
- virtual ~_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList (void);
- _TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList &operator= (const _TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList &rhs);
- _TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object operator[] (CORBA::ULong index) const;
- static CORBA::Object **allocbuf (CORBA::ULong nelems);
- static void freebuf (CORBA::Object **buffer);
- // The Base_Sequence functions, please see tao/Sequence.h
- virtual void _allocate_buffer (CORBA::ULong length);
- virtual void _deallocate_buffer (void);
- CORBA::Object* *get_buffer (CORBA::Boolean orphan = 0);
- const CORBA::Object* *get_buffer (void) const;
- virtual void _shrink_buffer (CORBA::ULong nl, CORBA::ULong ol);
- virtual void _downcast (
- void* target,
- CORBA_Object *src,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ()
- );
- virtual CORBA_Object* _upcast (void *src) const;
-
- };
-
-#endif /* end #if !defined */
-
-
-#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
-
-#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
-
-#if !defined (__TAO_OBJECT_MANAGER_TAO_IOP_TAO_IOR_MANIPULATION_CORBA_OBJECT_CH_)
-#define __TAO_OBJECT_MANAGER_TAO_IOP_TAO_IOR_MANIPULATION_CORBA_OBJECT_CH_
-
- class TAO_Export _TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object
- {
- friend class _TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList;
- public:
-
- // = Initialization and termination methods.
- _TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object (const _TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object &rhs);
- _TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object (CORBA::Object** buffer, CORBA::Boolean release);
- ~_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object (void);
- _TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object &operator= (const _TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object &rhs);
- _TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object &operator= (CORBA::Object *p);
- _TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object &operator= (CORBA::Object_var &p);
- CORBA::Object* operator-> (void) const;
- operator const CORBA::Object *() const; // Cast (read-only).
- operator CORBA::Object *&(); // Cast.
- CORBA::Object *in (void) const; // in
- CORBA::Object *&inout (void); // inout
- CORBA::Object *&out (void); // out
- CORBA::Object *_retn (void); // retn
- private:
- CORBA::Object **ptr_;
- // data member, notice that it is a pointer, to implement the
- // reference behavior for assignment.
-
- CORBA::Boolean release_;
- // release flag based on parent's flag
- };
-
-#endif /* end #if !defined */
-
-
-#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
-
#if !defined (_TAO_IOP_TAO_IOR_MANIPULATION_IORLIST_CH_)
#define _TAO_IOP_TAO_IOR_MANIPULATION_IORLIST_CH_
@@ -369,11 +285,7 @@ TAO_NAMESPACE TAO_IOP
// *************************************************************
class TAO_Export IORList : public
-#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
- _TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList
-#else /* TAO_USE_SEQUENCE_TEMPLATES */
TAO_Unbounded_Object_Sequence<CORBA::Object,CORBA::Object_var>
-#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
{
public:
IORList (void); // default ctor
@@ -416,12 +328,7 @@ TAO_NAMESPACE TAO_IOP
operator IORList &();
operator IORList &() const;
-#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
- _TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object
-#else /* TAO_USE_SEQUENCE_TEMPLATES */
- TAO_Object_Manager<CORBA::Object,CORBA::Object_var>
-#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
- operator[] (CORBA::ULong index);
+ TAO_Object_Manager<CORBA::Object,CORBA::Object_var> operator[] (CORBA::ULong index);
// in, inout, out, _retn
const IORList &in (void) const;
IORList &inout (void);
@@ -452,12 +359,7 @@ TAO_NAMESPACE TAO_IOP
IORList *&ptr (void);
IORList *operator-> (void);
-#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
- _TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object
-#else /* TAO_USE_SEQUENCE_TEMPLATES */
- TAO_Object_Manager<CORBA::Object,CORBA::Object_var>
-#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
- operator[] (CORBA::ULong index);
+ TAO_Object_Manager<CORBA::Object,CORBA::Object_var> operator[] (CORBA::ULong index);
private:
IORList *&ptr_;
diff --git a/TAO/tao/IORC.i b/TAO/tao/IORC.i
index 6d504d0b23d..74f2ebace5e 100644
--- a/TAO/tao/IORC.i
+++ b/TAO/tao/IORC.i
@@ -218,278 +218,6 @@ TAO_IOP::TAO_IOR_Manipulation_out::operator-> (void)
// *************************************************************
-#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
-
-#if !defined (__TAO_OBJECT_MANAGER_TAO_IOP_TAO_IOR_MANIPULATION_CORBA_OBJECT_CI_)
-#define __TAO_OBJECT_MANAGER_TAO_IOP_TAO_IOR_MANIPULATION_CORBA_OBJECT_CI_
-
- // = Initialization and termination methods.
- ACE_INLINE
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object (const TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object &rhs)
- : ptr_ (rhs.ptr_),
- release_ (rhs.release_)
- {
- }
-
- ACE_INLINE
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object (CORBA::Object** buffer, CORBA::Boolean release)
- : ptr_ (buffer),
- release_ (release)
- {
- }
-
- ACE_INLINE
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object::~_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object (void)
- {
- }
-
- ACE_INLINE TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object &
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object::operator= (const TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object &rhs)
- {
- if (this == &rhs)
- return *this;
-
- if (this->release_)
- {
- CORBA::release (*this->ptr_);
- *this->ptr_ = CORBA::Object::_duplicate (*rhs.ptr_);
- }
- else
- *this->ptr_ = *rhs.ptr_;
-
- return *this;
- }
-
- ACE_INLINE TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object &
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object::operator= (CORBA::Object *p)
- // Assignment from CORBA::Object *.
- {
- if (this->release_)
- {
- CORBA::release (*this->ptr_);
- *this->ptr_ = p;
- }
- else
- *this->ptr_ = p;
-
- return *this;
- }
-
- ACE_INLINE TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object &
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object::operator= (CORBA::Object_var &p)
- // Assignment from CORBA::Object_var .
- {
- if (this->release_)
- {
- CORBA::release (*this->ptr_);
- *this->ptr_ = CORBA::Object::_duplicate(p.in());
- }
- else
- *this->ptr_ = p.in ();
-
- return *this;
- }
-
- ACE_INLINE
- CORBA::Object*
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object::operator-> (void) const
- {
- return *this->ptr_;
- }
-
- ACE_INLINE
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object::operator const CORBA::Object *() const // Cast (read-only).
- {
- return *this->ptr_;
- }
-
- ACE_INLINE
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object::operator CORBA::Object *&() // Cast.
- {
- return *this->ptr_;
- }
-
- ACE_INLINE CORBA::Object *
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object::in (void) const // in
- {
- return *this->ptr_;
- }
-
- ACE_INLINE CORBA::Object *&
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object::inout (void) // inout
- {
- return *this->ptr_;
- }
-
- ACE_INLINE CORBA::Object *&
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object::out (void) // out
- {
- CORBA::release (*this->ptr_);
- *this->ptr_ = CORBA::Object::_nil ();
- return *this->ptr_;
- }
-
- ACE_INLINE CORBA::Object *
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object::_retn (void) // retn
- {
- CORBA::Object *temp = *this->ptr_;
- *this->ptr_ = CORBA::Object::_nil ();
- return temp;
- }
-
-#endif /* end #if !defined */
-
-
-#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
-
-#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
-
-#if !defined (__TAO_UNBOUNDED_OBJECT_SEQUENCE_TAO_IOP_TAO_IOR_MANIPULATION_IORLIST_CI_)
-#define __TAO_UNBOUNDED_OBJECT_SEQUENCE_TAO_IOP_TAO_IOR_MANIPULATION_IORLIST_CI_
-
- ACE_INLINE CORBA::Object **
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::allocbuf (CORBA::ULong nelems)
- {
- CORBA::Object **buf = 0;
-
- ACE_NEW_RETURN (buf, CORBA::Object*[nelems], 0);
-
- for (CORBA::ULong i = 0; i < nelems; i++)
- buf[i] = CORBA::Object::_nil ();
-
- return buf;
- }
-
- ACE_INLINE void
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::freebuf (CORBA::Object **buffer)
- {
- if (buffer == 0)
- return;
- delete[] buffer;
- }
-
- ACE_INLINE
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList (void)
- {
- }
-
- ACE_INLINE
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList (CORBA::ULong maximum)
- : TAO_Unbounded_Base_Sequence (maximum, TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::allocbuf (maximum))
- {
- }
-
- ACE_INLINE
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList (CORBA::ULong maximum,
- CORBA::ULong length,
- CORBA::Object* *value,
- CORBA::Boolean release)
- : TAO_Unbounded_Base_Sequence (maximum, length, value, release)
- {
- }
-
- ACE_INLINE
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList(const TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList &rhs)
- : TAO_Unbounded_Base_Sequence (rhs)
- {
- CORBA::Object **tmp1 = TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::allocbuf (this->maximum_);
- CORBA::Object ** const tmp2 = ACE_reinterpret_cast (CORBA::Object ** ACE_CAST_CONST, rhs.buffer_);
-
- for (CORBA::ULong i = 0; i < rhs.length_; ++i)
- tmp1[i] = CORBA::Object::_duplicate (tmp2[i]);
-
- this->buffer_ = tmp1;
- }
-
- ACE_INLINE TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList &
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::operator= (const TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList &rhs)
- {
- if (this == &rhs)
- return *this;
-
- if (this->release_)
- {
- CORBA::Object **tmp = ACE_reinterpret_cast (CORBA::Object **, this->buffer_);
-
- for (CORBA::ULong i = 0; i < this->length_; ++i)
- {
- CORBA::release (tmp[i]);
- tmp[i] = CORBA::Object::_nil ();
- }
- if (this->maximum_ < rhs.maximum_)
- {
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::freebuf (tmp);
- this->buffer_ = TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::allocbuf (rhs.maximum_);
- }
- }
- else
- this->buffer_ = TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::allocbuf (rhs.maximum_);
-
- TAO_Unbounded_Base_Sequence::operator= (rhs);
-
- CORBA::Object **tmp1 = ACE_reinterpret_cast (CORBA::Object **, this->buffer_);
- CORBA::Object ** const tmp2 = ACE_reinterpret_cast (CORBA::Object ** ACE_CAST_CONST, rhs.buffer_);
-
- for (CORBA::ULong i = 0; i < rhs.length_; ++i)
- tmp1[i] = CORBA::Object::_duplicate (tmp2[i]);
-
- return *this;
- }
-
- ACE_INLINE TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::operator[] (CORBA::ULong index) const
- // read-write accessor
- {
- ACE_ASSERT (index < this->maximum_);
- CORBA::Object ** const tmp = ACE_reinterpret_cast (CORBA::Object ** ACE_CAST_CONST, this->buffer_);
- return TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object (tmp + index, this->release_);
- }
-
- ACE_INLINE CORBA::Object* *
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::get_buffer (CORBA::Boolean orphan)
- {
- CORBA::Object **result = 0;
- if (orphan == 0)
- {
- // We retain ownership.
- if (this->buffer_ == 0)
- {
- result = TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::allocbuf (this->maximum_);
- this->buffer_ = result;
- }
- else
- {
- result = ACE_reinterpret_cast (CORBA::Object**, this->buffer_);
- }
- }
- else // if (orphan == 1)
- {
- if (this->release_ != 0)
- {
- // We set the state back to default and relinquish
- // ownership.
- result = ACE_reinterpret_cast(CORBA::Object**,this->buffer_);
- this->maximum_ = 0;
- this->length_ = 0;
- this->buffer_ = 0;
- this->release_ = 0;
- }
- }
- return result;
- }
-
- ACE_INLINE const CORBA::Object* *
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Unbounded_Object_Sequence_TAO_IOP_TAO_IOR_Manipulation_IORList::get_buffer (void) const
- {
- return ACE_reinterpret_cast(const CORBA::Object ** ACE_CAST_CONST, this->buffer_);
- }
-
-
-#endif /* end #if !defined */
-
-
-#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
-
#if !defined (_TAO_IOP_TAO_IOR_MANIPULATION_IORLIST_CI_)
#define _TAO_IOP_TAO_IOR_MANIPULATION_IORLIST_CI_
@@ -571,13 +299,7 @@ TAO_IOP::TAO_IOR_Manipulation::IORList_var::operator TAO_IOP::TAO_IOR_Manipulati
return *this->ptr_;
}
-ACE_INLINE
-#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object
-#else /* TAO_USE_SEQUENCE_TEMPLATES */
- TAO_Object_Manager<CORBA::Object,CORBA::Object_var>
-#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
-
+ACE_INLINE TAO_Object_Manager<CORBA::Object,CORBA::Object_var>
TAO_IOP::TAO_IOR_Manipulation::IORList_var::operator[] (CORBA::ULong index)
{
return this->ptr_->operator[] (index);
@@ -674,13 +396,7 @@ TAO_IOP::TAO_IOR_Manipulation::IORList_out::operator-> (void)
return this->ptr_;
}
-ACE_INLINE
-#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
- TAO_IOP::TAO_IOR_Manipulation::_TAO_Object_Manager_TAO_IOP_TAO_IOR_Manipulation_CORBA_Object
-#else /* TAO_USE_SEQUENCE_TEMPLATES */
- TAO_Object_Manager<CORBA::Object,CORBA::Object_var>
-#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
-
+ACE_INLINE TAO_Object_Manager<CORBA::Object,CORBA::Object_var>
TAO_IOP::TAO_IOR_Manipulation::IORList_out::operator[] (CORBA::ULong index)
{
return this->ptr_->operator[] (index);
@@ -834,4 +550,3 @@ operator>> (
ACE_ENDTRY;
return 0;
}
-
diff --git a/TAO/tao/IORManipulation.cpp b/TAO/tao/IORManipulation.cpp
index ede77a4ab7f..623c06e2808 100644
--- a/TAO/tao/IORManipulation.cpp
+++ b/TAO/tao/IORManipulation.cpp
@@ -283,3 +283,15 @@ TAO_IOR_Manipulation_impl::get_profile_count (
return count;
}
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+
+template class TAO_Object_Manager<CORBA_Object,CORBA_Object_var>;
+template class TAO_Unbounded_Object_Sequence<CORBA_Object,CORBA_Object_var>;
+
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+
+#pragma instantiate TAO_Object_Manager<CORBA_Object,CORBA_Object_var>
+#pragma instantiate TAO_Unbounded_Object_Sequence<CORBA_Object,CORBA_Object_var>
+
+#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/tao/Makefile b/TAO/tao/Makefile
index 790d1ab6c3e..ee7177cb8e3 100644
--- a/TAO/tao/Makefile
+++ b/TAO/tao/Makefile
@@ -10266,7 +10266,8 @@ realclean:
$(TAO_ROOT)/tao/Environment.h \
$(TAO_ROOT)/tao/Environment.i \
$(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Any.i DomainC.i \
+ $(TAO_ROOT)/tao/Any.i \
+ DomainC.i \
$(TAO_ROOT)/tao/Operation_Table.h \
$(ACE_ROOT)/ace/Hash_Map_Manager.h \
$(ACE_ROOT)/ace/Functor.h \
@@ -10399,8 +10400,9 @@ realclean:
$(TAO_ROOT)/tao/Environment.i \
$(TAO_ROOT)/tao/Object.h \
$(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i TimeBaseC.i \
- TimeBaseS.h TimeBaseS_T.h TimeBaseS_T.i TimeBaseS_T.cpp TimeBaseS.i
+ $(TAO_ROOT)/tao/Any.i \
+ TimeBaseC.i TimeBaseS.h TimeBaseS_T.h TimeBaseS_T.i TimeBaseS_T.cpp \
+ TimeBaseS.i
.obj/TimeBaseS.o .obj/TimeBaseS.so .shobj/TimeBaseS.o .shobj/TimeBaseS.so: TimeBaseS.cpp TimeBaseS.h TimeBaseC.h \
$(TAO_ROOT)/tao/Any.h \
$(TAO_ROOT)/tao/CDR.h \
@@ -10479,8 +10481,8 @@ realclean:
$(TAO_ROOT)/tao/Environment.i \
$(TAO_ROOT)/tao/Object.h \
$(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i TimeBaseC.i \
- TimeBaseS_T.h TimeBaseS_T.i TimeBaseS_T.cpp TimeBaseS.i
+ $(TAO_ROOT)/tao/Any.i \
+ TimeBaseC.i TimeBaseS_T.h TimeBaseS_T.i TimeBaseS_T.cpp TimeBaseS.i
.obj/Principal.o .obj/Principal.so .shobj/Principal.o .shobj/Principal.so: Principal.cpp \
$(TAO_ROOT)/tao/Principal.h \
$(TAO_ROOT)/tao/corbafwd.h \
@@ -14300,8 +14302,8 @@ realclean:
$(TAO_ROOT)/tao/Sequence_T.h \
$(TAO_ROOT)/tao/Sequence_T.i \
$(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/IOPC.i IOPS_T.h \
- IOPS_T.i IOPS_T.cpp IOPS.i
+ $(TAO_ROOT)/tao/IOPC.i \
+ IOPS_T.h IOPS_T.i IOPS_T.cpp IOPS.i
.obj/CONV_FRAMEC.o .obj/CONV_FRAMEC.so .shobj/CONV_FRAMEC.o .shobj/CONV_FRAMEC.so: CONV_FRAMEC.cpp CONV_FRAMEC.h \
$(TAO_ROOT)/tao/CDR.h \
$(TAO_ROOT)/tao/corbafwd.h \
@@ -15952,8 +15954,9 @@ realclean:
$(TAO_ROOT)/tao/Environment.i \
$(TAO_ROOT)/tao/Object.h \
$(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i TimeBaseC.i \
- TimeBaseS_T.h TimeBaseS_T.i TimeBaseS_T.cpp TimeBaseS.i POA_CORBA.h \
+ $(TAO_ROOT)/tao/Any.i \
+ TimeBaseC.i TimeBaseS_T.h TimeBaseS_T.i TimeBaseS_T.cpp TimeBaseS.i \
+ POA_CORBA.h \
$(TAO_ROOT)/tao/CurrentC.h \
$(TAO_ROOT)/tao/CurrentC.i \
$(TAO_ROOT)/tao/PolicyC.h \
diff --git a/TAO/tao/MessagingC.cpp b/TAO/tao/MessagingC.cpp
index f82f38c3548..1e64afec470 100644
--- a/TAO/tao/MessagingC.cpp
+++ b/TAO/tao/MessagingC.cpp
@@ -2192,8 +2192,8 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, Messaging::Poller_ptr &_
template class TAO_Unbounded_Sequence<Messaging::PolicyValue>;
#if defined(TAO_POLLER)
- template class TAO_Object_Field_T<Messaging::ReplyHandler>;
- template class TAO_Object_Field_T<Messaging::Poller>;
+ template class TAO_Object_Field_T<Messaging::ReplyHandler,Messaging::ReplyHandler_var>;
+ template class TAO_Object_Field_T<Messaging::Poller,Messaging::Poller_var>;
#endif /* TAO_POLLER */
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
@@ -2201,8 +2201,8 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, Messaging::Poller_ptr &_
#pragma instantiate TAO_Unbounded_Sequence<Messaging::PolicyValue>
#if defined(TAO_POLLER)
-# pragma instantiate TAO_Object_Field_T<Messaging::ReplyHandler>
-# pragma instantiate TAO_Object_Field_T<Messaging::Poller>
+# pragma instantiate TAO_Object_Field_T<Messaging::ReplyHandler,Messaging::ReplyHandler_var>
+# pragma instantiate TAO_Object_Field_T<Messaging::Poller,Messaging::Poller_var>
#endif /* TAO_POLLER */
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/tao/ORB.cpp b/TAO/tao/ORB.cpp
index 51a5141746e..2c71ca6db33 100644
--- a/TAO/tao/ORB.cpp
+++ b/TAO/tao/ORB.cpp
@@ -1714,7 +1714,7 @@ CORBA_ORB::_find_collocated_servant (TAO_Stub *sobj,
const TAO_Profile* profile = mprofile.get_profile (j);
TAO_ObjectKey_var objkey = profile->_key ();
- CORBA::Environment ACE_TRY_ENV;
+ ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
{
PortableServer::Servant servant =
diff --git a/TAO/tao/ORB_Core.h b/TAO/tao/ORB_Core.h
index ab8cea69762..2cdb22b9f3a 100644
--- a/TAO/tao/ORB_Core.h
+++ b/TAO/tao/ORB_Core.h
@@ -92,7 +92,7 @@ public:
// (potentially) TSS object.
int is_server_thread_;
- // Is this thread a leader for this ORB?
+ // Is this thread a server for this ORB?
int is_leader_thread_;
// Is this thread a leader for this ORB?
diff --git a/TAO/tao/Object.cpp b/TAO/tao/Object.cpp
index 767ac6463f6..0424406bb8d 100644
--- a/TAO/tao/Object.cpp
+++ b/TAO/tao/Object.cpp
@@ -557,13 +557,13 @@ TAO_Object_Field::~TAO_Object_Field (void)
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class TAO_Object_Field_T<CORBA_Object>;
+template class TAO_Object_Field_T<CORBA_Object,CORBA_Object_var>;
template class auto_ptr<TAO_MProfile>;
template class ACE_Auto_Basic_Ptr<TAO_MProfile>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate TAO_Object_Field_T<CORBA_Object>
+#pragma instantiate TAO_Object_Field_T<CORBA_Object,CORBA_Object_var>
#pragma instantiate auto_ptr<TAO_MProfile>
#pragma instantiate ACE_Auto_Basic_Ptr<TAO_MProfile>
diff --git a/TAO/tao/PolicyC.cpp b/TAO/tao/PolicyC.cpp
index 3bfe675b5c6..6e5b9734393 100644
--- a/TAO/tao/PolicyC.cpp
+++ b/TAO/tao/PolicyC.cpp
@@ -978,9 +978,9 @@ template class TAO_Unbounded_Sequence<CORBA::ULong>;
template class TAO_Unbounded_Object_Sequence<CORBA_Policy,CORBA_Policy_var>;
template class TAO_Object_Manager<CORBA_Policy,CORBA_Policy_var>;
-// template class TAO_Object_Field_T<CORBA_Policy>;
-// template class TAO_Object_Field_T<CORBA_PolicyManager>;
-// template class TAO_Object_Field_T<CORBA_PolicyCurrent>;
+// template class TAO_Object_Field_T<CORBA_Policy,CORBA_Policy_var>;
+// template class TAO_Object_Field_T<CORBA_PolicyManager,CORBA_PolicyManager_var>;
+// template class TAO_Object_Field_T<CORBA_PolicyCurrent,CORBA_PolicyCurrent_var>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
@@ -989,8 +989,8 @@ template class TAO_Object_Manager<CORBA_Policy,CORBA_Policy_var>;
#pragma instantiate TAO_Unbounded_Object_Sequence<CORBA_Policy,CORBA_Policy_var>
#pragma instantiate TAO_Object_Manager<CORBA_Policy,CORBA_Policy_var>
-//# pragma instantiate TAO_Object_Field_T<CORBA_Policy>
-//# pragma instantiate TAO_Object_Field_T<CORBA_PolicyManager>
-//# pragma instantiate TAO_Object_Field_T<CORBA_PolicyCurrent>
+//# pragma instantiate TAO_Object_Field_T<CORBA_Policy,CORBA_Policy_var>
+//# pragma instantiate TAO_Object_Field_T<CORBA_PolicyManager,CORBA_PolicyManager_var>
+//# pragma instantiate TAO_Object_Field_T<CORBA_PolicyCurrent,CORBA_PolicyCurrent_var>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/tao/PollableC.cpp b/TAO/tao/PollableC.cpp
index b1f0bfd6f48..a58dbda1df0 100644
--- a/TAO/tao/PollableC.cpp
+++ b/TAO/tao/PollableC.cpp
@@ -736,9 +736,9 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, CORBA_Pollable_ptr &_tao
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- template class TAO_Object_Field_T<CORBA_Pollable>;
+ template class TAO_Object_Field_T<CORBA_Pollable,CORBA_Pollable_var>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# pragma instantiate TAO_Object_Field_T<CORBA_Pollable>
+# pragma instantiate TAO_Object_Field_T<CORBA_Pollable,CORBA_Pollable_var>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
void operator<<= (CORBA::Any &_tao_any, CORBA::DIIPollable_ptr _tao_elem)
@@ -792,9 +792,9 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, CORBA::DIIPollable_ptr &
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- template class TAO_Object_Field_T<CORBA::DIIPollable>;
+ template class TAO_Object_Field_T<CORBA::DIIPollable,CORBA::DIIPollable_var>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# pragma instantiate TAO_Object_Field_T<CORBA::DIIPollable>
+# pragma instantiate TAO_Object_Field_T<CORBA::DIIPollable,CORBA::DIIPollable_var>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
void operator<<= (CORBA::Any &_tao_any, CORBA_PollableSet_ptr _tao_elem)
@@ -848,9 +848,9 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, CORBA_PollableSet_ptr &_
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- template class TAO_Object_Field_T<CORBA_PollableSet>;
+ template class TAO_Object_Field_T<CORBA_PollableSet,CORBA_PollableSet_var>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# pragma instantiate TAO_Object_Field_T<CORBA_PollableSet>
+# pragma instantiate TAO_Object_Field_T<CORBA_PollableSet,CORBA_PollableSet_var>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
void operator<<= (CORBA::Any &_tao_any, const CORBA_PollableSet::NoPossiblePollable &_tao_elem) // copying
diff --git a/TAO/tao/decode.cpp b/TAO/tao/decode.cpp
index 9639b6d9989..6cb581ac6cc 100644
--- a/TAO/tao/decode.cpp
+++ b/TAO/tao/decode.cpp
@@ -61,6 +61,8 @@ ACE_RCSID(tao, decode, "$Id$")
// code out into a separate routine called both by CDR::decoder () and
// by the code retrieving typecode parameters from encapsulations.
+typedef TAO_Object_Field_T<CORBA::Object,CORBA::Object_var> TAO_Object_Field_Class;
+
CORBA::TypeCode::traverse_status
TAO_Marshal_Primitive::decode (CORBA::TypeCode_ptr tc,
const void *data,
@@ -693,8 +695,8 @@ TAO_Marshal_Struct::decode (CORBA::TypeCode_ptr tc,
if (retval == CORBA::TypeCode::TRAVERSE_CONTINUE)
{
- TAO_Object_Field_T<CORBA_Object>* field =
- ACE_reinterpret_cast (TAO_Object_Field_T<CORBA_Object> *,
+ TAO_Object_Field_Class* field =
+ ACE_reinterpret_cast (TAO_Object_Field_Class *,
ACE_const_cast (void *, data));
field->_downcast (object, ACE_TRY_ENV);
}
@@ -855,7 +857,7 @@ TAO_Marshal_Union::decode (CORBA::TypeCode_ptr tc,
// get the member typecode
member_tc = tc->member_type (i, ACE_TRY_ENV);
ACE_CHECK_RETURN (CORBA::TypeCode::TRAVERSE_STOP);
-
+
// have we reached the default label?, if so,
// save a handle to the typecode for the default
if (default_index >= 0 && default_index-- == 0)
@@ -875,8 +877,8 @@ TAO_Marshal_Union::decode (CORBA::TypeCode_ptr tc,
{
// we know that the object pointer is stored in a
// TAO_Object_Field_T parametrized type
- TAO_Object_Field_T<CORBA_Object>* field =
- ACE_reinterpret_cast (TAO_Object_Field_T<CORBA_Object> *,
+ TAO_Object_Field_Class* field =
+ ACE_reinterpret_cast (TAO_Object_Field_Class *,
member_val);
field->_downcast (object, ACE_TRY_ENV);
ACE_CHECK_RETURN (CORBA::TypeCode::TRAVERSE_STOP);
@@ -906,8 +908,8 @@ TAO_Marshal_Union::decode (CORBA::TypeCode_ptr tc,
{
// we know that the object pointer is stored in a
// TAO_Object_Field_T parametrized type
- TAO_Object_Field_T<CORBA_Object>* field =
- ACE_reinterpret_cast (TAO_Object_Field_T<CORBA_Object> *,
+ TAO_Object_Field_Class* field =
+ ACE_reinterpret_cast (TAO_Object_Field_Class *,
member_val);
field->_downcast (object, ACE_TRY_ENV);
ACE_CHECK_RETURN (CORBA::TypeCode::TRAVERSE_STOP);
diff --git a/TAO/tao/deep_free.cpp b/TAO/tao/deep_free.cpp
index 7541b4e1b95..0ba247223df 100644
--- a/TAO/tao/deep_free.cpp
+++ b/TAO/tao/deep_free.cpp
@@ -233,8 +233,10 @@ TAO_Marshal_Struct::deep_free (CORBA::TypeCode_ptr tc,
case CORBA::tk_objref:
{
- TAO_Object_Field_T<CORBA_Object>* field =
- ACE_reinterpret_cast (TAO_Object_Field_T<CORBA_Object> *,
+ typedef TAO_Object_Field_T<CORBA::Object,CORBA::Object_var>
+ TAO_Object_Field_Class;
+ TAO_Object_Field_Class* field =
+ ACE_reinterpret_cast (TAO_Object_Field_Class *,
ACE_const_cast (void *, source));
field->_release ();
retval = CORBA::TypeCode::TRAVERSE_CONTINUE;
diff --git a/TAO/tao/encode.cpp b/TAO/tao/encode.cpp
index 2f8dac65374..1676ee0183d 100644
--- a/TAO/tao/encode.cpp
+++ b/TAO/tao/encode.cpp
@@ -41,6 +41,8 @@ ACE_RCSID(tao, encode, "$Id$")
// components. "context" is the marshaling stream on which to encode
// the data value.
+typedef TAO_Object_Field_T<CORBA::Object,CORBA::Object_var> TAO_Object_Field_Class;
+
CORBA::TypeCode::traverse_status
TAO_Marshal_Primitive::encode (CORBA::TypeCode_ptr tc,
const void *data,
@@ -375,8 +377,8 @@ TAO_Marshal_Struct::encode (CORBA::TypeCode_ptr tc,
{
// we know that the object pointer is stored in a
// TAO_Object_Field_T parametrized type
- TAO_Object_Field_T<CORBA_Object>* field =
- ACE_reinterpret_cast (TAO_Object_Field_T<CORBA_Object> *,
+ TAO_Object_Field_Class* field =
+ ACE_reinterpret_cast (TAO_Object_Field_Class *,
ACE_const_cast (void *, data));
CORBA::Object_ptr ptr = field->_upcast ();
retval = stream->encode (param, &ptr, 0, ACE_TRY_ENV);
@@ -568,8 +570,8 @@ TAO_Marshal_Union::encode (CORBA::TypeCode_ptr tc,
{
// we know that the object pointer is stored in a
// TAO_Object_Field_T parametrized type
- TAO_Object_Field_T<CORBA_Object>* field =
- ACE_reinterpret_cast (TAO_Object_Field_T<CORBA_Object> *,
+ TAO_Object_Field_Class* field =
+ ACE_reinterpret_cast (TAO_Object_Field_Class *,
member_val);
CORBA::Object_ptr ptr = field->_upcast ();
return stream->encode (member_tc, &ptr, data2, ACE_TRY_ENV);
@@ -589,8 +591,8 @@ TAO_Marshal_Union::encode (CORBA::TypeCode_ptr tc,
{
// we know that the object pointer is stored in a
// TAO_Object_Field_T parametrized type
- TAO_Object_Field_T<CORBA_Object>* field =
- ACE_reinterpret_cast (TAO_Object_Field_T<CORBA_Object> *,
+ TAO_Object_Field_Class* field =
+ ACE_reinterpret_cast (TAO_Object_Field_Class *,
member_val);
CORBA::Object_ptr ptr = field->_upcast ();
return stream->encode (default_tc, &ptr, data2, ACE_TRY_ENV);
@@ -1103,7 +1105,7 @@ TAO_Marshal_Except::encode (CORBA::TypeCode_ptr tc,
// typecode pointer
continue_encoding = stream->write_string (tc->id (ACE_TRY_ENV));
ACE_CHECK_RETURN (CORBA::TypeCode::TRAVERSE_STOP);
-
+
#if defined (__BORLANDC__)
// Borland C++ Builder 4.0 doesn't seem to align caught exceptions
// along the correct boundaries! Therefore we will assume that the
@@ -1117,7 +1119,7 @@ TAO_Marshal_Except::encode (CORBA::TypeCode_ptr tc,
// of the the base class and its private data members (type_ and
// refcount_). After skipping these data members, we will have the data
// members of the derived class which must be encoded.
-
+
int member_count = tc->member_count (ACE_TRY_ENV);
ACE_CHECK_RETURN (CORBA::TypeCode::TRAVERSE_STOP);
diff --git a/TAO/tao/varout.cpp b/TAO/tao/varout.cpp
index 87c644a975f..d06b4241fb0 100644
--- a/TAO/tao/varout.cpp
+++ b/TAO/tao/varout.cpp
@@ -22,6 +22,7 @@
#define TAO_VAROUT_C
#include "tao/varout.h"
+#include "tao/Sequence.h"
#if !defined (__ACE_INLINE__)
#include "tao/varout.i"
@@ -29,23 +30,59 @@
ACE_RCSID(tao, varout, "$Id$")
-template<class T> void
-TAO_Object_Field_T<T>::_downcast (CORBA_Object* base_ptr,
- CORBA_Environment &ACE_TRY_ENV)
+template<class T, class T_var>
+TAO_Object_Field_T<T,T_var>::
+ TAO_Object_Field_T (const TAO_Object_Manager<T,T_var> & rhs)
+ : ptr_ (T::_duplicate (rhs.in ()))
+{
+}
+
+template<class T, class T_var> TAO_Object_Field_T<T,T_var>&
+TAO_Object_Field_T<T,T_var>::
+ operator= (const TAO_Object_Manager<T,T_var> & rhs)
+{
+ T* tmp = T::_duplicate (rhs.in ());
+ CORBA::release (this->ptr_);
+ this->ptr_ = tmp;
+
+ return *this;
+}
+
+template<class T, class T_var>
+TAO_Object_Field_T<T,T_var>::
+ TAO_Object_Field_T (const T_var & rhs)
+ : ptr_ (T::_duplicate (rhs.in ()))
+{
+}
+
+template<class T, class T_var> TAO_Object_Field_T<T,T_var>&
+TAO_Object_Field_T<T,T_var>::
+ operator= (const T_var & rhs)
+{
+ T* tmp = T::_duplicate (rhs.in ());
+ CORBA::release (this->ptr_);
+ this->ptr_ = tmp;
+
+ return *this;
+}
+
+template<class T, class T_var> void
+TAO_Object_Field_T<T,T_var>::_downcast (CORBA_Object* base_ptr,
+ CORBA_Environment &ACE_TRY_ENV)
{
CORBA::release (this->ptr_);
this->ptr_ = 0;
this->ptr_ = T::_narrow (base_ptr, ACE_TRY_ENV);
}
-template<class T> CORBA_Object*
-TAO_Object_Field_T<T>::_upcast (void)
+template<class T, class T_var> CORBA_Object*
+TAO_Object_Field_T<T,T_var>::_upcast (void)
{
return this->ptr_;
}
-template<class T> void
-TAO_Object_Field_T<T>::_release (void)
+template<class T, class T_var> void
+TAO_Object_Field_T<T,T_var>::_release (void)
{
CORBA::release (this->ptr_);
this->ptr_ = 0;
diff --git a/TAO/tao/varout.h b/TAO/tao/varout.h
index 16ed5d2af77..aa053598ef4 100644
--- a/TAO/tao/varout.h
+++ b/TAO/tao/varout.h
@@ -22,7 +22,9 @@
#include "tao/Object.h"
-template <class T>
+template<class T, class T_var> class TAO_Object_Manager;
+
+template <class T, class T_var>
class TAO_Object_Field_T : public TAO_Object_Field
{
// = TITLE
@@ -45,18 +47,30 @@ public:
// constructor from a T *, assumes ownership of <object> i.e. it
// *will* release it.
- TAO_Object_Field_T (const TAO_Object_Field_T<T> &);
+ TAO_Object_Field_T (const T_var &);
+ // constructor from a var
+
+ TAO_Object_Field_T (const TAO_Object_Field_T<T,T_var> &);
// copy constructor
+ TAO_Object_Field_T (const TAO_Object_Manager<T,T_var> &);
+ // constructor from an Object_Manager (sequence var-like class)
+
virtual ~TAO_Object_Field_T (void);
// destructor
- TAO_Object_Field_T<T> &operator= (T *object);
+ TAO_Object_Field_T<T,T_var> &operator= (T *object);
// Assignment from a T*, it assumes ownership of <object>.
- TAO_Object_Field_T<T> &operator= (const TAO_Object_Field_T<T> &);
+ TAO_Object_Field_T<T,T_var> &operator= (const T_var& var);
+ // Assignment from a T_var, make a duplicate of the object
+
+ TAO_Object_Field_T<T,T_var> &operator= (const TAO_Object_Field_T<T,T_var> &);
// Assignment operator, in duplicates the underlying objects.
+ TAO_Object_Field_T<T,T_var> &operator= (const TAO_Object_Manager<T,T_var>&);
+ // Assignment from a T_var, make a duplicate of the object
+
T *operator-> (void) const;
// smart pointer (const)
@@ -96,618 +110,6 @@ private:
T *ptr_;
};
-#if 0
-// ****************************************************************
-// The following classes are experimental, some of them do *not*
-// compile and produce errors in compilers that check templates before
-// instantiation time. In the future we may use them to implement
-// several classes generated by IDL compiler, possibly reducing the
-// complexity of the compiler.
-// ****************************************************************
-
-template <class T>
-class TAO_Fixed_var
- // = TITLE
- // template<class T> TAO_Fixed_var
- //
- // = DESCRIPTION
- // Provides a parametrized version of the _var class for fixed
- // length data structs and unions.
-{
-public:
- // = Operations
-
- TAO_Fixed_var (void);
- // default constructor
-
- TAO_Fixed_var (T *);
- // constructor from a pointer to T
-
- TAO_Fixed_var (const TAO_Fixed_var<T> &);
- // copy constructor
-
- ~TAO_Fixed_var (void);
- // destructor
-
- TAO_Fixed_var<T> &operator= (T *);
- // assignment from a pointer to T
-
- TAO_Fixed_var<T> &operator= (const TAO_Fixed_var<T> &);
- // assignment from a TAO_Fixed_var
-
- T *operator-> (void);
- // smart pointer
-
- const T *operator-> (void) const;
- // smart pointer (const)
-
- operator const T *&() const;
- // cast operator
-
- operator T *&();
- // cast operator
-
- // = Operations for parameter passing modes.
-
- const T &in (void);
- // for in type parameter
-
- T &inout (void);
- // for inout type parameter
-
- T &out (void);
- // for out parameter
-
- T _retn (void);
- // for return type
-
-private:
- T *ptr_;
- // instance
-};
-
-template <class T>
-class TAO_Variable_var
- // = TITLE
- // template<class T> TAO_Variable_var
- //
- // = DESCRIPTION
- // Provides a parametrized version of the _var class for Variable
- // length data structs and unions.
-{
-public:
- // = Operations
-
- TAO_Variable_var (void);
- // default constructor
-
- TAO_Variable_var (T *);
- // constructor from a pointer to T
-
- TAO_Variable_var (const TAO_Variable_var<T> &);
- // copy constructor
-
- ~TAO_Variable_var (void);
- // destructor
-
- TAO_Variable_var<T> &operator= (T *);
- // assignment from a pointer to T
-
- TAO_Variable_var<T> &operator= (const TAO_Variable_var<T> &);
- // assignment from a TAO_Variable_var
-
- T *operator-> (void);
- // smart pointer
-
- const T *operator-> (void) const;
- // smart pointer (const)
-
- operator const T *&() const;
- // cast operator
-
- operator T *&();
- // cast operator
-
- // = operations for parameter passing modes
-
- const T &in (void);
- // for in type parameter
-
- T &inout (void);
- // for inout type parameter
-
- T *&out (void);
- // for out parameter
-
- T *_retn (void);
- // for return type
-
-private:
- T *ptr_;
-};
-
-template <class T>
-class TAO_Sequence_var
- // = TITLE
- // template<class T> TAO_Sequence_var
- //
- // = DESCRIPTION
- // Provides a parametrized version of the _var class for Sequence
- // data type. CORBA sequences are considered to always be
- // variable length.
-{
-public:
- // = Operations
-
- TAO_Sequence_var (void);
- // default constructor
-
- TAO_Sequence_var (T *);
- // constructor from a pointer to T
-
- TAO_Sequence_var (const TAO_Sequence_var &);
- // copy constructor
-
- ~TAO_Sequence_var (void);
- // destructor
-
- TAO_Sequence_var<T> &operator= (T *);
- // assignment from a pointer to T
-
- TAO_Sequence_var<T> &operator= (const TAO_Sequence_var &);
- // assignment from a TAO_Sequence_var
-
- T *operator-> (void);
- // smart pointer
-
- const T *operator-> (void) const;
- // smart pointer (const)
-
- operator const T *&() const;
- // cast operator
-
- operator T *&();
- // cast operator
-
- // = additional operators for sequence
-
- T::ElemType &operator[] (CORBA::ULong);
- // operator [] that passes the argument to the [] operator of T
-
- // = operations for parameter passing modes
-
- const T &in (void);
- // for in type parameter
-
- T &inout (void);
- // for inout type parameter
-
- T *&out (void);
- // for out parameter
-
- T *_retn (void);
- // for return type
-
-private:
- T *ptr_;
- // seq instance
-};
-
-template <class T, class T_ptr>
-class TAO_Object_var
- // = TITLE
- // template<class T, class T_ptr> TAO_Object_var
- //
- // = DESCRIPTION
- // Provides a parametrized version of the _var class for obj
- // references.
-{
-public:
- // =Operations
-
- TAO_Object_var (void);
- // default constructor
-
- TAO_Object_var (T_ptr);
- // constructor from a pointer to T
-
- TAO_Object_var (const TAO_Object_var<T,T_ptr> &);
- // copy constructor
-
- ~TAO_Object_var (void);
- // destructor
-
- TAO_Object_var<T_ptr> &operator= (T_ptr);
- // assignment from a pointer to T
-
- TAO_Object_var<T_ptr> &operator= (const TAO_Object_var<T,T_ptr> &);
- // assignment from a TAO_Object_var
-
- T_ptr operator-> (void) const;
- // smart pointer (const)
-
- operator const T_ptr &() const;
- // cast operator
-
- operator T_ptr &();
- // cast operator
-
- // = operations for parameter passing modes
-
- const T_ptr &in (void);
- // for in type parameter
-
- T_ptr &inout (void);
- // for inout type parameter
-
- T_ptr &out (void);
- // for out parameter
-
- T_ptr _retn (void);
- // for return type
-
-private:
- T_ptr ptr_;
-};
-
-template <class T, class T_slice>
-class TAO_FixedArray_var
- // = TITLE
- // template<class T, class T_slice> TAO_FixedArray_var
- //
- // = DESCRIPTION
- // Provides a parametrized version of the _var class for obj
- // references.
-{
-public:
- // = Operations
-
- TAO_FixedArray_var (void);
- // default constructor
-
- TAO_FixedArray_var (T_slice *);
- // constructor from a pointer to T
-
- TAO_FixedArray_var (const TAO_FixedArray_var<T, T_slice> &);
- // copy constructor
-
- ~TAO_FixedArray_var (void);
- // destructor
-
- TAO_FixedArray_var<T, T_slice> &operator= (T_slice *);
- // assignment from a pointer to T
-
- TAO_FixedArray_var<T, T_slice> &operator= (const TAO_FixedArray_var<T, T_slice> &);
- // assignment from a TAO_FixedArray_var
-
- T_slice &operator[] (CORBA::ULong);
- // index
-
- const T_slice &operator[] (CORBA::ULong) const;
- // index
-
- operator const T_slice &() const;
- // cast operator
-
- operator T_slice &();
- // cast operator
-
- // = operations for parameter passing modes
-
- const T &in (void);
- // for in type parameter
-
- T &inout (void);
- // for inout type parameter
-
- T &out (void);
- // for out parameter
-
- T_slice *_retn (void);
- // for return type
-
-private:
- T_slice *ptr_;
-};
-
-template <class T, class T_slice>
-class TAO_VariableArray_var
- // = TITLE
- // template<class T, class T_slice> TAO_VariableArray_var
- //
- // = DESCRIPTION
- // Provides a parametrized version of the _var class for obj
- // references.
-{
-public:
- // = Operations
-
- TAO_VariableArray_var (void);
- // default constructor
-
- TAO_VariableArray_var (T_slice *);
- // constructor from a pointer to T
-
- TAO_VariableArray_var (const TAO_VariableArray_var<T, T_slice> &);
- // copy constructor
-
- ~TAO_VariableArray_var (void);
- // destructor
-
- TAO_VariableArray_var<T, T_slice> &operator= (T_slice *);
- // assignment from a pointer to T
-
- TAO_VariableArray_var<T, T_slice> &operator= (const TAO_VariableArray_var<T, T_slice> &);
- // assignment from a TAO_VariableArray_var
-
- T_slice &operator[] (CORBA::ULong);
- // index
-
- const T_slice &operator[] (CORBA::ULong) const;
- // index
-
- operator const T_slice &() const;
- // cast operator
-
- operator T_slice &();
- // cast operator
-
- // = operations for parameter passing modes
-
- const T &in (void);
- // for in type parameter
-
- T &inout (void);
- // for inout type parameter
-
- T_slice *&out (void);
- // for out parameter
-
- T_slice *_retn (void);
- // for return type
-
-private:
- T_slice *ptr_;
-};
-
-template <class T, class T_slice>
-class TAO_FixedArray_forany
- // = TITLE
- // template<class T, class T_slice> TAO_FixedArray_forany
- //
- // = DESCRIPTION
- // Provides a parametrized version of the _var class for obj
- // references.
-{
-public:
- // =Operations
-
- TAO_FixedArray_forany (void);
- // default constructor
-
- TAO_FixedArray_forany (T_slice *, CORBA::Boolean nocopy=0);
- // constructor from a pointer to T slice
-
- TAO_FixedArray_forany (const TAO_FixedArray_forany<T, T_slice> &);
- // copy constructor
-
- ~TAO_FixedArray_forany (void);
- // destructor
-
- TAO_FixedArray_forany<T, T_slice> &operator= (T_slice *);
- // assignment from a pointer to T
-
- TAO_FixedArray_forany<T, T_slice> &operator= (const TAO_FixedArray_forany<T, T_slice> &);
- // assignment from a TAO_FixedArray_forany
-
- T_slice &operator[] (CORBA::ULong);
- // index
-
- const T_slice &operator[] (CORBA::ULong) const;
- // index
-
- operator const T_slice &() const;
- // cast operator
-
- operator T_slice &();
- // cast operator
-
- // =operations for parameter passing modes
-
- const T &in (void);
- // for in type parameter
-
- T &inout (void);
- // for inout type parameter
-
- T &out (void);
- // for out parameter
-
- T_slice *_retn (void);
- // for return type
-
-private:
- T_slice *ptr_;
-};
-
-template <class T, class T_slice>
-class TAO_VariableArray_forany
- // = TITLE
- // template<class T, class T_slice> TAO_VariableArray_forany
- //
- // = DESCRIPTION
- // Provides a parametrized version of the _var class for obj
- // references.
-{
-public:
- // =Operations
-
- TAO_VariableArray_forany (void);
- // default constructor
-
- TAO_VariableArray_forany (T_slice *, CORBA::Boolean nocopy=0);
- // constructor from a pointer to T slice
-
- TAO_VariableArray_forany (const TAO_VariableArray_forany<T, T_slice> &);
- // copy constructor
-
- ~TAO_VariableArray_forany (void);
- // destructor
-
- TAO_VariableArray_forany<T, T_slice> &operator= (T_slice *);
- // assignment from a pointer to T
-
- TAO_VariableArray_forany<T, T_slice> &operator= (const TAO_VariableArray_forany<T, T_slice> &);
- // assignment from a TAO_VariableArray_forany
-
- T_slice &operator[] (CORBA::ULong);
- // index
-
- const T_slice &operator[] (CORBA::ULong) const;
- // index
-
- operator const T_slice &() const;
- // cast operator
-
- operator T_slice &();
- // cast operator
-
- // =operations for parameter passing modes
-
- const T &in (void);
- // for in type parameter
-
- T &inout (void);
- // for inout type parameter
-
- T_slice *&out (void);
- // for out parameter
-
- T_slice *_retn (void);
- // for return type
-
-private:
- T_slice *ptr_;
-};
-
-template <class T, class T_var>
-class TAO_Variable_out
- // = TITLE
- // TAO_Variable_out
- //
- // = Description
- // _out class definition for variable size struct/union.
-{
-public:
- TAO_Variable_out (T *&);
- // constructor
-
- TAO_Variable_out (T_var &);
- // constructor
-
- TAO_Variable_out (TAO_Variable_out <T,T_var> &);
- // copy constructor
-
- TAO_Variable_out<T,T_var> &operator= (TAO_Variable_out<T,T_var> &);
- // assignment operator
-
- TAO_Variable_out<T,T_var> &operator= (T *);
- // assignment
-
- operator T *&();
- // cast
-
- T *&ptr (void);
- // ptr method, returns a pointer to class T
-
- T *operator-> (void);
- // arrow operator (smart pointer)
-
-private:
- T *&ptr_;
-};
-
-template <class T, class T_var>
-class TAO_Sequence_out
- // = TITLE
- // TAO_Sequence_out
- //
- // = Description
- // _out class definition for Sequence
-{
-public:
- TAO_Sequence_out (T *&);
- // constructor
-
- TAO_Sequence_out (T_var &);
- // constructor
-
- TAO_Sequence_out (TAO_Sequence_out <T,T_var> &);
- // copy constructor
-
- TAO_Sequence_out<T,T_var> &operator= (TAO_Sequence_out<T,T_var> &);
- // assignment operator
-
- TAO_Sequence_out<T,T_var> &operator= (T *);
- // assignment
-
- operator T *&();
- // cast
-
- T *&ptr (void);
- // ptr method, returns a pointer to class T
-
- T *operator-> (void);
- // arrow operator (smart pointer)
-
- T::ElemType operator[] (CORBA::ULong);
- // return the element at index i
-
-private:
- T *&ptr_;
-};
-
-template <class T_ptr, class T_var>
-class TAO_Object_out
-{
- // = TITLE
- // TAO_Object_out
- //
- // = Description
- // _out class definition for Object
-public:
- TAO_Object_out (T_ptr &);
- // constructor
-
- TAO_Object_out (T_var &);
- // constructor
-
- TAO_Object_out (TAO_Object_out <T_ptr,T_var> &);
- // copy constructor
-
- TAO_Object_out<T_ptr,T_var> &operator= (TAO_Object_out<T_ptr,T_var> &);
- // assignment operator
-
- TAO_Object_out<T_ptr,T_var> &operator= (const T_var &);
- // assignment operator
-
- TAO_Object_out<T_ptr,T_var> &operator= (T_ptr);
- // assignment
-
- operator T_ptr &();
- // cast
-
- T_ptr &ptr (void);
- // ptr method, returns a pointer to class T
-
- T_ptr operator-> (void);
- // arrow operator (smart pointer)
-
-private:
- T_ptr &ptr_;
-};
-#endif /* 0 */
-
#if defined (__ACE_INLINE__)
#include "tao/varout.i"
#endif /* __ACE_INLINE__ */
diff --git a/TAO/tao/varout.i b/TAO/tao/varout.i
index 6e2e92d5f47..c506733d29f 100644
--- a/TAO/tao/varout.i
+++ b/TAO/tao/varout.i
@@ -2,41 +2,43 @@
// $Id$
//
-template<class T> ACE_INLINE
-TAO_Object_Field_T<T>::TAO_Object_Field_T (void)
+template<class T, class T_var> ACE_INLINE
+TAO_Object_Field_T<T,T_var>::TAO_Object_Field_T (void)
: ptr_ (0)
{
}
-template<class T> ACE_INLINE
-TAO_Object_Field_T<T>::TAO_Object_Field_T (T* object)
+template<class T, class T_var> ACE_INLINE
+TAO_Object_Field_T<T,T_var>::TAO_Object_Field_T (T* object)
: ptr_ (object)
{
}
-template<class T> ACE_INLINE
-TAO_Object_Field_T<T>::TAO_Object_Field_T (const TAO_Object_Field_T<T>& rhs)
+template<class T, class T_var> ACE_INLINE
+TAO_Object_Field_T<T,T_var>::
+ TAO_Object_Field_T (const TAO_Object_Field_T<T,T_var>& rhs)
: TAO_Object_Field (rhs), // keep HP/aCC happy
ptr_ (T::_duplicate (rhs.ptr_))
{
}
-template<class T> ACE_INLINE
-TAO_Object_Field_T<T>::~TAO_Object_Field_T (void)
+template<class T, class T_var> ACE_INLINE
+TAO_Object_Field_T<T,T_var>::~TAO_Object_Field_T (void)
{
CORBA::release (this->ptr_);
}
-template<class T> ACE_INLINE TAO_Object_Field_T<T> &
-TAO_Object_Field_T<T>::operator= (T* object)
+template<class T, class T_var> ACE_INLINE TAO_Object_Field_T<T,T_var> &
+TAO_Object_Field_T<T,T_var>::operator= (T* object)
{
CORBA::release (this->ptr_);
this->ptr_ = object;
return *this;
}
-template<class T> ACE_INLINE TAO_Object_Field_T<T> &
-TAO_Object_Field_T<T>::operator= (const TAO_Object_Field_T<T> &rhs)
+template<class T, class T_var> ACE_INLINE TAO_Object_Field_T<T,T_var> &
+TAO_Object_Field_T<T,T_var>::
+ operator= (const TAO_Object_Field_T<T,T_var> &rhs)
{
if (this != &rhs)
{
@@ -46,52 +48,52 @@ TAO_Object_Field_T<T>::operator= (const TAO_Object_Field_T<T> &rhs)
return *this;
}
-template<class T> ACE_INLINE T*
-TAO_Object_Field_T<T>::ptr (void) const
+template<class T, class T_var> ACE_INLINE T*
+TAO_Object_Field_T<T,T_var>::ptr (void) const
{
return this->ptr_;
}
-template<class T> ACE_INLINE
-TAO_Object_Field_T<T>::operator T* const &() const
+template<class T, class T_var> ACE_INLINE
+TAO_Object_Field_T<T,T_var>::operator T* const &() const
{
return this->ptr_;
}
-template<class T> ACE_INLINE
-TAO_Object_Field_T<T>::operator T* &()
+template<class T, class T_var> ACE_INLINE
+TAO_Object_Field_T<T,T_var>::operator T* &()
{
return this->ptr_;
}
-template<class T> ACE_INLINE T*
-TAO_Object_Field_T<T>::operator-> (void) const
+template<class T, class T_var> ACE_INLINE T*
+TAO_Object_Field_T<T,T_var>::operator-> (void) const
{
return this->ptr_;
}
-template<class T> ACE_INLINE T*
-TAO_Object_Field_T<T>::in (void) const
+template<class T, class T_var> ACE_INLINE T*
+TAO_Object_Field_T<T,T_var>::in (void) const
{
return this->ptr_;
}
-template<class T> ACE_INLINE T* &
-TAO_Object_Field_T<T>::inout (void)
+template<class T, class T_var> ACE_INLINE T* &
+TAO_Object_Field_T<T,T_var>::inout (void)
{
return this->ptr_;
}
-template<class T> ACE_INLINE T* &
-TAO_Object_Field_T<T>::out (void)
+template<class T, class T_var> ACE_INLINE T* &
+TAO_Object_Field_T<T,T_var>::out (void)
{
CORBA::release (this->ptr_);
this->ptr_ = 0;
return this->ptr_;
}
-template<class T> ACE_INLINE T*
-TAO_Object_Field_T<T>::_retn (void)
+template<class T, class T_var> ACE_INLINE T*
+TAO_Object_Field_T<T,T_var>::_retn (void)
{
// yield ownership of managed obj reference
T* val = this->ptr_;