1 martin 1.38 //%LICENSE////////////////////////////////////////////////////////////////
|
2 martin 1.39 //
|
3 martin 1.38 // Licensed to The Open Group (TOG) under one or more contributor license
4 // agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
5 // this work for additional information regarding copyright ownership.
6 // Each contributor licenses this file to you under the OpenPegasus Open
7 // Source License; you may not use this file except in compliance with the
8 // License.
|
9 martin 1.39 //
|
10 martin 1.38 // Permission is hereby granted, free of charge, to any person obtaining a
11 // copy of this software and associated documentation files (the "Software"),
12 // to deal in the Software without restriction, including without limitation
13 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 // and/or sell copies of the Software, and to permit persons to whom the
15 // Software is furnished to do so, subject to the following conditions:
|
16 martin 1.39 //
|
17 martin 1.38 // The above copyright notice and this permission notice shall be included
18 // in all copies or substantial portions of the Software.
|
19 martin 1.39 //
|
20 martin 1.38 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
21 martin 1.39 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22 martin 1.38 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23 // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24 // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25 // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27 martin 1.39 //
|
28 martin 1.38 //////////////////////////////////////////////////////////////////////////
|
29 mday 1.1 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
32 #ifndef Pegasus_CimomMessage_h
33 #define Pegasus_CimomMessage_h
34
35 #include <Pegasus/Common/Config.h>
|
36 kumpf 1.21 #include <Pegasus/Common/InternalException.h>
|
37 mday 1.1 #include <Pegasus/Common/MessageQueue.h>
38 #include <Pegasus/Common/AsyncOpNode.h>
|
39 kumpf 1.32 #include <Pegasus/Common/Array.h>
|
40 kumpf 1.20 #include <Pegasus/Common/Linkage.h>
|
41 mday 1.1
42 PEGASUS_NAMESPACE_BEGIN
|
43 kumpf 1.31
|
44 mday 1.1 class PEGASUS_COMMON_LINKAGE async_results
45 {
|
46 kumpf 1.31 public:
47 static const Uint32 OK;
|
48 venkat.puvvada 1.36 static const Uint32 CIM_NAK;
|
49 kumpf 1.31 static const Uint32 CIM_SERVICE_STOPPED;
|
50 mday 1.1 };
51
|
52 kumpf 1.33 // Overloaded message types
53 #define ASYNC_HEARTBEAT DUMMY_MESSAGE
54 #define ASYNC_REPLY DUMMY_MESSAGE
|
55 mday 1.1
56
57 class PEGASUS_COMMON_LINKAGE AsyncMessage : public Message
58 {
|
59 kumpf 1.31 public:
60 AsyncMessage(
|
61 kumpf 1.33 MessageType type,
|
62 kumpf 1.31 Uint32 destination,
63 Uint32 mask,
64 AsyncOpNode* operation);
|
65 kumpf 1.28
|
66 kumpf 1.31 virtual ~AsyncMessage();
67
68 AsyncOpNode* op;
|
69 mday 1.1 };
70
71
72 class PEGASUS_COMMON_LINKAGE AsyncRequest : public AsyncMessage
73 {
|
74 kumpf 1.31 public:
75 AsyncRequest(
|
76 kumpf 1.33 MessageType type,
|
77 kumpf 1.31 Uint32 mask,
78 AsyncOpNode* operation,
|
79 venkat.puvvada 1.41 Uint32 destination);
|
80 kumpf 1.31
81 virtual ~AsyncRequest();
|
82 mday 1.1 };
83
84 class PEGASUS_COMMON_LINKAGE AsyncReply : public AsyncMessage
85 {
|
86 kumpf 1.31 public:
87 AsyncReply(
|
88 kumpf 1.33 MessageType type,
|
89 kumpf 1.31 Uint32 mask,
90 AsyncOpNode* operation,
|
91 venkat.puvvada 1.41 Uint32 resultCode);
|
92 mday 1.1
|
93 kumpf 1.31 virtual ~AsyncReply() { }
|
94 mday 1.1
|
95 kumpf 1.31 Uint32 result;
96 };
|
97 mday 1.1
|
98 venkat.puvvada 1.37 class PEGASUS_COMMON_LINKAGE AsyncIoClose : public AsyncRequest
|
99 mday 1.1 {
|
100 kumpf 1.31 public:
|
101 venkat.puvvada 1.37 AsyncIoClose(
|
102 kumpf 1.31 AsyncOpNode* operation,
|
103 venkat.puvvada 1.41 Uint32 destination);
|
104 kumpf 1.31
|
105 venkat.puvvada 1.37 virtual ~AsyncIoClose()
|
106 kumpf 1.31 {
107 }
|
108 mday 1.1 };
109
110 class PEGASUS_COMMON_LINKAGE CimServiceStart : public AsyncRequest
111 {
|
112 kumpf 1.31 public:
113 CimServiceStart(
114 AsyncOpNode* operation,
|
115 venkat.puvvada 1.41 Uint32 destination);
|
116 kumpf 1.31
117 virtual ~CimServiceStart()
118 {
119 }
|
120 mday 1.1 };
121
122 class PEGASUS_COMMON_LINKAGE CimServiceStop : public AsyncRequest
123 {
|
124 kumpf 1.31 public:
125 CimServiceStop(
126 AsyncOpNode* operation,
|
127 venkat.puvvada 1.41 Uint32 destination);
|
128 kumpf 1.31
129 virtual ~CimServiceStop()
130 {
131 }
|
132 mday 1.1 };
133
|
134 kumpf 1.18 class PEGASUS_COMMON_LINKAGE CimProvidersStop : public AsyncRequest
135 {
|
136 kumpf 1.31 public:
137 CimProvidersStop(
138 AsyncOpNode* operation,
|
139 venkat.puvvada 1.41 Uint32 destination);
|
140 kumpf 1.31
141 virtual ~CimProvidersStop()
142 {
143 }
|
144 mday 1.1 };
145
146 class PEGASUS_COMMON_LINKAGE AsyncOperationStart : public AsyncRequest
147 {
|
148 kumpf 1.31 public:
149 AsyncOperationStart(
150 AsyncOpNode* operation,
151 Uint32 destination,
152 Message* action);
153
154 virtual ~AsyncOperationStart()
155 {
156 delete _act;
157 }
158
159 Message* get_action();
160
161 private:
162 friend class MessageQueueService;
163 friend class cimom;
164 Message* _act;
|
165 mday 1.1 };
166
167 class PEGASUS_COMMON_LINKAGE AsyncOperationResult : public AsyncReply
168 {
|
169 kumpf 1.31 public:
170 AsyncOperationResult(
171 AsyncOpNode* operation,
|
172 venkat.puvvada 1.41 Uint32 resultCode);
|
173 kumpf 1.31
174 virtual ~AsyncOperationResult()
175 {
176 }
|
177 mday 1.1 };
|
178 mday 1.16
179
180 class PEGASUS_COMMON_LINKAGE AsyncModuleOperationStart : public AsyncRequest
181 {
|
182 kumpf 1.31 public:
183 AsyncModuleOperationStart(
184 AsyncOpNode* operation,
185 Uint32 destination,
186 const String& targetModule,
187 Message* action);
188
189 virtual ~AsyncModuleOperationStart()
190 {
191 delete _act;
192 }
193
194 Message* get_action();
195
196 private:
197 friend class MessageQueueService;
198 friend class cimom;
199 friend class ModuleController;
200 String _target_module;
201 Message* _act;
|
202 mday 1.16 };
203
204 class PEGASUS_COMMON_LINKAGE AsyncModuleOperationResult : public AsyncReply
205 {
|
206 kumpf 1.31 public:
207 AsyncModuleOperationResult(
208 AsyncOpNode* operation,
209 Uint32 resultCode,
210 const String& targetModule,
211 Message* action);
212
213 virtual ~AsyncModuleOperationResult()
214 {
215 delete _res;
216 }
217
218 Message* get_result();
219
220 private:
221 friend class MessageQueueService;
222 friend class cimom;
223 friend class ModuleController;
224 String _targetModule;
225 Message* _res;
|
226 mday 1.16 };
227
|
228 mday 1.1 class PEGASUS_COMMON_LINKAGE AsyncLegacyOperationStart : public AsyncRequest
229 {
|
230 kumpf 1.31 public:
231 AsyncLegacyOperationStart(
232 AsyncOpNode* operation,
233 Uint32 destination,
|
234 venkat.puvvada 1.34 Message* action);
|
235 kumpf 1.31
236 virtual ~AsyncLegacyOperationStart()
237 {
238 delete _act;
239 }
240
241 Message* get_action();
242
243 private:
244 friend class MessageQueueService;
245 friend class cimom;
246 Message* _act;
|
247 mday 1.1 };
248
249 class PEGASUS_COMMON_LINKAGE AsyncLegacyOperationResult : public AsyncReply
250 {
|
251 kumpf 1.31 public:
252 AsyncLegacyOperationResult(
253 AsyncOpNode* operation,
254 Message* result);
255
256 virtual ~AsyncLegacyOperationResult()
257 {
258 delete _res;
259 }
260
261 Message* get_result();
262
263 private:
264 friend class MessageQueueService;
265 friend class cimom;
266 Message* _res;
|
267 mday 1.1 };
268
269 PEGASUS_NAMESPACE_END
270
|
271 kumpf 1.31 #endif // Pegasus_CimomMessage_h
|