00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file Request_Dispatcher.h 00006 * 00007 * $Id: Request_Dispatcher.h 80140 2007-11-30 00:40:17Z jtc $ 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/Objref_VarOut_T.h" 00022 00023 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00024 # pragma once 00025 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00026 00027 #include "tao/TAO_Export.h" 00028 #include "tao/Pseudo_VarOut_T.h" 00029 00030 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00031 00032 class TAO_ORB_Core; 00033 class TAO_ServerRequest; 00034 00035 namespace CORBA 00036 { 00037 class Object; 00038 typedef TAO_Pseudo_Var_T<Object> Object_var; 00039 typedef TAO_Pseudo_Out_T<Object> Object_out; 00040 } 00041 00042 /** 00043 * @class TAO_Request_Dispatcher 00044 * 00045 * @brief A class that strategizes the request dispatching procedure. 00046 * 00047 */ 00048 class TAO_Export TAO_Request_Dispatcher 00049 { 00050 public: 00051 /// Destructor. 00052 virtual ~TAO_Request_Dispatcher (void); 00053 00054 /** 00055 * Dispatch a request. 00056 */ 00057 virtual void dispatch (TAO_ORB_Core *orb_core, 00058 TAO_ServerRequest &request, 00059 CORBA::Object_out forward_to); 00060 }; 00061 00062 TAO_END_VERSIONED_NAMESPACE_DECL 00063 00064 #include /**/ "ace/post.h" 00065 00066 #endif /* TAO_REQUEST_DISPATCHER_H */