Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

CORBA::_TAO_DomainManager_Remote_Proxy_Impl Class Reference

#include <DomainC.h>

Inheritance diagram for CORBA::_TAO_DomainManager_Remote_Proxy_Impl:

Inheritance graph
[legend]
Collaboration diagram for CORBA::_TAO_DomainManager_Remote_Proxy_Impl:

Collaboration graph
[legend]
List of all members.

Public Methods

 _TAO_DomainManager_Remote_Proxy_Impl (void)
virtual ~_TAO_DomainManager_Remote_Proxy_Impl (void)
virtual::CORBA::Policy_ptr get_domain_policy (CORBA_Object *_collocated_tao_target_, CORBA::PolicyType policy_type ACE_ENV_ARG_DECL) throw ( CORBA::SystemException )

Constructor & Destructor Documentation

CORBA::_TAO_DomainManager_Remote_Proxy_Impl::_TAO_DomainManager_Remote_Proxy_Impl void   
 

Definition at line 385 of file DomainC.cpp.

00386 {}

virtual CORBA::_TAO_DomainManager_Remote_Proxy_Impl::~_TAO_DomainManager_Remote_Proxy_Impl void    [inline, virtual]
 

Definition at line 275 of file DomainC.h.

00275 { }


Member Function Documentation

CORBA::Policy_ptr CORBA::_TAO_DomainManager_Remote_Proxy_Impl::get_domain_policy CORBA_Object   _collocated_tao_target_,
CORBA::PolicyType policy_type    ACE_ENV_ARG_DECL
throw ( CORBA::SystemException ) [virtual]
 

Implements CORBA::_TAO_DomainManager_Proxy_Impl.

Definition at line 390 of file DomainC.cpp.

References CORBA::Policy::_nil, CORBA::Policy_var::_retn, ACE_ANY_EXCEPTION, ACE_CATCHANY, ACE_CHECK_RETURN, ACE_ENDTRY, ACE_ENV_ARG_DECL, ACE_ENV_ARG_PARAMETER, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_RE_THROW, ACE_THROW_RETURN, ACE_TRY, ACE_TRY_CHECK, TAO_ORB_Core::client_request_interceptors, CORBA::Policy_var::inout, TAO_GIOP_Synch_Invocation::inp_stream, TAO_GIOP_Twoway_Invocation::invoke, TAO_Stub::orb_core, TAO_GIOP_Invocation::out_stream, TAO_GIOP_Invocation::prepare_header, TAO_ClientRequestInterceptor_Adapter::receive_exception, TAO_ClientRequestInterceptor_Adapter::receive_other, TAO_ClientRequestInterceptor_Adapter::receive_reply, TAO_GIOP_Invocation::restart_flag, TAO_ClientRequestInterceptor_Adapter::send_request, TAO_GIOP_Twoway_Invocation::start, TAO_DEFAULT_MINOR_CODE, TAO_INTERCEPTOR, TAO_INTERCEPTOR_CHECK_RETURN, TAO_INTERCEPTOR_THROW_RETURN, TAO_INVOKE_EXCEPTION, TAO_INVOKE_RESTART, and TAO_TWOWAY_RESPONSE_FLAG.

