=default for generated implementation copy ctor
[ACE_TAO.git] / TAO / tao / Messaging / AMH_Skeletons.h
blobfa6aa742f03ec98186e9707a450ba937cf5ba821
1 // -*- C++ -*-
3 //=============================================================================
4 /**
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.
13 * - _is_a_skel
14 * - _non_existent_skel
15 * - _component_skel
16 * - _repository_id_skel
17 * - _interface_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)
33 # 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;
46 /**
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
54 public:
55 inline _is_a_amh_Upcall_Command (
56 TAO_ServantBase * servant,
57 TAO_Operation_Details const * operation_details,
58 TAO::Argument * const args[])
59 : servant_ (servant)
60 , operation_details_ (operation_details)
61 , args_ (args)
64 virtual void execute ();
66 private:
67 TAO_ServantBase * const servant_;
68 TAO_Operation_Details const * const operation_details_;
69 TAO::Argument * const * const args_;
72 /**
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
81 public:
82 inline _non_existent_amh_Upcall_Command (
83 TAO_ServantBase * servant,
84 TAO_Operation_Details const * operation_details,
85 TAO::Argument * const args[])
86 : servant_ (servant)
87 , operation_details_ (operation_details)
88 , args_ (args)
92 virtual void execute ();
93 private:
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
108 public:
109 inline _get_component_amh_Upcall_Command (
110 TAO_ServantBase * servant,
111 TAO_Operation_Details const * operation_details,
112 TAO::Argument * const args[])
113 : servant_ (servant)
114 , operation_details_ (operation_details)
115 , args_ (args)
119 virtual void execute ();
121 private:
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
136 public:
137 inline _repository_id_amh_Upcall_Command (
138 TAO_ServantBase * servant,
139 TAO_Operation_Details const * operation_details,
140 TAO::Argument * const args[])
141 : servant_ (servant)
142 , operation_details_ (operation_details)
143 , args_ (args)
147 virtual void execute ();
149 private:
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
159 public:
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 */