1 martin 1.91 //%LICENSE////////////////////////////////////////////////////////////////
|
2 martin 1.92 //
|
3 martin 1.91 // 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.92 //
|
10 martin 1.91 // 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.92 //
|
17 martin 1.91 // The above copyright notice and this permission notice shall be included
18 // in all copies or substantial portions of the Software.
|
19 martin 1.92 //
|
20 martin 1.91 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
21 martin 1.92 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22 martin 1.91 // 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.92 //
|
28 martin 1.91 //////////////////////////////////////////////////////////////////////////
|
29 brian.campbell 1.67 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
32 #ifndef PegasusDispatcher_Dispatcher_h
33 #define PegasusDispatcher_Dispatcher_h
34
35 #include <Pegasus/Common/Config.h>
36 #include <Pegasus/Common/Thread.h>
37 #include <Pegasus/Common/MessageQueue.h>
38 #include <Pegasus/Common/CIMMessage.h>
39 #include <Pegasus/Common/CIMObject.h>
40 #include <Pegasus/Common/OperationContextInternal.h>
41 #include <Pegasus/Common/QueryExpressionRep.h>
42 #include <Pegasus/Common/AutoPtr.h>
43
44 #include <Pegasus/Repository/CIMRepository.h>
45
46 #include <Pegasus/Server/CIMServer.h>
|
47 kumpf 1.82 #include \
48 <Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h>
|
49 brian.campbell 1.67 #include <Pegasus/Server/Linkage.h>
|
50 venkat.puvvada 1.87 #include <Pegasus/Server/reg_table.h>
|
51 brian.campbell 1.67
52 PEGASUS_NAMESPACE_BEGIN
53
54 // Class to aggregate and manage the information about classes and providers
55 // this simply masks some of the confusion of control providers, etc. today.
56
57 class PEGASUS_SERVER_LINKAGE ProviderInfo
58 {
59 public:
|
60 kumpf 1.86 ProviderInfo(const CIMName& className_)
61 : className(className_),
|
62 venkat.puvvada 1.88 serviceId(0),
|
63 kumpf 1.82 hasProvider(false),
64 hasProviderNormalization(false),
65 hasNoQuery(true)
|
66 brian.campbell 1.67 {
67 }
|
68 chip 1.72
69 ProviderInfo(
|
70 kumpf 1.86 const CIMName& className_,
|
71 venkat.puvvada 1.87 Uint32 serviceId_,
|
72 kumpf 1.86 const String& controlProviderName_)
73 : className(className_),
|
74 venkat.puvvada 1.87 serviceId(serviceId_),
|
75 kumpf 1.86 controlProviderName(controlProviderName_),
|
76 kumpf 1.82 hasProvider(false),
77 hasProviderNormalization(false),
78 hasNoQuery(true)
|
79 brian.campbell 1.67 {
80 }
|
81 chip 1.72
|
82 kumpf 1.82 ProviderInfo(const ProviderInfo& providerInfo)
|
83 chip 1.72 : className(providerInfo.className),
|
84 venkat.puvvada 1.87 serviceId(providerInfo.serviceId),
|
85 kumpf 1.82 controlProviderName(providerInfo.controlProviderName),
86 hasProvider(providerInfo.hasProvider),
|
87 ouyang.jian 1.85 hasProviderNormalization(providerInfo.hasProviderNormalization),
|
88 kumpf 1.82 hasNoQuery(providerInfo.hasNoQuery)
|
89 brian.campbell 1.67 {
90 if (providerInfo.providerIdContainer.get() != 0)
91 {
92 providerIdContainer.reset(
93 new ProviderIdContainer(*providerInfo.providerIdContainer));
94 }
95 }
96
|
97 kumpf 1.82 ProviderInfo& operator=(const ProviderInfo& providerInfo)
|
98 brian.campbell 1.67 {
99 if (&providerInfo != this)
100 {
101 className = providerInfo.className;
|
102 venkat.puvvada 1.87 serviceId = providerInfo.serviceId;
|
103 brian.campbell 1.67 controlProviderName = providerInfo.controlProviderName;
104 hasProvider = providerInfo.hasProvider;
|
105 chip 1.72 hasProviderNormalization = providerInfo.hasProviderNormalization;
|
106 brian.campbell 1.67 hasNoQuery = providerInfo.hasNoQuery;
|
107 chip 1.72
|
108 brian.campbell 1.67 providerIdContainer.reset();
|
109 chip 1.72
|
110 brian.campbell 1.67 if (providerInfo.providerIdContainer.get() != 0)
111 {
|
112 kumpf 1.82 providerIdContainer.reset(new ProviderIdContainer(
113 *providerInfo.providerIdContainer.get()));
|
114 brian.campbell 1.67 }
115 }
|
116 chip 1.72
|
117 kumpf 1.82 return *this;
|
118 brian.campbell 1.67 }
119
|
120 chip 1.72 CIMName className;
|
121 venkat.puvvada 1.87 Uint32 serviceId;
|
122 chip 1.72 String controlProviderName;
123 Boolean hasProvider;
124 Boolean hasProviderNormalization;
125 Boolean hasNoQuery;
|
126 brian.campbell 1.67 AutoPtr<ProviderIdContainer> providerIdContainer;
127
128 private:
|
129 kumpf 1.82 ProviderInfo()
|
130 chip 1.72 {
131 }
|
132 brian.campbell 1.67 };
133
134 /* Class to manage the aggregation of data required by post processors. This
135 class is private to the dispatcher. An instance is created by the operation
136 dispatcher to aggregate request and response information and used by the
137 post processor to aggregate responses together.
138 */
139 class PEGASUS_SERVER_LINKAGE OperationAggregate
140 {
|
141 dave.sudlik 1.78 friend class CIMOperationRequestDispatcher;
|
142 brian.campbell 1.67 public:
|
143 kumpf 1.82 /** Operation Aggregate constructor. Builds an aggregate
|
144 brian.campbell 1.67 object.
145 @param request
146 @param msgRequestType
147 @param messageId
148 @param dest
|
149 kumpf 1.82 @param className
|
150 brian.campbell 1.67 */
151 OperationAggregate(CIMRequestMessage* request,
|
152 kumpf 1.83 MessageType msgRequestType,
|
153 kumpf 1.82 String messageId,
154 Uint32 dest,
155 CIMName className,
156 CIMNamespaceName nameSpace = CIMNamespaceName(),
157 QueryExpressionRep* query = 0,
158 String queryLanguage = String::EMPTY);
|
159 brian.campbell 1.67
160 virtual ~OperationAggregate();
|
161 chip 1.69
|
162 brian.campbell 1.67 // Tests validity by checking the magic number we put into the
163 // packet.
164
165 Boolean valid() const;
166
|
167 kumpf 1.82 // Sets the total issued to the input parameter
|
168 brian.campbell 1.67
169 void setTotalIssued(Uint32 i);
170
171 // Append a new entry to the response list. Return value indicates
172 // whether this response is the last one expected
173
174 Boolean appendResponse(CIMResponseMessage* response);
|
175 chip 1.69
|
176 brian.campbell 1.67 Uint32 numberResponses() const;
177
178 CIMRequestMessage* getRequest();
179
180 CIMResponseMessage* getResponse(const Uint32& pos);
181
182 // allow dispatcher to remove the response so it doesn't become
183 // destroyed when the poA is destroyed.
184
185 CIMResponseMessage* removeResponse(const Uint32& pos);
186
187 void deleteResponse(const Uint32&pos);
188
|
189 kumpf 1.83 MessageType getRequestType() const;
|
190 brian.campbell 1.67
|
191 kumpf 1.82 void resequenceResponse(CIMResponseMessage& response);
|
192 brian.campbell 1.67
193 String _messageId;
|
194 kumpf 1.83 MessageType _msgRequestType;
|
195 brian.campbell 1.67 Uint32 _dest;
196 CIMNamespaceName _nameSpace;
197 CIMName _className;
198 Array<String> propertyList;
199 Uint64 _aggregationSN;
200 QueryExpressionRep* _query;
201 String _queryLanguage;
202
203 private:
204 /** Hidden (unimplemented) copy constructor */
|
205 kumpf 1.77 OperationAggregate(const OperationAggregate& x);
|
206 brian.campbell 1.67
207 Array<CIMResponseMessage*> _responseList;
208 Mutex _appendResponseMutex;
|
209 dave.sudlik 1.78 Mutex _enqueueResponseMutex;
|
210 brian.campbell 1.67 CIMRequestMessage* _request;
211 Uint32 _totalIssued;
212 Uint32 _magicNumber;
|
213 kumpf 1.82 Uint32 _totalReceived;
214 Uint32 _totalReceivedComplete;
215 Uint32 _totalReceivedExpected;
216 Uint32 _totalReceivedErrors;
|
217 a.dunfey 1.75 Uint32 _totalReceivedNotSupported;
|
218 brian.campbell 1.67 };
219
|
220 kumpf 1.82 class PEGASUS_SERVER_LINKAGE CIMOperationRequestDispatcher :
221 public MessageQueueService
|
222 brian.campbell 1.67 {
|
223 kumpf 1.82 friend class QuerySupportRouter;
224 public:
|
225 brian.campbell 1.67
|
226 kumpf 1.82 typedef MessageQueueService Base;
|
227 brian.campbell 1.67
|
228 kumpf 1.82 CIMOperationRequestDispatcher(
229 CIMRepository* repository,
230 ProviderRegistrationManager* providerRegistrationManager);
|
231 brian.campbell 1.67
|
232 kumpf 1.82 virtual ~CIMOperationRequestDispatcher();
|
233 brian.campbell 1.67
|
234 kumpf 1.82 virtual void handleEnqueue(Message*);
|
235 brian.campbell 1.67
|
236 kumpf 1.82 virtual void handleEnqueue();
|
237 brian.campbell 1.67
|
238 kumpf 1.82 void handleGetClassRequest(
239 CIMGetClassRequestMessage* request);
|
240 brian.campbell 1.67
|
241 kumpf 1.82 void handleGetInstanceRequest(
242 CIMGetInstanceRequestMessage* request);
|
243 brian.campbell 1.67
|
244 kumpf 1.82 void handleDeleteClassRequest(
245 CIMDeleteClassRequestMessage* request);
|
246 brian.campbell 1.67
|
247 kumpf 1.82 void handleDeleteInstanceRequest(
248 CIMDeleteInstanceRequestMessage* request);
|
249 brian.campbell 1.67
|
250 kumpf 1.82 void handleCreateClassRequest(
251 CIMCreateClassRequestMessage* request);
|
252 brian.campbell 1.67
|
253 kumpf 1.82 void handleCreateInstanceRequest(
254 CIMCreateInstanceRequestMessage* request);
|
255 brian.campbell 1.67
|
256 kumpf 1.82 void handleModifyClassRequest(
257 CIMModifyClassRequestMessage* request);
|
258 brian.campbell 1.67
|
259 kumpf 1.82 void handleModifyInstanceRequest(
260 CIMModifyInstanceRequestMessage* request);
|
261 brian.campbell 1.67
|
262 kumpf 1.82 void handleEnumerateClassesRequest(
263 CIMEnumerateClassesRequestMessage* request);
|
264 brian.campbell 1.67
|
265 kumpf 1.82 void handleEnumerateClassNamesRequest(
266 CIMEnumerateClassNamesRequestMessage* request);
|
267 brian.campbell 1.67
|
268 kumpf 1.82 void handleEnumerateInstancesRequest(
269 CIMEnumerateInstancesRequestMessage* request);
|
270 brian.campbell 1.67
|
271 kumpf 1.82 void handleEnumerateInstanceNamesRequest(
272 CIMEnumerateInstanceNamesRequestMessage* request);
|
273 brian.campbell 1.67
|
274 kumpf 1.82 void handleAssociatorsRequest(
275 CIMAssociatorsRequestMessage* request);
|
276 brian.campbell 1.67
|
277 kumpf 1.82 void handleAssociatorNamesRequest(
278 CIMAssociatorNamesRequestMessage* request);
|
279 brian.campbell 1.67
|
280 kumpf 1.82 void handleReferencesRequest(
281 CIMReferencesRequestMessage* request);
|
282 brian.campbell 1.67
|
283 kumpf 1.82 void handleReferenceNamesRequest(
284 CIMReferenceNamesRequestMessage* request);
|
285 brian.campbell 1.67
|
286 kumpf 1.82 void handleGetPropertyRequest(
287 CIMGetPropertyRequestMessage* request);
|
288 brian.campbell 1.67
|
289 kumpf 1.82 void handleSetPropertyRequest(
290 CIMSetPropertyRequestMessage* request);
|
291 brian.campbell 1.67
|
292 kumpf 1.82 void handleGetQualifierRequest(
293 CIMGetQualifierRequestMessage* request);
|
294 brian.campbell 1.67
|
295 kumpf 1.82 void handleSetQualifierRequest(
296 CIMSetQualifierRequestMessage* request);
|
297 brian.campbell 1.67
|
298 kumpf 1.82 void handleDeleteQualifierRequest(
299 CIMDeleteQualifierRequestMessage* request);
|
300 brian.campbell 1.67
|
301 kumpf 1.82 void handleEnumerateQualifiersRequest(
302 CIMEnumerateQualifiersRequestMessage* request);
|
303 brian.campbell 1.67
|
304 kumpf 1.82 void handleExecQueryRequest(
305 CIMExecQueryRequestMessage* request);
|
306 brian.campbell 1.67
|
307 kumpf 1.82 void handleInvokeMethodRequest(
308 CIMInvokeMethodRequestMessage* request);
|
309 brian.campbell 1.67
|
310 kumpf 1.82 static void _forwardForAggregationCallback(
311 AsyncOpNode*,
312 MessageQueue*,
313 void*);
|
314 brian.campbell 1.67
|
315 kumpf 1.82 static void _forwardRequestCallback(
316 AsyncOpNode*,
317 MessageQueue*,
318 void*);
|
319 brian.campbell 1.67
|
320 kumpf 1.82 // Response Handler functions
|
321 brian.campbell 1.67
|
322 kumpf 1.82 void handleOperationResponseAggregation(OperationAggregate* poA);
|
323 brian.campbell 1.67
|
324 kumpf 1.82 void handleReferencesResponseAggregation(OperationAggregate* poA);
|
325 brian.campbell 1.67
|
326 kumpf 1.82 void handleReferenceNamesResponseAggregation(OperationAggregate* poA);
|
327 brian.campbell 1.67
|
328 kumpf 1.82 void handleAssociatorsResponseAggregation(OperationAggregate* poA);
|
329 brian.campbell 1.67
|
330 kumpf 1.82 void handleAssociatorNamesResponseAggregation(OperationAggregate* poA);
|
331 brian.campbell 1.67
|
332 kumpf 1.82 void handleEnumerateInstancesResponseAggregation(OperationAggregate* poA);
|
333 brian.campbell 1.67
|
334 kumpf 1.82 void handleEnumerateInstanceNamesResponseAggregation(
335 OperationAggregate* poA);
|
336 brian.campbell 1.67
|
337 kumpf 1.82 void handleExecQueryResponseAggregation(OperationAggregate* poA);
|
338 brian.campbell 1.67
|
339 kumpf 1.82 protected:
340
341 /** _getSubClassNames - Gets the names of all subclasses of the defined
342 class (including the class) and returns it in an array of strings. Uses
343 a similar function in the repository class to get the names.
344 @param namespace
345 @param className
346 @return Array of strings with class names. Note that there should be
347 at least one classname in the array (the input name)
348 Note that there is a special exception to this function, the __namespace
349 class which does not have any representation in the class repository.
350 @exception CIMException(CIM_ERR_INVALID_CLASS)
351 */
|
352 brian.campbell 1.67 Array<CIMName> _getSubClassNames(
353 const CIMNamespaceName& nameSpace,
|
354 david.dillard 1.73 const CIMName& className);
|
355 brian.campbell 1.67
356 Boolean _lookupInternalProvider(
357 const CIMNamespaceName& nameSpace,
358 const CIMName& className,
|
359 venkat.puvvada 1.87 Uint32 &serviceId,
|
360 brian.campbell 1.67 String& provider);
361
|
362 kumpf 1.82 /* Boolean _lookupNewQueryProvider(
|
363 brian.campbell 1.67 const CIMNamespaceName& nameSpace,
364 const CIMName& className,
365 String& serviceName,
366 String& controlProviderName,
|
367 kumpf 1.82 Boolean* notQueryProvider); */
|
368 brian.campbell 1.67
|
369 chip 1.72 ProviderInfo _lookupNewInstanceProvider(
|
370 brian.campbell 1.67 const CIMNamespaceName& nameSpace,
|
371 chip 1.72 const CIMName& className);
|
372 brian.campbell 1.67
|
373 kumpf 1.82 /* String _lookupQueryProvider(
|
374 brian.campbell 1.67 const CIMNamespaceName& nameSpace,
375 const CIMName& className,
|
376 kumpf 1.82 Boolean* notQueryProvider); */
|
377 brian.campbell 1.67
|
378 chip 1.72 ProviderInfo _lookupInstanceProvider(
|
379 brian.campbell 1.67 const CIMNamespaceName& nameSpace,
|
380 chip 1.72 const CIMName& className);
|
381 brian.campbell 1.67
|
382 kumpf 1.82 /* Array<ProviderInfo> _lookupAllQueryProviders(
|
383 brian.campbell 1.67 const CIMNamespaceName& nameSpace,
384 const CIMName& className,
|
385 david.dillard 1.73 Uint32& providerCount); */
|
386 brian.campbell 1.67
|
387 david.dillard 1.73 // @exception CIMException
|
388 brian.campbell 1.67 Array<ProviderInfo> _lookupAllInstanceProviders(
389 const CIMNamespaceName& nameSpace,
390 const CIMName& className,
|
391 david.dillard 1.73 Uint32& providerCount);
|
392 brian.campbell 1.67
393 Array<ProviderInfo> _lookupAllAssociationProviders(
394 const CIMNamespaceName& nameSpace,
395 const CIMObjectPath& objectName,
396 const CIMName& assocClass,
397 const String& role,
398 Uint32& providerCount);
399
400 Boolean _lookupNewAssociationProvider(
401 const CIMNamespaceName& nameSpace,
402 const CIMName& assocClass,
|
403 venkat.puvvada 1.87 Uint32 &serviceId,
|
404 brian.campbell 1.67 String& controlProviderName,
|
405 kumpf 1.82 ProviderIdContainer** container);
|
406 brian.campbell 1.67
407 Array<String> _lookupAssociationProvider(
408 const CIMNamespaceName& nameSpace,
409 const CIMName& assocClass,
|
410 kumpf 1.82 ProviderIdContainer** container);
|
411 brian.campbell 1.67
|
412 kumpf 1.82 String _lookupMethodProvider(
413 const CIMNamespaceName& nameSpace,
414 const CIMName& className,
415 const CIMName& methodName,
416 ProviderIdContainer** providerIdContainer);
|
417 brian.campbell 1.67
|
418 kumpf 1.82 void _forwardRequestToService(
|
419 venkat.puvvada 1.87 Uint32 serviceId,
|
420 brian.campbell 1.67 CIMRequestMessage* request,
|
421 kumpf 1.81 CIMRequestMessage* requestCopy);
|
422 brian.campbell 1.67
|
423 kumpf 1.82 void _forwardRequestForAggregation(
|
424 venkat.puvvada 1.87 Uint32 serviceId,
|
425 brian.campbell 1.67 const String& controlProviderName,
426 CIMRequestMessage* request,
427 OperationAggregate* poA,
|
428 kumpf 1.82 CIMResponseMessage* response = 0);
|
429 brian.campbell 1.67
|
430 kumpf 1.82 void _forwardRequestToProviderManager(
|
431 brian.campbell 1.67 const CIMName& className,
|
432 venkat.puvvada 1.87 Uint32 serviceId,
|
433 brian.campbell 1.67 const String& controlProviderName,
|
434 kumpf 1.81 CIMRequestMessage* request,
435 CIMRequestMessage* requestCopy);
|
436 brian.campbell 1.67
|
437 kumpf 1.82 void _getProviderName(
|
438 kumpf 1.81 const OperationContext& context,
439 String& moduleName,
440 String& providerName);
441
|
442 kumpf 1.82 void _logOperation(
443 const CIMRequestMessage* request,
444 const CIMResponseMessage* response);
445
446 Boolean _enqueueResponse(
447 OperationAggregate*& poA,
448 CIMResponseMessage*& response);
|
449 kumpf 1.81
|
450 kumpf 1.82 void _enqueueResponse(
451 CIMRequestMessage* request,
452 CIMResponseMessage* response);
|
453 brian.campbell 1.67
|
454 kumpf 1.82 CIMValue _convertValueType(const CIMValue& value, CIMType type);
|
455 brian.campbell 1.67
|
456 kumpf 1.82 void _fixInvokeMethodParameterTypes(CIMInvokeMethodRequestMessage* request);
|
457 brian.campbell 1.67
|
458 kumpf 1.82 void _fixSetPropertyValueType(CIMSetPropertyRequestMessage* request);
|
459 brian.campbell 1.67
|
460 kumpf 1.84 /**
461 Checks whether the specified class is defined in the specified
462 namespace.
463 @param nameSpace The namespace to check for className.
464 @param className The name of the class to check for in nameSpace.
465 @return True if the specified class is defined in the specified
466 namespace, false otherwise.
467 */
468 Boolean _checkExistenceOfClass(
469 const CIMNamespaceName& nameSpace,
470 const CIMName& className);
471
|
472 mike 1.90 CIMConstClass _getClass(
|
473 kumpf 1.82 const CIMNamespaceName& nameSpace,
474 const CIMName& className,
475 CIMException& cimException);
|
476 brian.campbell 1.67
|
477 kumpf 1.84 /**
478 Checks whether the number of providers required to complete an
479 operation is greater than the maximum allowed.
480 @param nameSpace The target namespace of the operation.
481 @param className The name of the class specified in the request.
482 @param providerCount The number of providers required to complete the
483 operation.
484 @exception CIMException if the providerCount is greater than the
485 maximum allowed.
486 */
487 void _checkEnumerateTooBroad(
|
488 kumpf 1.82 const CIMNamespaceName& nameSpace,
489 const CIMName& className,
|
490 kumpf 1.84 Uint32 providerCount);
|
491 chip 1.69
|
492 kumpf 1.82 CIMRepository* _repository;
|
493 brian.campbell 1.67
|
494 kumpf 1.82 ProviderRegistrationManager* _providerRegistrationManager;
|
495 brian.campbell 1.67
|
496 kumpf 1.82 Boolean _enableAssociationTraversal;
497 Boolean _enableIndicationService;
498 Uint32 _maximumEnumerateBreadth;
499 static Uint64 cimOperationAggregationSN;
|
500 venkat.puvvada 1.87 Uint32 _providerManagerServiceId;
|
501 kumpf 1.82 #ifdef PEGASUS_ENABLE_OBJECT_NORMALIZATION
502 Array<String> _excludeModulesFromNormalization;
503 #endif
|
504 brian.campbell 1.67
|
505 kumpf 1.82 // << Tue Feb 12 08:48:09 2002 mdd >> meta dispatcher integration
506 virtual void _handle_async_request(AsyncRequest* req);
|
507 brian.campbell 1.67
|
508 kumpf 1.82 // the following two methods enable specific query language implementations
|
509 brian.campbell 1.67
|
510 kumpf 1.82 /* void handleQueryRequest(
511 CIMExecQueryRequestMessage* request);
|
512 chip 1.71
|
513 kumpf 1.82 void handleQueryResponseAggregation(
514 OperationAggregate* poA);
|
515 brian.campbell 1.67
|
516 kumpf 1.82 void applyQueryToEnumeration(CIMResponseMessage* msg,
517 QueryExpressionRep* query);
518 */
|
519 brian.campbell 1.67
|
520 kumpf 1.82 private:
521 static void _handle_enqueue_callback(AsyncOpNode*, MessageQueue*, void*);
|
522 brian.campbell 1.67
|
523 venkat.puvvada 1.87 DynamicRoutingTable *_routing_table;
|
524 brian.campbell 1.67 };
525
526 PEGASUS_NAMESPACE_END
527
528 #endif /* PegasusDispatcher_Dispatcher_h */
|