3 //=============================================================================
5 * @file Asynch_Invocation.h
7 * @author Balachandran Natarajan <bala@dre.vanderbilt.edu>
9 //=============================================================================
11 #ifndef TAO_MESSAGING_ASYNCH_INVOCATION_H
12 #define TAO_MESSAGING_ASYNCH_INVOCATION_H
13 #include /**/ "ace/pre.h"
15 #include "tao/Messaging/messaging_export.h"
17 #if !defined (ACE_LACKS_PRAGMA_ONCE)
19 #endif /* ACE_LACKS_PRAGMA_ONCE */
21 #include "tao/Synch_Invocation.h"
22 #include "tao/Asynch_Reply_Dispatcher_Base.h"
23 #include "ace/Global_Macros.h"
24 #include "ace/Auto_Functor.h"
27 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
29 ACE_END_VERSIONED_NAMESPACE_DECL
31 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
33 class TAO_Operation_Details
;
35 class TAO_Asynch_Reply_Dispatcher_Base
;
39 class Profile_Transport_Resolver
;
41 class TAO_Messaging_Export Asynch_Remote_Invocation
42 : public Synch_Twoway_Invocation
45 Asynch_Remote_Invocation (CORBA::Object_ptr otarget
,
46 Profile_Transport_Resolver
&resolver
,
47 TAO_Operation_Details
&detail
,
48 TAO_Asynch_Reply_Dispatcher_Base
*rd
,
49 bool response_expected
= true);
51 Invocation_Status
remote_invocation (ACE_Time_Value
*value
);
54 // To prevent leaking memory from the reply dispatcher that we
56 ACE_Utils::Auto_Functor
<TAO_Asynch_Reply_Dispatcher_Base
,
57 ARDB_Refcount_Functor
> safe_rd_
;
61 TAO_END_VERSIONED_NAMESPACE_DECL
63 #include /**/ "ace/post.h"
64 #endif /*TAO_MESSAGING_ASYNCH_INVOCATION_H*/