Major cleanup in PortableServer library
[ACE_TAO.git] / TAO / tao / PortableServer / RequestProcessingStrategyServantActivator.h
blob7d41bcf6b6f201dd782dfef4ebeac306d4af0bd6
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file RequestProcessingStrategyServantActivator.h
7 * @author Johnny Willemsen <jwillemsen@remedy.nl>
8 */
9 //=============================================================================
11 #ifndef TAO_REQUESTPROCESSINGSTRATEGYSERVANTACTIVATOR_H
12 #define TAO_REQUESTPROCESSINGSTRATEGYSERVANTACTIVATOR_H
13 #include /**/ "ace/pre.h"
15 #include "tao/PortableServer/RequestProcessingStrategyServantManager.h"
17 #if !defined (ACE_LACKS_PRAGMA_ONCE)
18 # 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/ServantActivatorC.h"
27 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
29 namespace TAO
31 namespace Portable_Server
33 class RequestProcessingStrategyServantActivator
34 : public RequestProcessingStrategyServantManager
36 public:
37 RequestProcessingStrategyServantActivator () = 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 PortableServer::Servant locate_servant (
50 const char *operation,
51 const PortableServer::ObjectId &system_id,
52 TAO::Portable_Server::Servant_Upcall &servant_upcall,
53 TAO::Portable_Server::POA_Current_Impl &poa_current_impl,
54 bool &wait_occurred_restart_call) override;
56 void cleanup_servant (
57 PortableServer::Servant servant,
58 const PortableServer::ObjectId &user_id) override;
60 void etherealize_objects (CORBA::Boolean etherealize_objects) override;
62 void post_invoke_servant_cleanup(
63 const PortableServer::ObjectId &system_id,
64 const TAO::Portable_Server::Servant_Upcall &servant_upcall) override;
66 private:
67 PortableServer::Servant incarnate_servant (
68 const PortableServer::ObjectId& object_id);
70 void etherealize_servant (const PortableServer::ObjectId& object_id,
71 PortableServer::Servant servant,
72 CORBA::Boolean cleanup_in_progress);
74 private:
75 PortableServer::ServantActivator_var servant_activator_;
76 CORBA::Boolean etherealize_objects_ { true };
81 TAO_END_VERSIONED_NAMESPACE_DECL
83 #endif /* TAO_HAS_MINIMUM_POA == 0 */
85 #include /**/ "ace/post.h"
86 #endif /* TAO_REQUESTPROCESSINGSTRATEGYSERVANTACTIVATOR_H */