(file) Return to CimomMessage.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

  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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2