diff options
author | Phil Mesnier <mesnier_p@ociweb.com> | 2013-06-03 21:24:44 +0000 |
---|---|---|
committer | Phil Mesnier <mesnier_p@ociweb.com> | 2013-06-03 21:24:44 +0000 |
commit | 28816d893d0e42b7f5fb2dd2c20f1bc4072d4405 (patch) | |
tree | 480cd693d7dc56d11c139c234b7d1b7a8b7ce00e /TAO/orbsvcs/tests/ImplRepo/ping_interrupt/server_interceptor.cpp | |
parent | 8267867e8abe961a03d3331680860cab6fcc9355 (diff) | |
download | ATCD-28816d893d0e42b7f5fb2dd2c20f1bc4072d4405.tar.gz |
Mon Jun 3 21:16:43 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
Diffstat (limited to 'TAO/orbsvcs/tests/ImplRepo/ping_interrupt/server_interceptor.cpp')
-rw-r--r-- | TAO/orbsvcs/tests/ImplRepo/ping_interrupt/server_interceptor.cpp | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/TAO/orbsvcs/tests/ImplRepo/ping_interrupt/server_interceptor.cpp b/TAO/orbsvcs/tests/ImplRepo/ping_interrupt/server_interceptor.cpp new file mode 100644 index 00000000000..7a1877b3a29 --- /dev/null +++ b/TAO/orbsvcs/tests/ImplRepo/ping_interrupt/server_interceptor.cpp @@ -0,0 +1,98 @@ +// $Id$ + +#include "server_interceptor.h" +#include "tao/OctetSeqC.h" + +#include "ace/Log_Msg.h" +#include "ace/OS_NS_string.h" + +Ping_Death_Request_Interceptor::Ping_Death_Request_Interceptor (int *counter) + : myname_ ("Ping_Death_Interceptor"), + counter_ (counter), + poa_ (PortableServer::POA::_nil()) +{ +} + +Ping_Death_Request_Interceptor::~Ping_Death_Request_Interceptor (void) +{ +} + +void +Ping_Death_Request_Interceptor::set_poa (PortableServer::POA_ptr poa) +{ + poa_ = PortableServer::POA::_duplicate (poa); +} + +char * +Ping_Death_Request_Interceptor::name (void) +{ + return CORBA::string_dup (this->myname_); +} + +void +Ping_Death_Request_Interceptor::destroy (void) +{ +} + +void +Ping_Death_Request_Interceptor::receive_request_service_contexts ( + PortableInterceptor::ServerRequestInfo_ptr ri) +{ + CORBA::String_var operation = ri->operation (); + + if (ACE_OS::strcmp (operation.in(), "ping") != 0) + { + return; + } + + if (this->counter_ != 0) + { + ++(*counter_); + } + if (CORBA::is_nil(this->poa_)) + { + return; + } + try + { + this->poa_->destroy (1,1); + } + catch (CORBA::Exception &ex) + { + ACE_DEBUG ((LM_DEBUG, "(%P) deactivate raised %s\n", + ex._name())); + } + throw ::CORBA::TRANSIENT + ( CORBA::SystemException::_tao_minor_code (TAO_POA_HOLDING, 1), + CORBA::COMPLETED_NO); + +} + + +void +Ping_Death_Request_Interceptor::receive_request ( + PortableInterceptor::ServerRequestInfo_ptr) +{ + // Do nothing +} + +void +Ping_Death_Request_Interceptor::send_reply ( + PortableInterceptor::ServerRequestInfo_ptr) +{ + // Do Nothing +} + +void +Ping_Death_Request_Interceptor::send_exception ( + PortableInterceptor::ServerRequestInfo_ptr) +{ + // Do Nothing +} + +void +Ping_Death_Request_Interceptor::send_other ( + PortableInterceptor::ServerRequestInfo_ptr) +{ + // Do Nothing +} |