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

CORBA::_TAO_ConstructionPolicy_Remote_Proxy_Impl Class Reference

#include <DomainC.h>

Inheritance diagram for CORBA::_TAO_ConstructionPolicy_Remote_Proxy_Impl:

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

Collaboration graph
[legend]
List of all members.

Public Methods

 _TAO_ConstructionPolicy_Remote_Proxy_Impl (void)
virtual ~_TAO_ConstructionPolicy_Remote_Proxy_Impl (void)
virtual void make_domain_manager (CORBA_Object *_collocated_tao_target_, CORBA::InterfaceDef_ptr object_type, CORBA::Boolean constr_policy ACE_ENV_ARG_DECL) throw ( CORBA::SystemException )

Constructor & Destructor Documentation

CORBA::_TAO_ConstructionPolicy_Remote_Proxy_Impl::_TAO_ConstructionPolicy_Remote_Proxy_Impl void   
 

Definition at line 1166 of file DomainC.cpp.

01167 {}

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

Definition at line 576 of file DomainC.h.

00576 { }


Member Function Documentation

void CORBA::_TAO_ConstructionPolicy_Remote_Proxy_Impl::make_domain_manager CORBA_Object   _collocated_tao_target_,
CORBA::InterfaceDef_ptr    object_type,
CORBA::Boolean constr_policy    ACE_ENV_ARG_DECL
throw ( CORBA::SystemException ) [virtual]
 

Implements CORBA::_TAO_ConstructionPolicy_Proxy_Impl.

Definition at line 1171 of file DomainC.cpp.

References ACE_ANY_EXCEPTION, ACE_CATCHANY, ACE_CHECK, ACE_ENDTRY, ACE_ENV_ARG_DECL, ACE_ENV_ARG_PARAMETER, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_RE_THROW, ACE_THROW, ACE_TRY, ACE_TRY_CHECK, TAO_ORB_Core::client_request_interceptors, TAO_ORB_Core::ifr_client_adapter_name, ACE_Dynamic_Service::instance, TAO_IFR_Client_Adapter::interfacedef_cdr_insert, 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_INTERCEPTOR, TAO_INTERCEPTOR_CHECK, TAO_INTERCEPTOR_THROW, TAO_INVOKE_EXCEPTION, TAO_INVOKE_RESTART, and TAO_TWOWAY_RESPONSE_FLAG.

