/* -*- 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" #include "tao/Typecode.h" #if !defined (__ACE_INLINE__) #include "tao/BoundsC.i" #endif /* !defined INLINE */ // default constructor CORBA_Bounds::CORBA_Bounds (void) : CORBA_UserException ("IDL:omg.org/CORBA/Bounds:1.0") { } // destructor - all members are of self managing types CORBA_Bounds::~CORBA_Bounds (void) { } void CORBA_Bounds::_tao_any_destructor (void *x) { CORBA_Bounds *tmp = ACE_static_cast (CORBA_Bounds*,x); delete tmp; } // copy constructor CORBA_Bounds::CORBA_Bounds (const CORBA::Bounds &_tao_excp) : CORBA_UserException (_tao_excp._id ()) { } // 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::_downcast (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); } void CORBA_Bounds::_tao_encode (TAO_OutputCDR &cdr, CORBA::Environment &ACE_TRY_ENV) const { if (cdr << *this) return; ACE_THROW (CORBA::MARSHAL ()); } void CORBA_Bounds::_tao_decode (TAO_InputCDR &cdr, CORBA::Environment &ACE_TRY_ENV) { if (cdr >> *this) return; ACE_THROW (CORBA::MARSHAL ()); } // TAO extension - the _alloc method CORBA::Exception *CORBA_Bounds::_alloc (void) { CORBA::Exception *retval = 0; ACE_NEW_RETURN (retval, CORBA_Bounds, 0); return retval; } CORBA::TypeCode_ptr CORBA_Bounds::_type (void) const { return CORBA::TypeCode::_tc_Bounds; } void operator<<= (CORBA::Any &_tao_any, const CORBA::Bounds &_tao_elem) { TAO_OutputCDR stream; stream << _tao_elem; _tao_any._tao_replace (CORBA::_tc_Bounds, TAO_ENCAP_BYTE_ORDER, stream.begin ()); } void operator<<= (CORBA::Any &_tao_any, CORBA::Bounds *_tao_elem) // non copying { TAO_OutputCDR stream; stream << *_tao_elem; _tao_any._tao_replace (CORBA::_tc_Bounds, TAO_ENCAP_BYTE_ORDER, stream.begin (), 1, _tao_elem, CORBA::Bounds::_tao_any_destructor); } 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 (), _tao_any._tao_byte_order ()); if (stream >> *_tao_elem) { ((CORBA::Any *)&_tao_any)->_tao_replace ( CORBA::_tc_Bounds, 1, ACE_reinterpret_cast (void*, _tao_elem), CORBA::Bounds::_tao_any_destructor); return 1; } else { delete _tao_elem; _tao_elem = 0; } } } ACE_CATCHANY { delete _tao_elem; _tao_elem = 0; return 0; } ACE_ENDTRY; return 0; }