blob: 13d78a1664c3aca264c67c8830cd3b935d10f5d4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
// -*- C++ -*-
//
// $Id$
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_INLINE
TAO::CSD::FW_Server_Request_Wrapper::FW_Server_Request_Wrapper
(TAO_ServerRequest& server_request)
: is_clone_(false),
request_(&server_request)
{
}
ACE_INLINE
void
TAO::CSD::FW_Server_Request_Wrapper::clone()
{
// Only clone the TAO_Server_Request object if we have not performed the
// clone already. This really should only be called once, but this code
// makes sure that we do not introduce a leak.
if (!this->is_clone_)
{
this->request_ = this->clone (this->request_);
this->is_clone_ = true;
}
}
ACE_INLINE
void
TAO::CSD::FW_Server_Request_Wrapper::cancel()
{
// We only need to handle remote requests that are expecting a reply.
if (!this->request_->collocated() &&
!this->request_->sync_with_server() &&
this->request_->response_expected() &&
!this->request_->deferred_reply())
{
CORBA::NO_IMPLEMENT ex;
this->request_->tao_send_reply_exception(ex);
}
}
TAO_END_VERSIONED_NAMESPACE_DECL
|