Go to the documentation of this file.00001
00002
00003
00004
00005 #include "ace/Auto_Ptr.h"
00006
00007 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00008
00009 ACE_INLINE
00010 TAO::CSD::TP_Collocated_Synch_Request::TP_Collocated_Synch_Request
00011 (TAO_ServerRequest& server_request,
00012 const PortableServer::ObjectId& object_id,
00013 PortableServer::POA_ptr poa,
00014 const char* operation,
00015 PortableServer::Servant servant,
00016 TP_Servant_State* servant_state)
00017 : TP_Corba_Request(object_id,
00018 poa,
00019 operation,
00020 servant,
00021 servant_state,
00022 server_request),
00023 exception_(0)
00024 {
00025 }
00026
00027
00028 ACE_INLINE
00029 bool
00030 TAO::CSD::TP_Collocated_Synch_Request::wait(void)
00031 {
00032 bool dispatched = this->synch_helper_.wait_while_pending();
00033
00034 if (dispatched)
00035 {
00036
00037 if (this->exception_ != 0)
00038 {
00039
00040
00041
00042
00043 CORBA::Exception* ex = this->exception_;
00044 this->exception_ = 0;
00045
00046 ACE_Auto_Basic_Ptr<CORBA::Exception> ex_holder(ex);
00047 ex->_raise ();
00048 }
00049 }
00050
00051 return dispatched;
00052
00053 }
00054
00055 TAO_END_VERSIONED_NAMESPACE_DECL