3 //=============================================================================
5 * @file RequestProcessingStrategy.h
7 * @author Johnny Willemsen <jwillemsen@remedy.nl>
9 //=============================================================================
11 #ifndef TAO_REQUEST_PROCESSING_STRATEGY_H
12 #define TAO_REQUEST_PROCESSING_STRATEGY_H
13 #include /**/ "ace/pre.h"
15 #include "tao/PortableServer/PortableServer.h"
17 #if !defined (ACE_LACKS_PRAGMA_ONCE)
19 #endif /* ACE_LACKS_PRAGMA_ONCE */
21 #include "tao/PortableServer/Servant_Location.h"
23 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
25 namespace PortableServer
28 typedef ServantManager
*ServantManager_ptr
;
33 namespace Portable_Server
36 class POA_Current_Impl
;
44 namespace Portable_Server
46 class RequestProcessingStrategy
49 RequestProcessingStrategy () = default;
50 virtual ~RequestProcessingStrategy () = default;
52 virtual void strategy_init(TAO_Root_POA
*poa
);
54 virtual void strategy_cleanup();
56 #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO)
57 virtual PortableServer::ServantManager_ptr
get_servant_manager () = 0;
59 virtual void set_servant_manager (
60 PortableServer::ServantManager_ptr imgr
) = 0;
62 virtual void set_servant (PortableServer::Servant servant
) = 0;
64 virtual PortableServer::Servant
get_servant () = 0;
65 #endif /* TAO_HAS_MINIMUM_POA == 0 !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) */
67 virtual TAO_Servant_Location
locate_servant (
68 const PortableServer::ObjectId
&system_id
,
69 PortableServer::Servant
&servant
) = 0;
71 virtual PortableServer::Servant
locate_servant (
72 const char *operation
,
73 const PortableServer::ObjectId
&system_id
,
74 TAO::Portable_Server::Servant_Upcall
&servant_upcall
,
75 TAO::Portable_Server::POA_Current_Impl
&poa_current_impl
,
76 bool &wait_occurred_restart_call
) = 0;
78 virtual void cleanup_servant (
79 PortableServer::Servant servant
,
80 const PortableServer::ObjectId
&user_id
) = 0;
82 virtual PortableServer::Servant
system_id_to_servant (
83 const PortableServer::ObjectId
&system_id
) = 0;
85 virtual PortableServer::Servant
id_to_servant (
86 const PortableServer::ObjectId
&id
) = 0;
88 virtual void etherealize_objects (CORBA::Boolean etherealize_objects
) = 0;
90 virtual PortableServer::ObjectId
*servant_to_id (
91 PortableServer::Servant servant
) = 0;
93 virtual void post_invoke_servant_cleanup(
94 const PortableServer::ObjectId
&system_id
,
95 const TAO::Portable_Server::Servant_Upcall
&servant_upcall
) = 0;
98 TAO_Root_POA
* poa_
{};
103 TAO_END_VERSIONED_NAMESPACE_DECL
105 #include /**/ "ace/post.h"
106 #endif /* TAO_REQUEST_PROCESSING_STRATEGY_H */