00398 {
00399   
00400   CORBA::Policy_var _tao_retval (CORBA::Policy::_nil ());
00401 
00402 
00403   
00404   TAO_Stub *istub = _collocated_tao_target_->_stubobj ();
00405   if (istub == 0)
00406     ACE_THROW_RETURN (CORBA::INTERNAL (),_tao_retval._retn ());
00407 
00408   
00409   TAO_GIOP_Twoway_Invocation _tao_call (
00410       istub,
00411       "get_domain_policy",
00412       17,
00413       1,
00414       istub->orb_core ()
00415     );
00416   
00417   int _invoke_status;
00418   
00419 #if (TAO_HAS_INTERCEPTORS == 1)
00420   TAO_ClientRequestInterceptor_Adapter _tao_vfr (
00421       istub->orb_core ()->client_request_interceptors (),
00422       &_tao_call,
00423       _invoke_status
00424     );
00425   
00426 #endif  /* TAO_HAS_INTERCEPTORS */
00427   
00428   for (;;)
00429     {
00430       _invoke_status = TAO_INVOKE_EXCEPTION;
00431       
00432 #if TAO_HAS_INTERCEPTORS == 1
00433       TAO_ClientRequestInfo_CORBA_DomainManager_get_domain_policy _tao_ri (
00434         &_tao_call,
00435         _collocated_tao_target_,
00436         policy_type ACE_ENV_ARG_PARAMETER
00437       );
00438             ACE_CHECK_RETURN (_tao_retval._retn ());
00439 
00440 #endif /* TAO_HAS_INTERCEPTORS */
00441       
00442       
00443       CORBA::Short _tao_response_flag = TAO_TWOWAY_RESPONSE_FLAG;
00444       TAO_INTERCEPTOR (_tao_ri.response_expected (1));
00445       
00446 #if TAO_HAS_INTERCEPTORS == 1
00447       
00448       ACE_TRY
00449         {
00450           _tao_vfr.send_request (
00451             &_tao_ri
00452             ACE_ENV_ARG_PARAMETER
00453           );
00454           ACE_TRY_CHECK;
00455           
00456           if (_invoke_status == TAO_INVOKE_RESTART)
00457             {
00458               _tao_call.restart_flag (1);
00459               continue;
00460             }
00461           
00462 #endif /* TAO_HAS_INTERCEPTORS */
00463           
00464           _tao_call.start (ACE_ENV_SINGLE_ARG_PARAMETER);
00465                     TAO_INTERCEPTOR_CHECK_RETURN (_tao_retval._retn ());
00466 
00467           _tao_call.prepare_header (
00468               ACE_static_cast (CORBA::Octet, _tao_response_flag)
00469               ACE_ENV_ARG_PARAMETER
00470             );
00471                     TAO_INTERCEPTOR_CHECK_RETURN (_tao_retval._retn ());
00472 
00473           TAO_OutputCDR &_tao_out = _tao_call.out_stream ();
00474           if (!(
00475                             (_tao_out << policy_type)
00476             ))
00477             TAO_INTERCEPTOR_THROW_RETURN (
00478               CORBA::MARSHAL (),
00479               0
00480             );
00481             
00482           _invoke_status =
00483             _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER);
00484                     TAO_INTERCEPTOR_CHECK_RETURN (_tao_retval._retn ());
00485 
00486           if (_invoke_status == TAO_INVOKE_EXCEPTION)
00487             {
00488               TAO_INTERCEPTOR_THROW_RETURN (
00489                 CORBA::UNKNOWN (CORBA::OMGVMCID | 1, CORBA::COMPLETED_YES),
00490                 0
00491               );
00492               
00493             }
00494           else if (_invoke_status == TAO_INVOKE_RESTART)
00495             {
00496               TAO_INTERCEPTOR (
00497                 _tao_ri.reply_status (_invoke_status);
00498                 _tao_vfr.receive_other (
00499                   &_tao_ri
00500                   ACE_ENV_ARG_PARAMETER
00501                 );
00502                 ACE_TRY_CHECK;
00503               )
00504               
00505               continue;
00506             }
00507           
00508           TAO_InputCDR &_tao_in = _tao_call.inp_stream ();
00509           if (!(
00510                             (_tao_in >> _tao_retval.inout ())
00511               ))
00512             {
00513               TAO_INTERCEPTOR_THROW_RETURN (
00514                 CORBA::MARSHAL (TAO_DEFAULT_MINOR_CODE, CORBA::COMPLETED_YES),
00515                 0
00516               );
00517               
00518             }
00519           
00520 #if TAO_HAS_INTERCEPTORS == 1
00521           ::CORBA::Policy_ptr _tao_retval_info = _tao_retval._retn ();
00522           _tao_ri.result (_tao_retval_info);
00523           _tao_retval = _tao_retval_info;
00524           
00525           _tao_ri.reply_status (_invoke_status);
00526           _tao_vfr.receive_reply (
00527             &_tao_ri
00528             ACE_ENV_ARG_PARAMETER
00529           );
00530           ACE_TRY_CHECK;
00531         
00532       }
00533     ACE_CATCHANY
00534       {
00535         _tao_ri.exception (&ACE_ANY_EXCEPTION);
00536         _tao_vfr.receive_exception (
00537           &_tao_ri
00538           ACE_ENV_ARG_PARAMETER
00539         );
00540         ACE_TRY_CHECK;
00541         
00542         PortableInterceptor::ReplyStatus _tao_status =
00543           _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER);
00544         ACE_TRY_CHECK;
00545         
00546         if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION
00547             || _tao_status == PortableInterceptor::USER_EXCEPTION)
00548           ACE_RE_THROW;
00549       }
00550     ACE_ENDTRY;
00551         ACE_CHECK_RETURN (_tao_retval._retn ());
00552 
00553     PortableInterceptor::ReplyStatus _tao_status =
00554       _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER);
00555         ACE_CHECK_RETURN (_tao_retval._retn ());
00556 
00557     if (_tao_status == PortableInterceptor::LOCATION_FORWARD
00558         || _tao_status == PortableInterceptor::TRANSPORT_RETRY)
00559       continue;
00560     
00561 #endif  /* TAO_HAS_INTERCEPTORS */
00562     
00563     break;
00564   }
00565 return _tao_retval._retn ();
00566 }


The documentation for this class was generated from the following files:
Generated on Mon Jun 16 15:48:08 2003 for TAO by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002