Servant_Dispatcher.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    Servant_Dispatcher.h
00006  *
00007  *  Servant_Dispatcher.h,v 1.17 2006/04/26 13:22:59 mesnier_p Exp
00008  *
00009  *  @author Frank Hunleth <fhunleth@cs.wustl.edu>
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 /* ACE_LACKS_PRAGMA_ONCE */
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 // Forward references.
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  * @class TAO_Servant_Dispatcher
00047  *
00048  * @brief Interface for POA servant dispatching strategies.
00049  */
00050 class TAO_PortableServer_Export TAO_Servant_Dispatcher
00051 {
00052 public:
00053   virtual ~TAO_Servant_Dispatcher (void);
00054 
00055   /// Pre_invoke remote request.
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   /// Pre_invoke collocated request.
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   /// Post_invoke request.
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   /// Factory method for creating new POA's.
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 /* TAO_SERVANT_DISPATCHER_H */

Generated on Thu Nov 9 12:40:44 2006 for TAO_PortableServer by doxygen 1.3.6