diff options
author | bala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-08-19 21:31:46 +0000 |
---|---|---|
committer | bala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-08-19 21:31:46 +0000 |
commit | 2fa040dcea9994006e3e91972414bfb21e293d57 (patch) | |
tree | 34d0799fa0af40193fbac5d26f888c25cc805085 /TAO/tao/BoundsC.cpp | |
parent | 4046f366464dcbd7e525794cdfb816d014d3af0b (diff) | |
download | ATCD-2fa040dcea9994006e3e91972414bfb21e293d57.tar.gz |
Added support for CORBA::Bounds
Diffstat (limited to 'TAO/tao/BoundsC.cpp')
-rw-r--r-- | TAO/tao/BoundsC.cpp | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/TAO/tao/BoundsC.cpp b/TAO/tao/BoundsC.cpp new file mode 100644 index 00000000000..e8700b87d7c --- /dev/null +++ b/TAO/tao/BoundsC.cpp @@ -0,0 +1,130 @@ +/* -*- 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 + +#include "tao/BoundsC.h" + +#if !defined (__ACE_INLINE__) +#include "BoundsC.i" +#endif /* !defined INLINE */ + +// default constructor +CORBA_Bounds::CORBA_Bounds (void) + : CORBA_UserException (CORBA::_tc_Bounds) +{ +} + +// destructor - all members are of self managing types +CORBA_Bounds::~CORBA_Bounds (void) +{ +} + +// copy constructor +CORBA_Bounds::CORBA_Bounds (const CORBA::Bounds &_tao_excp) + : CORBA_UserException (_tao_excp._type ()) +{ + } + +// assignment operator +CORBA_Bounds& +CORBA_Bounds::operator= (const CORBA_Bounds &_tao_excp) +{ + + this->CORBA_UserException::operator= (_tao_excp); + return *this; +} + +// narrow +CORBA_Bounds_ptr +CORBA_Bounds::_narrow (CORBA_Exception *exc) +{ + if (!ACE_OS::strcmp ("IDL:omg.org/CORBA/Bounds:1.0", exc->_id ())) // same type + return ACE_dynamic_cast (CORBA_Bounds_ptr, exc); + else + return 0; +} + + +void CORBA_Bounds::_raise () +{ + TAO_RAISE(*this); +} + +// TAO extension - the _alloc method +CORBA::Exception *CORBA_Bounds::_alloc (void) +{ + return new CORBA_Bounds; +} + + + +void operator<<= (CORBA::Any &_tao_any, const CORBA::Bounds &_tao_elem) // copying +{ + CORBA::Bounds *_tao_any_val = new CORBA::Bounds (_tao_elem); + if (!_tao_any_val) return; + ACE_TRY_NEW_ENV + { + _tao_any.replace (CORBA::_tc_Bounds, _tao_any_val, 1, ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + delete _tao_any_val; + } + ACE_ENDTRY; +} + +void operator<<= (CORBA::Any &_tao_any, CORBA::Bounds *_tao_elem) // non copying +{ + ACE_TRY_NEW_ENV + { + _tao_any.replace (CORBA::_tc_Bounds, _tao_elem, 1, ACE_TRY_ENV); // consume it + ACE_TRY_CHECK; + } + ACE_CATCHANY {} + ACE_ENDTRY; +} + +CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, CORBA::Bounds *&_tao_elem) +{ + ACE_TRY_NEW_ENV + { + CORBA::TypeCode_var type = _tao_any.type (); + if (!type->equal (CORBA::_tc_Bounds, ACE_TRY_ENV)) return 0; // not equal + ACE_TRY_CHECK; + if (_tao_any.any_owns_data ()) + { + _tao_elem = (CORBA::Bounds *)_tao_any.value (); + return 1; + } + else + { + ACE_NEW_RETURN (_tao_elem, CORBA::Bounds, 0); + TAO_InputCDR stream (_tao_any._tao_get_cdr ()); + if (stream.decode (CORBA::_tc_Bounds, _tao_elem, 0, ACE_TRY_ENV) + == CORBA::TypeCode::TRAVERSE_CONTINUE) + { + ((CORBA::Any *)&_tao_any)->replace (CORBA::_tc_Bounds, _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; +} + |