From 1645d5e280d327a9d3a237a10660c44566b2a1ac Mon Sep 17 00:00:00 2001 From: vishal Date: Wed, 12 May 1999 02:51:27 +0000 Subject: *** empty log message *** --- TAO/ChangeLog-99c | 15 +++ TAO/tao/CORBA.pidl | 6 ++ TAO/tao/Makefile | 3 +- TAO/tao/ObjectIDList.cpp | 155 +++++++++++++++++++++++++++++ TAO/tao/ObjectIDList.h | 145 ++++++++++++++++++++++++++++ TAO/tao/ObjectIDList.i | 247 +++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 570 insertions(+), 1 deletion(-) create mode 100644 TAO/tao/ObjectIDList.cpp create mode 100644 TAO/tao/ObjectIDList.h create mode 100644 TAO/tao/ObjectIDList.i diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c index 394addeeb3c..14a95e41e3f 100644 --- a/TAO/ChangeLog-99c +++ b/TAO/ChangeLog-99c @@ -1,3 +1,18 @@ +Tue May 11 21:46:52 1999 Vishal Kachroo + + Added a new type ObjectIDList to the ORB interface. This is + required by the list_initital_references (). Handcrafted + the IDL generated files into the following files : + * tao/ObjectIDList.cpp + * tao/ObjectIDList.h + * tao/ObjectIDList.i + + Included the declaration of ObjectIDList in the CORBA_ORB class. + * tao/ORB.h + + Included ObjectIDList into the makefile. + * tao/Makefile + Tue May 11 21:46:29 1999 Jeff Parsons * tao/DomainC.h: diff --git a/TAO/tao/CORBA.pidl b/TAO/tao/CORBA.pidl index 5ea96839ab6..c9264902975 100644 --- a/TAO/tao/CORBA.pidl +++ b/TAO/tao/CORBA.pidl @@ -23,6 +23,11 @@ module CORBA SYSTEM_EXCEPTION }; + typedef sequence RequestSeq; + + typedef string ObjectId; + typedef sequence ObjectIdList; + typedef unsigned short ServiceType; typedef unsigned long ServiceOption; typedef unsigned long ServiceDetailType; @@ -38,6 +43,7 @@ module CORBA sequence service_options; sequence service_details; }; + }; #pragma prefix "" diff --git a/TAO/tao/Makefile b/TAO/tao/Makefile index d668af8845c..39b707c5fe5 100644 --- a/TAO/tao/Makefile +++ b/TAO/tao/Makefile @@ -122,7 +122,8 @@ ORB_CORE_FILES += \ Context \ Request \ Services \ - NVList + NVList \ + ObjectIDList DYNAMIC_ANY_FILES += \ DynAnyC \ diff --git a/TAO/tao/ObjectIDList.cpp b/TAO/tao/ObjectIDList.cpp new file mode 100644 index 00000000000..1426d77d53d --- /dev/null +++ b/TAO/tao/ObjectIDList.cpp @@ -0,0 +1,155 @@ +/* -*- C++ -*- */ +// $Id $ +// ****** Code generated by the The ACE ORB (TAO) IDL Compiler ******* +// TAO and the TAO IDL Compiler have been developed by the Center for +// Distributed Object Computing at Washington University, St. Louis. +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html +// +// Hand Modified by Vishal Kachroo +// + +#include "ObjectIDList.h" + +#if !defined (__ACE_INLINE__) +#include "ObjectIDList.i" +#endif /* !defined INLINE */ + +#if !defined (_CORBA_ORB_OBJECTIDLIST_CS_) +#define _CORBA_ORB_OBJECTIDLIST_CS_ + +// ************************************************************* +// CORBA::ORB::ObjectIdList +// ************************************************************* + +CORBA::ORB::ObjectIdList::ObjectIdList (void) +{} +CORBA::ORB::ObjectIdList::ObjectIdList (CORBA::ULong max) // uses max size + : +#if !defined (TAO_USE_SEQUENCE_TEMPLATES) + TAO_Unbounded_String_Sequence +#else /* TAO_USE_SEQUENCE_TEMPLATES */ + TAO_Unbounded_String_Sequence +#endif /* !TAO_USE_SEQUENCE_TEMPLATES */ + (max) +{} +CORBA::ORB::ObjectIdList::ObjectIdList (CORBA::ULong max, CORBA::ULong length, char * *buffer, CORBA::Boolean release) + : +#if !defined (TAO_USE_SEQUENCE_TEMPLATES) + TAO_Unbounded_String_Sequence +#else /* TAO_USE_SEQUENCE_TEMPLATES */ + TAO_Unbounded_String_Sequence +#endif /* !TAO_USE_SEQUENCE_TEMPLATES */ + (max, length, buffer, release) +{} +CORBA::ORB::ObjectIdList::ObjectIdList (const ObjectIdList &seq) // copy ctor + : +#if !defined (TAO_USE_SEQUENCE_TEMPLATES) + TAO_Unbounded_String_Sequence +#else /* TAO_USE_SEQUENCE_TEMPLATES */ + TAO_Unbounded_String_Sequence +#endif /* !TAO_USE_SEQUENCE_TEMPLATES */ + (seq) +{} +CORBA::ORB::ObjectIdList::~ObjectIdList (void) // dtor +{} + + +#endif /* end #if !defined */ + +static const CORBA::Long _oc_CORBA_ORB_ObjectIdList[] = +{ + TAO_ENCAP_BYTE_ORDER, // byte order + 39, ACE_NTOHL (0x49444c3a), ACE_NTOHL (0x6f6d672e), ACE_NTOHL (0x6f72672f), ACE_NTOHL (0x434f5242), ACE_NTOHL (0x412f4f52), ACE_NTOHL (0x422f4f62), ACE_NTOHL (0x6a656374), ACE_NTOHL (0x49644c69), ACE_NTOHL (0x73743a31), ACE_NTOHL (0x2e300000), // repository ID = IDL:omg.org/CORBA/ORB/ObjectIdList:1.0 + 13, ACE_NTOHL (0x4f626a65), ACE_NTOHL (0x63744964), ACE_NTOHL (0x4c697374), ACE_NTOHL (0x0), // name = ObjectIdList + CORBA::tk_sequence, // typecode kind + 84, // encapsulation length + TAO_ENCAP_BYTE_ORDER, // byte order + CORBA::tk_alias, // typecode kind for typedefs + 68, // encapsulation length + TAO_ENCAP_BYTE_ORDER, // byte order + 35, ACE_NTOHL (0x49444c3a), ACE_NTOHL (0x6f6d672e), ACE_NTOHL (0x6f72672f), ACE_NTOHL (0x434f5242), ACE_NTOHL (0x412f4f52), ACE_NTOHL (0x422f4f62), ACE_NTOHL (0x6a656374), ACE_NTOHL (0x49643a31), ACE_NTOHL (0x2e300000), // repository ID = IDL:omg.org/CORBA/ORB/ObjectId:1.0 + 9, ACE_NTOHL (0x4f626a65), ACE_NTOHL (0x63744964), ACE_NTOHL (0x0), // name = ObjectId + CORBA::tk_string, + 0, // string length + 0, +}; +static CORBA::TypeCode _tc_TAO_tc_CORBA_ORB_ObjectIdList (CORBA::tk_alias, sizeof (_oc_CORBA_ORB_ObjectIdList), (char *) &_oc_CORBA_ORB_ObjectIdList, 0, sizeof (CORBA::ORB::ObjectIdList)); +CORBA::TypeCode_ptr CORBA::ORB::_tc_ObjectIdList = &_tc_TAO_tc_CORBA_ORB_ObjectIdList; + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) + template class TAO_Object_Field_T; +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +# pragma instantiate TAO_Object_Field_T +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ + +void operator<<= ( + CORBA::Any &_tao_any, + const CORBA::ORB::ObjectIdList &_tao_elem + ) // copying +{ + CORBA::ORB::ObjectIdList *_tao_any_val; + ACE_NEW (_tao_any_val, CORBA::ORB::ObjectIdList (_tao_elem)); + if (!_tao_any_val) return; + ACE_TRY_NEW_ENV + { + _tao_any.replace (CORBA::ORB::_tc_ObjectIdList, _tao_any_val, 1, ACE_TRY_ENV); // copy the value + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + delete _tao_any_val; + } + ACE_ENDTRY; +} + +void operator<<= (CORBA::Any &_tao_any, CORBA::ORB::ObjectIdList *_tao_elem) // non copying +{ + ACE_TRY_NEW_ENV + { + _tao_any.replace (CORBA::ORB::_tc_ObjectIdList, _tao_elem, 0, ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY {} + ACE_ENDTRY; +} + +CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, CORBA::ORB::ObjectIdList *&_tao_elem) +{ + ACE_TRY_NEW_ENV + { + CORBA::TypeCode_var type = _tao_any.type (); + if (!type->equal (CORBA::ORB::_tc_ObjectIdList, ACE_TRY_ENV)) return 0; // not equal + ACE_TRY_CHECK; + if (_tao_any.any_owns_data ()) + { + _tao_elem = (CORBA::ORB::ObjectIdList *)_tao_any.value (); + return 1; + } + else + { + ACE_NEW_RETURN (_tao_elem, CORBA::ORB::ObjectIdList, 0); + TAO_InputCDR stream (_tao_any._tao_get_cdr ()); + if (stream.decode (CORBA::ORB::_tc_ObjectIdList, _tao_elem, 0, ACE_TRY_ENV) + == CORBA::TypeCode::TRAVERSE_CONTINUE) + { + ((CORBA::Any *)&_tao_any)->replace (CORBA::ORB::_tc_ObjectIdList, _tao_elem, 1, ACE_TRY_ENV); + ACE_TRY_CHECK; + return 1; + } + else + { + delete _tao_elem; + } + } + } + ACE_CATCHANY + { + delete _tao_elem; + return 0; + } + ACE_ENDTRY; + return 0; +} + diff --git a/TAO/tao/ObjectIDList.h b/TAO/tao/ObjectIDList.h new file mode 100644 index 00000000000..efcf16a5d09 --- /dev/null +++ b/TAO/tao/ObjectIDList.h @@ -0,0 +1,145 @@ +/* -*- C++ -*- */ +// $Id $ +// ****** Code generated by the The ACE ORB (TAO) IDL Compiler ******* +// TAO and the TAO IDL Compiler have been developed by the Center for +// Distributed Object Computing at Washington University, St. Louis. +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html +// +// Hand Modified by Vishal Kachroo +// + +#ifndef OBJECTIDLIST_H_ +#define OBJECTIDLIST_H_ + +#include "tao/corba.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + + +#if defined (TAO_EXPORT_MACRO) +#undef TAO_EXPORT_MACRO +#endif +#define TAO_EXPORT_MACRO +#if defined(_MSC_VER) +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + + +#if !defined (_CORBA_ORB_OBJECTIDLIST_CH_) +#define _CORBA_ORB_OBJECTIDLIST_CH_ + +// ************************************************************* +// ObjectIdList +// ************************************************************* + +class CORBA_ORB::ObjectIdList : public +#if !defined (TAO_USE_SEQUENCE_TEMPLATES) +TAO_Unbounded_String_Sequence +#else /* TAO_USE_SEQUENCE_TEMPLATES */ +TAO_Unbounded_String_Sequence +#endif /* !TAO_USE_SEQUENCE_TEMPLATES */ +{ +public: + ObjectIdList (void); // default ctor + ObjectIdList (CORBA::ULong max); // uses max size + ObjectIdList ( + CORBA::ULong max, + CORBA::ULong length, + char * *buffer, + CORBA::Boolean release=0 + ); + ObjectIdList (const CORBA_ORB::ObjectIdList &); // copy ctor + ~ObjectIdList (void); // dtor +}; + +typedef CORBA_ORB::ObjectIdList *CORBA_ORB::ObjectIdList_ptr; + +#endif /* end #if !defined */ + +#if !defined (_CORBA_ORB_OBJECTIDLIST___VAR_CH_) +#define _CORBA_ORB_OBJECTIDLIST___VAR_CH_ + +// ************************************************************* +// class CORBA::ORB::ObjectIdList_var +// ************************************************************* + +class CORBA_ORB::ObjectIdList_var +{ +public: + ObjectIdList_var (void); // default constructor + ObjectIdList_var (ObjectIdList *); + ObjectIdList_var (const ObjectIdList_var &); // copy constructor + ~ObjectIdList_var (void); // destructor + + ObjectIdList_var &operator= (ObjectIdList *); + ObjectIdList_var &operator= (const ObjectIdList_var &); + ObjectIdList *operator-> (void); + const ObjectIdList *operator-> (void) const; + + operator const ObjectIdList &() const; + operator ObjectIdList &(); + operator ObjectIdList &() const; + TAO_SeqElem_String_Manager operator[] (CORBA::ULong index); + // in, inout, out, _retn + const ObjectIdList &in (void) const; + ObjectIdList &inout (void); + ObjectIdList *&out (void); + ObjectIdList *_retn (void); + ObjectIdList *ptr (void) const; + +private: + ObjectIdList *ptr_; +}; + +#endif /* end #if !defined */ + + +#if !defined (_CORBA_ORB_OBJECTIDLIST___OUT_CH_) +#define _CORBA_ORB_OBJECTIDLIST___OUT_CH_ + +class CORBA_ORB::ObjectIdList_out +{ +public: + ObjectIdList_out (ObjectIdList *&); + ObjectIdList_out (ObjectIdList_var &); + ObjectIdList_out (const ObjectIdList_out &); + ObjectIdList_out &operator= (const ObjectIdList_out &); + ObjectIdList_out &operator= (ObjectIdList *); + operator ObjectIdList *&(); + ObjectIdList *&ptr (void); + ObjectIdList *operator-> (void); + TAO_SeqElem_String_Manager operator[] (CORBA::ULong index); + +private: + ObjectIdList *&ptr_; + // assignment from T_var not allowed + void operator= (const CORBA_ORB::ObjectIdList_var &); +}; + +#endif /* end #if !defined */ + +static CORBA::TypeCode_ptr _tc_ObjectIdList; + + +#ifndef __ACE_INLINE__ + +CORBA::Boolean operator<< (TAO_OutputCDR &, const CORBA::ORB::ObjectIdList &); // +CORBA::Boolean operator>> (TAO_InputCDR &, CORBA::ORB::ObjectIdList &); + +#endif /* __ACE_INLINE__ */ + + +#if defined (__ACE_INLINE__) +#include "ObjectIDList.i" +#endif /* defined INLINE */ + +#if defined(_MSC_VER) +#pragma warning(default:4250) +#endif /* _MSC_VER */ + +#endif /* ifndef */ + diff --git a/TAO/tao/ObjectIDList.i b/TAO/tao/ObjectIDList.i new file mode 100644 index 00000000000..7b29d9ea628 --- /dev/null +++ b/TAO/tao/ObjectIDList.i @@ -0,0 +1,247 @@ +/* -*- C++ -*- */ +// $Id $ +// ****** Code generated by the The ACE ORB (TAO) IDL Compiler ******* +// TAO and the TAO IDL Compiler have been developed by the Center for +// Distributed Object Computing at Washington University, St. Louis. +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html +// +// Hand modified by Vishal Kachroo +// + +#if !defined (_CORBA_ORB_OBJECTIDLIST_I_) +#define _CORBA_ORB_OBJECTIDLIST_I_ + +// ************************************************************* +// Inline operations for class CORBA::ORB::ObjectIdList_var +// ************************************************************* + +ACE_INLINE +CORBA::ORB::ObjectIdList_var::ObjectIdList_var (void) // default constructor + : ptr_ (0) +{} + +ACE_INLINE +CORBA::ORB::ObjectIdList_var::ObjectIdList_var (CORBA::ORB::ObjectIdList *p) + : ptr_ (p) +{} + +ACE_INLINE +CORBA::ORB::ObjectIdList_var::ObjectIdList_var (const CORBA::ORB::ObjectIdList_var &p) // copy constructor +{ + if (p.ptr_) + this->ptr_ = new CORBA::ORB::ObjectIdList(*p.ptr_); + else + this->ptr_ = 0; +} + +ACE_INLINE +CORBA::ORB::ObjectIdList_var::~ObjectIdList_var (void) // destructor +{ + delete this->ptr_; +} + +ACE_INLINE CORBA::ORB::ObjectIdList_var & +CORBA::ORB::ObjectIdList_var::operator= (CORBA::ORB::ObjectIdList *p) +{ + delete this->ptr_; + this->ptr_ = p; + return *this; +} + +ACE_INLINE CORBA::ORB::ObjectIdList_var & +CORBA::ORB::ObjectIdList_var::operator= (const CORBA::ORB::ObjectIdList_var &p) // deep copy +{ + if (this != &p) + { + delete this->ptr_; + this->ptr_ = new CORBA::ORB::ObjectIdList (*p.ptr_); + } + return *this; +} + +ACE_INLINE const CORBA::ORB::ObjectIdList * +CORBA::ORB::ObjectIdList_var::operator-> (void) const +{ + return this->ptr_; +} + +ACE_INLINE CORBA::ORB::ObjectIdList * +CORBA::ORB::ObjectIdList_var::operator-> (void) +{ + return this->ptr_; +} + +ACE_INLINE +CORBA::ORB::ObjectIdList_var::operator const CORBA::ORB::ObjectIdList &() const // cast +{ + return *this->ptr_; +} + +ACE_INLINE +CORBA::ORB::ObjectIdList_var::operator CORBA::ORB::ObjectIdList &() // cast +{ + return *this->ptr_; +} + +ACE_INLINE +CORBA::ORB::ObjectIdList_var::operator CORBA::ORB::ObjectIdList &() const// cast +{ + return *this->ptr_; +} + +ACE_INLINE TAO_SeqElem_String_Manager +CORBA::ORB::ObjectIdList_var::operator[] (CORBA::ULong index) +{ + return this->ptr_->operator[] (index); +} + +ACE_INLINE const CORBA::ORB::ObjectIdList & +CORBA::ORB::ObjectIdList_var::in (void) const +{ + return *this->ptr_; +} + +ACE_INLINE CORBA::ORB::ObjectIdList & +CORBA::ORB::ObjectIdList_var::inout (void) +{ + return *this->ptr_; +} + +// mapping for variable size +ACE_INLINE CORBA::ORB::ObjectIdList *& +CORBA::ORB::ObjectIdList_var::out (void) +{ + delete this->ptr_; + this->ptr_ = 0; + return this->ptr_; +} + +ACE_INLINE CORBA::ORB::ObjectIdList * +CORBA::ORB::ObjectIdList_var::_retn (void) +{ + CORBA::ORB::ObjectIdList *tmp = this->ptr_; + this->ptr_ = 0; + return tmp; +} + +ACE_INLINE CORBA::ORB::ObjectIdList * +CORBA::ORB::ObjectIdList_var::ptr (void) const +{ + return this->ptr_; +} + +// ************************************************************* +// Inline operations for class CORBA::ORB::ObjectIdList_out +// ************************************************************* + +ACE_INLINE +CORBA::ORB::ObjectIdList_out::ObjectIdList_out (CORBA::ORB::ObjectIdList *&p) + : ptr_ (p) +{ + this->ptr_ = 0; +} + +ACE_INLINE +CORBA::ORB::ObjectIdList_out::ObjectIdList_out (CORBA::ORB::ObjectIdList_var &p) // constructor from _var + : ptr_ (p.out ()) +{ + delete this->ptr_; + this->ptr_ = 0; +} + +ACE_INLINE +CORBA::ORB::ObjectIdList_out::ObjectIdList_out (const CORBA::ORB::ObjectIdList_out &p) // copy constructor + : ptr_ (ACE_const_cast (CORBA::ORB::ObjectIdList_out&,p).ptr_) +{} + +ACE_INLINE CORBA::ORB::ObjectIdList_out & +CORBA::ORB::ObjectIdList_out::operator= (const CORBA::ORB::ObjectIdList_out &p) +{ + this->ptr_ = ACE_const_cast (CORBA::ORB::ObjectIdList_out&,p).ptr_; + return *this; +} + +ACE_INLINE CORBA::ORB::ObjectIdList_out & +CORBA::ORB::ObjectIdList_out::operator= (CORBA::ORB::ObjectIdList *p) +{ + this->ptr_ = p; + return *this; +} + +ACE_INLINE +CORBA::ORB::ObjectIdList_out::operator CORBA::ORB::ObjectIdList *&() // cast +{ + return this->ptr_; +} + +ACE_INLINE CORBA::ORB::ObjectIdList *& +CORBA::ORB::ObjectIdList_out::ptr (void) // ptr +{ + return this->ptr_; +} + +ACE_INLINE CORBA::ORB::ObjectIdList * +CORBA::ORB::ObjectIdList_out::operator-> (void) +{ + return this->ptr_; +} + +ACE_INLINE TAO_SeqElem_String_Manager +CORBA::ORB::ObjectIdList_out::operator[] (CORBA::ULong index) +{ + return this->ptr_->operator[] (index); +} + + +#endif /* end #if !defined */ + +ACE_INLINE CORBA::Boolean +operator<< ( + TAO_OutputCDR &, + const CORBA::ORB_ptr + ); +ACE_INLINE CORBA::Boolean +operator>> ( + TAO_InputCDR &, + CORBA::ORB_ptr & + ); + +ACE_INLINE CORBA::Boolean operator<< ( + TAO_OutputCDR &strm, + const CORBA::ORB::ObjectIdList &_tao_sequence + ) +{ + if (strm << _tao_sequence.length ()) + { + // encode all elements + CORBA::Boolean _tao_marshal_flag = 1; + for (CORBA::ULong i = 0; i < _tao_sequence.length () && _tao_marshal_flag; i++) + _tao_marshal_flag = (strm << _tao_sequence[i].in ()); + return _tao_marshal_flag; + } + return 0; // error +} + +ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &strm, CORBA::ORB::ObjectIdList &_tao_sequence) +{ + CORBA::ULong _tao_seq_len; + if (strm >> _tao_seq_len) + { + // set the length of the sequence + _tao_sequence.length (_tao_seq_len); + // retrieve all the elements + CORBA::Boolean _tao_marshal_flag = 1; + for (CORBA::ULong i = 0; i < _tao_sequence.length () && _tao_marshal_flag; i++) + _tao_marshal_flag = (strm >> _tao_sequence[i].out ()); + return _tao_marshal_flag; + } + return 0; // error +} + + + + + + -- cgit v1.2.1