Revert "Minor modernization of DynamicAny code"
[ACE_TAO.git] / TAO / tao / PortableServer / Servant_Dispatcher.h
blobced50eec720715f65332f2513dc84dcbeb6dc946
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file Servant_Dispatcher.h
7 * @author Frank Hunleth <fhunleth@cs.wustl.edu>
8 */
9 //=============================================================================
11 #ifndef TAO_SERVANT_DISPATCHER_H
12 #define TAO_SERVANT_DISPATCHER_H
13 #include /**/ "ace/pre.h"
15 #include "tao/PortableServer/portableserver_export.h"
17 #if !defined (ACE_LACKS_PRAGMA_ONCE)
18 # pragma once
19 #endif /* ACE_LACKS_PRAGMA_ONCE */
21 #include "tao/PortableServer/Servant_Upcall.h"
22 #include "ace/SStringfwd.h"
24 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
25 class ACE_Lock;
26 ACE_END_VERSIONED_NAMESPACE_DECL
28 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
30 // Forward references.
31 class TAO_POA_Manager;
32 class TAO_POA_Policy_Set;
33 class TAO_Root_POA;
34 class TAO_ORB_Core;
35 class TAO_ServerRequest;
37 namespace PortableServer
39 class POAManager;
40 typedef POAManager *POAManager_ptr;
43 /**
44 * @class TAO_Servant_Dispatcher
46 * @brief Interface for POA servant dispatching strategies.
48 class TAO_PortableServer_Export TAO_Servant_Dispatcher
50 public:
51 virtual ~TAO_Servant_Dispatcher ();
53 /// Pre_invoke remote request.
54 virtual void pre_invoke_remote_request (
55 TAO_Root_POA &poa,
56 CORBA::Short servant_priority,
57 TAO_ServerRequest &req,
58 TAO::Portable_Server::Servant_Upcall::Pre_Invoke_State &pre_invoke_state) = 0;
60 /// Pre_invoke collocated request.
61 virtual void pre_invoke_collocated_request (
62 TAO_Root_POA &poa,
63 CORBA::Short servant_priority,
64 TAO::Portable_Server::Servant_Upcall::Pre_Invoke_State &pre_invoke_state) = 0;
66 /// Post_invoke request.
67 virtual void post_invoke (
68 TAO_Root_POA &poa,
69 TAO::Portable_Server::Servant_Upcall::Pre_Invoke_State &pre_invoke_state) = 0;
71 /// Factory method for creating new POA's.
72 virtual TAO_Root_POA *create_Root_POA (
73 const ACE_CString &name,
74 PortableServer::POAManager_ptr poa_manager,
75 const TAO_POA_Policy_Set &policies,
76 ACE_Lock &lock,
77 TAO_SYNCH_MUTEX &thread_lock,
78 TAO_ORB_Core &orb_core,
79 TAO_Object_Adapter *object_adapter) = 0;
82 TAO_END_VERSIONED_NAMESPACE_DECL
84 #include /**/ "ace/post.h"
85 #endif /* TAO_SERVANT_DISPATCHER_H */