3 // ===================================================================
5 * @file Service_Context_Handler_Registry.h
7 * @author Johnny Willemsen <jwillemsen@remedy.nl>
9 // ===================================================================
11 #ifndef TAO_SERVICE_CONTEXT_HANDLER_REGISTRY_H
12 #define TAO_SERVICE_CONTEXT_HANDLER_REGISTRY_H
14 #include /**/ "ace/pre.h"
18 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
22 #include "ace/Array_Map.h"
24 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
27 class TAO_Service_Context_Handler
;
28 class TAO_Operation_Details
;
29 class TAO_Target_Specification
;
31 class TAO_ServerRequest
;
33 class TAO_Export TAO_Service_Context_Registry
38 ~TAO_Service_Context_Registry ();
41 * Bind a new entry in the registry
43 int bind (IOP::ServiceId id
, TAO_Service_Context_Handler
* handler
);
46 * Retrieve the entry related to @a id
48 TAO_Service_Context_Handler
* operator[] (IOP::ServiceId id
);
50 int process_service_contexts (
51 IOP::ServiceContextList
&sc
,
52 TAO_Transport
&transport
,
53 TAO_ServerRequest
*request
);
55 int generate_service_context (
57 TAO_Transport
& transport
,
58 TAO_Operation_Details
&opdetails
,
59 TAO_Target_Specification
&spec
,
63 typedef ACE_Array_Map
<IOP::ServiceId
,
64 TAO_Service_Context_Handler
*> Table
;
65 typedef Table::key_type key_type
;
66 typedef Table::data_type data_type
;
67 typedef Table::value_type value_type
;
68 typedef Table::size_type size_type
;
69 typedef value_type
* iterator
;
74 TAO_END_VERSIONED_NAMESPACE_DECL
76 #include /**/ "ace/post.h"
78 #endif /* TAO_SERVICE_CONTEXT_HANDLER_REGISTRY_H */