00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef TAO_SERVANT_DISPATCHER_H
00014 #define TAO_SERVANT_DISPATCHER_H
00015 #include "ace/pre.h"
00016
00017 #include "tao/PortableServer/portableserver_export.h"
00018
00019 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00020 # pragma once
00021 #endif
00022
00023 #include "tao/PortableServer/Servant_Upcall.h"
00024 #include "ace/SStringfwd.h"
00025
00026 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00027 class ACE_Lock;
00028 ACE_END_VERSIONED_NAMESPACE_DECL
00029
00030 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00031
00032
00033 class TAO_POA_Manager;
00034 class TAO_POA_Policy_Set;
00035 class TAO_Root_POA;
00036 class TAO_ORB_Core;
00037 class TAO_ServerRequest;
00038
00039 namespace PortableServer
00040 {
00041 class POAManager;
00042 typedef POAManager *POAManager_ptr;
00043 }
00044
00045
00046
00047
00048
00049
00050 class TAO_PortableServer_Export TAO_Servant_Dispatcher
00051 {
00052 public:
00053 virtual ~TAO_Servant_Dispatcher (void);
00054
00055
00056 virtual void pre_invoke_remote_request (
00057 TAO_Root_POA &poa,
00058 CORBA::Short servant_priority,
00059 TAO_ServerRequest &req,
00060 TAO::Portable_Server::Servant_Upcall::Pre_Invoke_State &pre_invoke_state
00061 ACE_ENV_ARG_DECL
00062 ) = 0;
00063
00064
00065 virtual void pre_invoke_collocated_request (
00066 TAO_Root_POA &poa,
00067 CORBA::Short servant_priority,
00068 TAO::Portable_Server::Servant_Upcall::Pre_Invoke_State &pre_invoke_state
00069 ACE_ENV_ARG_DECL) = 0;
00070
00071
00072 virtual void post_invoke (
00073 TAO_Root_POA &poa,
00074 TAO::Portable_Server::Servant_Upcall::Pre_Invoke_State &pre_invoke_state) = 0;
00075
00076
00077 virtual TAO_Root_POA *create_Root_POA (
00078 const ACE_CString &name,
00079 PortableServer::POAManager_ptr poa_manager,
00080 const TAO_POA_Policy_Set &policies,
00081 ACE_Lock &lock,
00082 TAO_SYNCH_MUTEX &thread_lock,
00083 TAO_ORB_Core &orb_core,
00084 TAO_Object_Adapter *object_adapter
00085 ACE_ENV_ARG_DECL) = 0;
00086 };
00087
00088 TAO_END_VERSIONED_NAMESPACE_DECL
00089
00090 #include "ace/post.h"
00091 #endif