diff options
Diffstat (limited to 'TAO/tao/IORTable/Locate_ResponseHandler.cpp')
-rw-r--r-- | TAO/tao/IORTable/Locate_ResponseHandler.cpp | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/TAO/tao/IORTable/Locate_ResponseHandler.cpp b/TAO/tao/IORTable/Locate_ResponseHandler.cpp new file mode 100644 index 00000000000..cf36cae1ef2 --- /dev/null +++ b/TAO/tao/IORTable/Locate_ResponseHandler.cpp @@ -0,0 +1,90 @@ +// -*- C++ -*- +//============================================================================= +/** + * @file Locate_ResponseHandler.cpp + * + * $Id$ + * + * @author Phil Mesnier <mesnier_p@ociweb> + */ +//============================================================================= + +#include "Locate_ResponseHandler.h" + +#include "tao/Exception.h" +#include "tao/ORB_Core.h" +#include "tao/GIOP_Utils.h" +#include "tao/PortableServer/Root_POA.h" +#include "tao/Object.h" +#include "tao/Pluggable_Messaging_Utils.h" +#include "tao/TAO_Server_Request.h" + +#if !defined (__ACE_INLINE__) +# include "Locate_ResponseHandler.inl" +#endif /* ! __ACE_INLINE__ */ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +// The pseudo-object _nil method. +TAO_AMH_Locate_ResponseHandler_ptr +TAO_AMH_Locate_ResponseHandler::_nil (void) +{ + return (TAO_AMH_Locate_ResponseHandler_ptr) 0; +} + + +TAO_AMH_Locate_ResponseHandler::TAO_AMH_Locate_ResponseHandler ( + TAO_ServerRequest & sr) + : TAO_AMH_Response_Handler (), + orb_ (CORBA::ORB::_duplicate (sr.orb())) +{ + this->init (sr,0); +} + +TAO_AMH_Locate_ResponseHandler::~TAO_AMH_Locate_ResponseHandler (void) +{ +} + +void +TAO_AMH_Locate_ResponseHandler::raise_excep (const CORBA::Exception &ex) +{ + this->_tao_rh_send_exception (ex); +} + +void +TAO_AMH_Locate_ResponseHandler::forward_ior (const char *ior, CORBA::Boolean is_perm) +{ + CORBA::Object_var fwd = this->orb_->string_to_object (ior); + this->_tao_rh_send_location_forward (fwd, is_perm); +} + + +void * +TAO_AMH_Locate_ResponseHandler::_downcast (const char *) +{ + return this; +} + +TAO_AMH_Locate_ResponseHandler_ptr +TAO_AMH_Locate_ResponseHandler::_narrow (CORBA::Object_ptr obj) +{ + return TAO_AMH_Locate_ResponseHandler::_unchecked_narrow (obj); +} + +TAO_AMH_Locate_ResponseHandler_ptr +TAO_AMH_Locate_ResponseHandler::_unchecked_narrow (CORBA::Object_ptr obj) +{ + if (CORBA::is_nil (obj)) + return TAO_AMH_Locate_ResponseHandler::_nil (); + + return dynamic_cast < TAO_AMH_Locate_ResponseHandler_ptr > (obj); +} + +const char* +TAO_AMH_Locate_ResponseHandler::_interface_repository_id (void) const +{ + return 0; +} + + +TAO_END_VERSIONED_NAMESPACE_DECL |