00001 //-*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file PortableGroup_Request_Dispatcher.h 00006 * 00007 * PortableGroup_Request_Dispatcher.h,v 1.10 2006/03/14 06:14:34 jtc 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_PORTABLEGROUP_REQUEST_DISPATCHER_H 00017 #define TAO_PORTABLEGROUP_REQUEST_DISPATCHER_H 00018 00019 #include /**/ "ace/pre.h" 00020 00021 #include "tao/Request_Dispatcher.h" 00022 00023 #include "orbsvcs/PortableGroup/portablegroup_export.h" 00024 #include "orbsvcs/PortableGroup/Portable_Group_Map.h" 00025 #include "orbsvcs/PortableGroup/PortableGroup_Acceptor_Registry.h" 00026 00027 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00028 00029 // Forward declarations. 00030 class TAO_PortableGroup_Loader; 00031 00032 /** 00033 * @class PortableGroup_Request_Dispatcher 00034 * 00035 * @brief A class that strategizes the request dispatching procedure. 00036 * 00037 */ 00038 class TAO_PortableGroup_Export PortableGroup_Request_Dispatcher 00039 : public TAO_Request_Dispatcher 00040 { 00041 friend class TAO_GOA; 00042 00043 public: 00044 00045 /// Destructor. 00046 virtual ~PortableGroup_Request_Dispatcher (void); 00047 00048 /** 00049 * Dispatch a request. 00050 */ 00051 virtual void dispatch (TAO_ORB_Core *orb_core, 00052 TAO_ServerRequest &request, 00053 CORBA::Object_out forward_to 00054 ACE_ENV_ARG_DECL); 00055 00056 private: 00057 00058 /// Hash map containing the GroupId->ObjectKey mappings. 00059 TAO_Portable_Group_Map group_map_; 00060 00061 /// Registry for all of the group (multicast) acceptors. 00062 TAO_PortableGroup_Acceptor_Registry acceptor_registry_; 00063 00064 }; 00065 00066 TAO_END_VERSIONED_NAMESPACE_DECL 00067 00068 #include /**/ "ace/post.h" 00069 00070 #endif /* TAO_PORTABLEGROUP_REQUEST_DISPATCHER_H */