3 //=============================================================================
5 * @file AMH_Skeletons.h
7 * @author Marcel Smit <msmit@remedy.nl>
9 * @brief Upcall command exection classes for static AMH skeleton methods
11 * This file contains the classes needed to perform an upcall command for
12 * the following static AMH methods.
14 * - _non_existent_skel
16 * - _repository_id_skel
18 * These are the same methods as in PortableServer but placed here since
19 * these methods do contain an invocation to tao_send_reply.
20 * Since we don't want to bother the regular core with AMH stuff,
21 * we put these methods and classes here.
23 //=============================================================================
25 #ifndef AMH_SKELETONS_H
26 #define AMH_SKELETONS_H
28 #include /**/ "ace/pre.h"
30 #include "tao/PortableServer/Upcall_Command.h"
32 #if !defined (ACE_LACKS_PRAGMA_ONCE)
34 #endif /* ACE_LACKS_PRAGMA_ONCE */
36 #include "tao/Messaging/messaging_export.h"
38 #include "tao/PortableServer/Upcall_Wrapper.h"
39 #include "tao/operation_details.h"
41 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
43 class TAO_ServerRequest
;
44 class TAO_ServantBase
;
47 * @class _is_a_amh_Upcall_Command
49 * @brief Execution class for _is_a_skel.
51 class _is_a_amh_Upcall_Command
52 : public TAO::Upcall_Command
55 inline _is_a_amh_Upcall_Command (
56 TAO_ServantBase
* servant
,
57 TAO_Operation_Details
const * operation_details
,
58 TAO::Argument
* const args
[])
60 , operation_details_ (operation_details
)
64 virtual void execute ();
67 TAO_ServantBase
* const servant_
;
68 TAO_Operation_Details
const * const operation_details_
;
69 TAO::Argument
* const * const args_
;
73 * @class _non_existent_amh_Upcall_Command
75 * @brief Execution class for _non_existent_skel.
77 #if (TAO_HAS_MINIMUM_CORBA == 0)
78 class _non_existent_amh_Upcall_Command
79 : public TAO::Upcall_Command
82 inline _non_existent_amh_Upcall_Command (
83 TAO_ServantBase
* servant
,
84 TAO_Operation_Details
const * operation_details
,
85 TAO::Argument
* const args
[])
87 , operation_details_ (operation_details
)
92 virtual void execute ();
94 TAO_ServantBase
* const servant_
;
95 TAO_Operation_Details
const * const operation_details_
;
96 TAO::Argument
* const * const args_
;
99 # if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO)
101 * @class _get_component_amh_Upcall_Command
103 * @brief Execution class for _component_skel.
105 class _get_component_amh_Upcall_Command
106 : public TAO::Upcall_Command
109 inline _get_component_amh_Upcall_Command (
110 TAO_ServantBase
* servant
,
111 TAO_Operation_Details
const * operation_details
,
112 TAO::Argument
* const args
[])
114 , operation_details_ (operation_details
)
119 virtual void execute ();
122 TAO_ServantBase
* const servant_
;
123 TAO_Operation_Details
const * const operation_details_
;
124 TAO::Argument
* const * const args_
;
126 # endif /* !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) */
129 * @class _repository_id_amh_Upcall_Command
131 * @brief Execution class for _repository_id_skel
133 class _repository_id_amh_Upcall_Command
134 : public TAO::Upcall_Command
137 inline _repository_id_amh_Upcall_Command (
138 TAO_ServantBase
* servant
,
139 TAO_Operation_Details
const * operation_details
,
140 TAO::Argument
* const args
[])
142 , operation_details_ (operation_details
)
147 virtual void execute ();
150 TAO_ServantBase
* const servant_
;
151 TAO_Operation_Details
const * const operation_details_
;
152 TAO::Argument
* const * const args_
;
154 #endif /* TAO_HAS_MINIMUM_CORBA */
157 class TAO_Messaging_Export TAO_AMH_Skeletons
160 static void _is_a_amh_skel (TAO_ServerRequest
& server_request
,
161 TAO::Portable_Server::Servant_Upcall
* servant_upcall
,
162 TAO_ServantBase
*servant
);
164 #if (TAO_HAS_MINIMUM_CORBA == 0)
165 static void _non_existent_amh_skel (TAO_ServerRequest
& server_request
,
166 TAO::Portable_Server::Servant_Upcall
* servant_upcall
,
167 TAO_ServantBase
*servant
);
169 # if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO)
170 static void _interface_amh_skel (TAO_ServerRequest
& server_request
,
171 TAO::Portable_Server::Servant_Upcall
* servant_upcall
,
172 TAO_ServantBase
*servant
);
174 static void _component_amh_skel (TAO_ServerRequest
& server_request
,
175 TAO::Portable_Server::Servant_Upcall
* servant_upcall
,
176 TAO_ServantBase
*servant
);
177 # endif /* !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) */
178 static void _repository_id_amh_skel (TAO_ServerRequest
& server_request
,
179 TAO::Portable_Server::Servant_Upcall
* servant_upcall
,
180 TAO_ServantBase
*servant
);
181 #endif /* TAO_HAS_MINIMUM_CORBA */
184 TAO_END_VERSIONED_NAMESPACE_DECL
186 #include /**/ "ace/post.h"
188 #endif /* AMH_SKELETONS_H */