01180 {
01181   
01182   
01183   
01184   
01185   TAO_Stub *istub = _collocated_tao_target_->_stubobj ();
01186   if (istub == 0)
01187     ACE_THROW (CORBA::INTERNAL ());
01188 
01189   
01190   TAO_GIOP_Twoway_Invocation _tao_call (
01191       istub,
01192       "make_domain_manager",
01193       19,
01194       2,
01195       istub->orb_core ()
01196     );
01197   
01198   int _invoke_status;
01199   
01200 #if (TAO_HAS_INTERCEPTORS == 1)
01201   TAO_ClientRequestInterceptor_Adapter _tao_vfr (
01202       istub->orb_core ()->client_request_interceptors (),
01203       &_tao_call,
01204       _invoke_status
01205     );
01206   
01207 #endif  /* TAO_HAS_INTERCEPTORS */
01208   
01209   TAO_IFR_Client_Adapter *adapter =
01210     ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance (
01211         TAO_ORB_Core::ifr_client_adapter_name ()
01212       );
01213 
01214   for (;;)
01215     {
01216       _invoke_status = TAO_INVOKE_EXCEPTION;
01217       
01218 #if TAO_HAS_INTERCEPTORS == 1
01219       TAO_ClientRequestInfo_CORBA_ConstructionPolicy_make_domain_manager _tao_ri (
01220         &_tao_call,
01221         _collocated_tao_target_,
01222         object_type,
01223         constr_policy ACE_ENV_ARG_PARAMETER
01224       );
01225             ACE_CHECK;
01226 
01227 #endif /* TAO_HAS_INTERCEPTORS */
01228       
01229       
01230       CORBA::Short _tao_response_flag = TAO_TWOWAY_RESPONSE_FLAG;
01231       TAO_INTERCEPTOR (_tao_ri.response_expected (1));
01232       
01233 #if TAO_HAS_INTERCEPTORS == 1
01234       
01235       ACE_TRY
01236         {
01237           _tao_vfr.send_request (
01238             &_tao_ri
01239             ACE_ENV_ARG_PARAMETER
01240           );
01241           ACE_TRY_CHECK;
01242           
01243           if (_invoke_status == TAO_INVOKE_RESTART)
01244             {
01245               _tao_call.restart_flag (1);
01246               continue;
01247             }
01248           
01249 #endif /* TAO_HAS_INTERCEPTORS */
01250           
01251           _tao_call.start (ACE_ENV_SINGLE_ARG_PARAMETER);
01252                     TAO_INTERCEPTOR_CHECK;
01253 
01254           _tao_call.prepare_header (
01255               ACE_static_cast (CORBA::Octet, _tao_response_flag)
01256               ACE_ENV_ARG_PARAMETER
01257             );
01258                     TAO_INTERCEPTOR_CHECK;
01259 
01260           TAO_OutputCDR &_tao_out = _tao_call.out_stream ();
01261           if (!(
01262               (adapter->interfacedef_cdr_insert (_tao_out, object_type)) &&
01263               (_tao_out << CORBA::Any::from_boolean (constr_policy))
01264             ))
01265             TAO_INTERCEPTOR_THROW (
01266               CORBA::MARSHAL ()
01267             );
01268             
01269           _invoke_status =
01270             _tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER);
01271                     TAO_INTERCEPTOR_CHECK;
01272 
01273           if (_invoke_status == TAO_INVOKE_EXCEPTION)
01274             {
01275               TAO_INTERCEPTOR_THROW (
01276                 CORBA::UNKNOWN (CORBA::OMGVMCID | 1, CORBA::COMPLETED_YES)
01277               );
01278               
01279             }
01280           else if (_invoke_status == TAO_INVOKE_RESTART)
01281             {
01282               TAO_INTERCEPTOR (
01283                 _tao_ri.reply_status (_invoke_status);
01284                 _tao_vfr.receive_other (
01285                   &_tao_ri
01286                   ACE_ENV_ARG_PARAMETER
01287                 );
01288                 ACE_TRY_CHECK;
01289               )
01290               
01291               continue;
01292             }
01293           
01294           
01295 #if TAO_HAS_INTERCEPTORS == 1
01296           
01297           _tao_ri.reply_status (_invoke_status);
01298           _tao_vfr.receive_reply (
01299             &_tao_ri
01300             ACE_ENV_ARG_PARAMETER
01301           );
01302           ACE_TRY_CHECK;
01303         
01304       }
01305     ACE_CATCHANY
01306       {
01307         _tao_ri.exception (&ACE_ANY_EXCEPTION);
01308         _tao_vfr.receive_exception (
01309           &_tao_ri
01310           ACE_ENV_ARG_PARAMETER
01311         );
01312         ACE_TRY_CHECK;
01313         
01314         PortableInterceptor::ReplyStatus _tao_status =
01315           _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER);
01316         ACE_TRY_CHECK;
01317         
01318         if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION
01319             || _tao_status == PortableInterceptor::USER_EXCEPTION)
01320           ACE_RE_THROW;
01321       }
01322     ACE_ENDTRY;
01323         ACE_CHECK;
01324 
01325     PortableInterceptor::ReplyStatus _tao_status =
01326       _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER);
01327         ACE_CHECK;
01328 
01329     if (_tao_status == PortableInterceptor::LOCATION_FORWARD
01330         || _tao_status == PortableInterceptor::TRANSPORT_RETRY)
01331       continue;
01332     
01333 #endif  /* TAO_HAS_INTERCEPTORS */
01334     
01335     break;
01336   }
01337 
01338 }


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