blob: a80cba11a8c9da3c1a942547d3211576cf84ba20 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
//-*- C++ -*-
//=============================================================================
/**
* @file PortableGroup_Request_Dispatcher.h
*
* $Id$
*
* A class that strategizes the request dispatching procedure.
*
* @author Frank Hunleth <fhunleth@cs.wustl.edu>
*/
//=============================================================================
#ifndef TAO_PORTABLEGROUP_REQUEST_DISPATCHER_H
#define TAO_PORTABLEGROUP_REQUEST_DISPATCHER_H
#include "ace/pre.h"
#include "tao/Request_Dispatcher.h"
#include "portablegroup_export.h"
#include "Portable_Group_Map.h"
#include "PortableGroup_Acceptor_Registry.h"
// Forward declarations.
class TAO_PortableGroup_Loader;
/**
* @class PortableGroup_Request_Dispatcher
*
* @brief A class that strategizes the request dispatching procedure.
*
*/
class TAO_PortableGroup_Export PortableGroup_Request_Dispatcher :
public TAO_Request_Dispatcher
{
friend class TAO_POA_Hooks;
public:
/// Destructor.
virtual ~PortableGroup_Request_Dispatcher (void);
/**
* Dispatch a request.
*/
virtual void dispatch (TAO_ORB_Core *orb_core,
TAO_ServerRequest &request,
CORBA::Object_out forward_to
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException));
private:
/// Hash map containing the GroupId->ObjectKey mappings.
TAO_Portable_Group_Map group_map_;
/// Registry for all of the group (multicast) acceptors.
TAO_PortableGroup_Acceptor_Registry acceptor_registry_;
};
#include "ace/post.h"
#endif /* TAO_PORTABLEGROUP_REQUEST_DISPATCHER_H */
|