00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file Request_Dispatcher.h 00006 * 00007 * Request_Dispatcher.h,v 1.11 2006/06/19 14:51:11 parsons Exp 00008 * 00009 * A class that strategizes the request dispatching procedure. 00010 * 00011 * @author Frank Hunleth <fhunleth@cs.wustl.edu> 00012 */ 00013 //============================================================================= 00014 00015 00016 #ifndef TAO_REQUEST_DISPATCHER_H 00017 #define TAO_REQUEST_DISPATCHER_H 00018 00019 #include /**/ "ace/pre.h" 00020 00021 #include "tao/SystemException.h" 00022 00023 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00024 # pragma once 00025 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00026 00027 #include "tao/Objref_VarOut_T.h" 00028 #include "tao/Pseudo_VarOut_T.h" 00029 00030 00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00032 00033 class TAO_ORB_Core; 00034 class TAO_ServerRequest; 00035 00036 namespace CORBA 00037 { 00038 class Object; 00039 typedef TAO_Pseudo_Var_T<Object> Object_var; 00040 typedef TAO_Pseudo_Out_T<Object> Object_out; 00041 } 00042 00043 /** 00044 * @class TAO_Request_Dispatcher 00045 * 00046 * @brief A class that strategizes the request dispatching procedure. 00047 * 00048 */ 00049 class TAO_Export TAO_Request_Dispatcher 00050 { 00051 public: 00052 /// Destructor. 00053 virtual ~TAO_Request_Dispatcher (void); 00054 00055 /** 00056 * Dispatch a request. 00057 */ 00058 virtual void dispatch (TAO_ORB_Core *orb_core, 00059 TAO_ServerRequest &request, 00060 CORBA::Object_out forward_to 00061 ACE_ENV_ARG_DECL); 00062 }; 00063 00064 TAO_END_VERSIONED_NAMESPACE_DECL 00065 00066 #include /**/ "ace/post.h" 00067 00068 #endif /* TAO_REQUEST_DISPATCHER_H */