3 //=============================================================================
5 * @file RequestProcessingStrategyServantLocator.h
7 * @author Johnny Willemsen <jwillemsen@remedy.nl>
9 //=============================================================================
11 #ifndef TAO_REQUESTPROCESSINGSTRATEGYSERVANTLOCATOR_H
12 #define TAO_REQUESTPROCESSINGSTRATEGYSERVANTLOCATOR_H
13 #include /**/ "ace/pre.h"
15 #include "tao/PortableServer/RequestProcessingStrategyServantManager.h"
17 #if !defined (ACE_LACKS_PRAGMA_ONCE)
19 #endif /* ACE_LACKS_PRAGMA_ONCE */
21 #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO)
23 #include "tao/PortableServer/Servant_Location.h"
24 #include "tao/PortableServer/PortableServer.h"
25 #include "tao/PortableServer/ServantLocatorC.h"
27 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
31 namespace Portable_Server
33 class RequestProcessingStrategyServantLocator
34 : public RequestProcessingStrategyServantManager
37 RequestProcessingStrategyServantLocator () = default;
39 void strategy_cleanup() override
;
41 PortableServer::ServantManager_ptr
get_servant_manager () override
;
43 void set_servant_manager (PortableServer::ServantManager_ptr imgr
) override
;
45 TAO_Servant_Location
locate_servant (
46 const PortableServer::ObjectId
&system_id
,
47 PortableServer::Servant
&servant
) override
;
49 void post_invoke_servant_cleanup(
50 const PortableServer::ObjectId
&system_id
,
51 const TAO::Portable_Server::Servant_Upcall
&servant_upcall
) override
;
53 PortableServer::Servant
locate_servant (
54 const char *operation
,
55 const PortableServer::ObjectId
&system_id
,
56 TAO::Portable_Server::Servant_Upcall
&servant_upcall
,
57 TAO::Portable_Server::POA_Current_Impl
&poa_current_impl
,
58 bool &wait_occurred_restart_call
) override
;
60 void cleanup_servant (
61 PortableServer::Servant servant
,
62 const PortableServer::ObjectId
&user_id
) override
;
64 void etherealize_objects (CORBA::Boolean etherealize_objects
) override
;
67 PortableServer::ServantLocator_var servant_locator_
;
72 TAO_END_VERSIONED_NAMESPACE_DECL
74 #endif /* TAO_HAS_MINIMUM_POA == 0 */
76 #include /**/ "ace/post.h"
77 #endif /* TAO_REQUESTPROCESSINGSTRATEGYSERVANTLOCATOR_H */