1 karl 1.65 //%2005////////////////////////////////////////////////////////////////////////
|
2 kumpf 1.1 //
|
3 karl 1.63 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
4 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
5 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
|
6 karl 1.47 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.63 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
|
9 karl 1.65 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 kumpf 1.1 //
12 // Permission is hereby granted, free of charge, to any person obtaining a copy
13 // of this software and associated documentation files (the "Software"), to
14 // deal in the Software without restriction, including without limitation the
15 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
16 // sell copies of the Software, and to permit persons to whom the Software is
17 // furnished to do so, subject to the following conditions:
|
18 kumpf 1.27 //
|
19 kumpf 1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
20 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
21 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
22 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
23 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
24 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
25 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 //==============================================================================
29 //
30 // Author: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
31 //
32 // Modified By: Carol Ann Krug Graves, Hewlett-Packard Company
|
33 kumpf 1.39 // (carolann_graves@hp.com)
34 // Ben Heilbronn, Hewlett-Packard Company (ben_heilbronn@hp.com)
35 // Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
|
36 kumpf 1.1 //
37 //%/////////////////////////////////////////////////////////////////////////////
38
39 #ifndef Pegasus_IndicationService_h
40 #define Pegasus_IndicationService_h
41
42 #include <Pegasus/Common/Config.h>
43 #include <Pegasus/Common/MessageQueueService.h>
44 #include <Pegasus/Common/CIMMessage.h>
|
45 kumpf 1.24 #include <Pegasus/Common/IPC.h>
|
46 kumpf 1.54 #include <Pegasus/Common/AcceptLanguages.h> // l10n
47 #include <Pegasus/Common/ContentLanguages.h> // l10n
|
48 kumpf 1.6 #include <Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h>
|
49 kumpf 1.54 #include <Pegasus/Server/Linkage.h>
|
50 chuck 1.64 #include <Pegasus/Query/QueryExpression/QueryExpression.h>
|
51 kumpf 1.1
|
52 kumpf 1.41 #include "ProviderClassList.h"
53 #include "IndicationOperationAggregate.h"
54
|
55 kumpf 1.1 PEGASUS_NAMESPACE_BEGIN
56
|
57 kumpf 1.54 class SubscriptionRepository;
58 class SubscriptionTable;
|
59 kumpf 1.1
60 /**
61
|
62 kumpf 1.5 IndicationService class is the service that serves the
|
63 kumpf 1.10 Indication Subscription, Indication Filter, and Indication Handler
|
64 kumpf 1.5 classes, and processes indications.
|
65 kumpf 1.1
66 @author Hewlett-Packard Company
67
68 */
69
70 class PEGASUS_SERVER_LINKAGE IndicationService : public MessageQueueService
71 {
72 public:
73
74 /**
75 Constructs an IndicationSubscription instance and initializes instance
76 variables.
77 */
|
78 kumpf 1.6 IndicationService (
79 CIMRepository * repository,
|
80 kumpf 1.8 ProviderRegistrationManager * providerRegManager);
|
81 kumpf 1.1
82 virtual ~IndicationService(void);
83
|
84 mday 1.2 void handleEnqueue(Message* message);
|
85 kumpf 1.1
86 virtual void handleEnqueue(void);
87
88 virtual void _handle_async_request(AsyncRequest *req);
89
|
90 kumpf 1.54 /**
91 Gets a String containing the Provider Name, for use in a log message to
92 identify the provider.
93
94 @param provider provider instance
95
96 @return String containing the Provider Name
97 */
98 static String getProviderLogString
99 (CIMInstance & provider);
100
|
101 kumpf 1.1 AtomicInt dienow;
102
103 /**
|
104 kumpf 1.5 Operation types for the NotifyProviderRegistration message
|
105 kumpf 1.1 */
|
106 kumpf 1.5 enum Operation {OP_CREATE = 1, OP_DELETE = 2, OP_MODIFY = 3};
|
107 kumpf 1.24
108 static Mutex _mutex;
|
109 kumpf 1.1
|
110 kumpf 1.5 private:
|
111 kumpf 1.1
112 void _initialize (void);
113
114 void _terminate (void);
115
116 void _handleGetInstanceRequest(const Message * message);
117
118 void _handleEnumerateInstancesRequest(const Message * message);
119
120 void _handleEnumerateInstanceNamesRequest(const Message * message);
121
122 void _handleCreateInstanceRequest(const Message * message);
123
124 void _handleModifyInstanceRequest(const Message * message);
125
126 void _handleDeleteInstanceRequest(const Message * message);
127
128 void _handleProcessIndicationRequest(const Message * message);
129
130 /**
|
131 kumpf 1.57 Asynchronous callback function for _handleProcessIndicationRequest.
132 The response from the Handler is checked, and if it is not success, the
133 subscription's On Fatal Error Policy is implemented.
134
135 @param operation shared data structure that controls message
136 processing
137 @param destination target queue of completion callback
138 @param userParameter user parameter for callback processing
139 */
140 static void _handleIndicationCallBack (
141 AsyncOpNode * operation,
142 MessageQueue * destination,
143 void * userParameter);
144
145 /**
|
146 kumpf 1.1 Notifies the Indication Service that a change in provider registration
147 has occurred. The Indication Service retrieves the subscriptions
|
148 kumpf 1.23 affected by the registration change, sends the appropriate Create,
149 Modify, and/or Delete requests to the provider, and sends an alert to
|
150 kumpf 1.10 handler instances of subscriptions that are no longer served by the
151 provider.
|
152 kumpf 1.1 */
153 void _handleNotifyProviderRegistrationRequest(const Message * message);
154
155 /**
|
156 kumpf 1.33 Notifies the Indication Service that a provider has been disabled.
|
157 kumpf 1.51 The Indication Service retrieves the subscriptions served by the
158 disabled provider, and logs a message for each subscription that is no
159 longer served by the provider.
|
160 kumpf 1.1 */
161 void _handleNotifyProviderTerminationRequest(const Message * message);
162
163 /**
|
164 kumpf 1.51 Notifies the Indication Service that a provider has been enabled.
165 The Indication Service retrieves the subscriptions that can be served
166 by the enabled provider, sends Create Subscription and Enable
167 Indications requests to the provider, and logs a message for each
168 subscription that is now served by the provider.
169 */
170 void _handleNotifyProviderEnableRequest (const Message * message);
171
172 /**
|
173 kumpf 1.5 Determines if it is legal to create an instance.
174 Checks for existence of all key and required properties. Checks that
175 properties that MUST NOT exist (based on values of other properties),
176 do not exist. For any property that has a default value, if it does
177 not exist, adds the property with the default value.
178
179 @param instance instance to be created
180 @param nameSpace namespace for instance to be created
181
182 @throw CIM_ERR_INVALID_PARAMETER if instance is invalid
183 @throw CIM_ERR_NOT_SUPPORTED if the specified class is not
184 supported
185
|
186 kumpf 1.54 @return True, if the instance can be created;
|
187 kumpf 1.10 Otherwise throws an exception
|
188 kumpf 1.5 */
189 Boolean _canCreate (
190 CIMInstance & instance,
|
191 kumpf 1.31 const CIMNamespaceName & nameSpace);
|
192 kumpf 1.5
|
193 kumpf 1.21 /**
194 Validates the specified required property in the instance.
|
195 kumpf 1.56 If the property does not exist, or has a null value, or is not of the
196 expected type, an exception is thrown, using the specified message.
|
197 kumpf 1.21
198 This function is called by the _canCreate function, and is used to
199 validate the Filter and Handler properties in Subscription instances,
|
200 carolann.graves 1.62 the Name, Query and Query Language properties in
201 Filter instances, the Name and Destination
202 properties in CIMXML Handler instances, and the Name,
|
203 kumpf 1.21 Trap Destination, and SNMP Version properties in SNMP Mapper instances.
204
205 @param instance instance to be validated
206 @param propertyName name of property to be validated
|
207 kumpf 1.56 @param expectedType expected CIMType of property value
|
208 kumpf 1.21 @param message message to be used in exception
209
210 @throw CIM_ERR_INVALID_PARAMETER if required property is missing or
211 null
212 */
|
213 kumpf 1.20 void _checkRequiredProperty (
214 CIMInstance & instance,
|
215 kumpf 1.31 const CIMName & propertyName,
|
216 kumpf 1.56 const CIMType expectedType,
|
217 kumpf 1.20 const String & message);
218
|
219 kumpf 1.5 /**
|
220 kumpf 1.15 Validates the specified property and its corresponding Other___
221 property in the instance.
222 If the property does not exist, it is added with the default value.
223 If the property exists, but its value is NULL, its value is set to
224 the default value.
225 If the value of the property is Other, but the corresponding Other___
|
226 kumpf 1.56 property either does not exist, has a value of NULL, or is not of the
227 correct type, an exception is thrown.
|
228 kumpf 1.15 If the value of the property is not Other, but the corresponding
229 Other___ property exists and has a non-NULL value, an exception is
230 thrown.
|
231 kumpf 1.56 If the value of the property is not a supported value, an exception is
232 thrown.
|
233 kumpf 1.15 This function is called by the _canCreate function, and is used to
234 validate the following pairs of properties in Subscription or Handler
235 instances: Subscription State, Other Subscription State, Repeat
236 Notification Policy, Other Repeat Notification Policy, On Fatal Error
237 Policy, Other On Fatal Error Policy, Persistence Type, Other
238 Persistence Type.
239
240 @param instance instance to be validated
241 @param propertyName name of property to be validated
242 @param otherPropertyName name of Other___ property to be validated
243 @param defaultValue default value for property
244 @param otherValue "Other" value for property
|
245 kumpf 1.19 @param validValues set of valid values for property
|
246 kumpf 1.55 @param supportedValues set of supported values for property
|
247 kumpf 1.15
248 @throw CIM_ERR_INVALID_PARAMETER if value of property or Other___
249 property is invalid
250 */
|
251 kumpf 1.20 void _checkPropertyWithOther (
|
252 kumpf 1.15 CIMInstance & instance,
|
253 kumpf 1.31 const CIMName & propertyName,
254 const CIMName & otherPropertyName,
|
255 kumpf 1.15 const Uint16 defaultValue,
|
256 kumpf 1.19 const Uint16 otherValue,
|
257 kumpf 1.55 const Array <Uint16> & validValues,
258 const Array <Uint16> & supportedValues);
|
259 kumpf 1.20
|
260 kumpf 1.21 /**
261 Validates the specified property in the instance.
262 If the property does not exist, it is added with the default value.
263 If the property exists, but its value is NULL, its value is set to
264 the default value.
265 This function is called by the _canCreate function, and is used to
|
266 carolann.graves 1.62 validate the Source Namespace property in Filter instances.
|
267 kumpf 1.21
|
268 kumpf 1.56 Note: currently all properties validated by this function are of type
269 String. To use this function in the future with properties of other
270 types, a type parameter would need to be added, and the default value
271 would need to be passed as a CIMValue instead of a String.
272
|
273 kumpf 1.21 @param instance instance to be validated
274 @param propertyName name of property to be validated
275 @param defaultValue default value for property
276
277 @return the value of the property
278 */
|
279 kumpf 1.20 String _checkPropertyWithDefault (
280 CIMInstance & instance,
|
281 kumpf 1.31 const CIMName & propertyName,
|
282 kumpf 1.20 const String & defaultValue);
|
283 kumpf 1.56
284 /**
285 Validates the specified property in the instance.
|
286 carolann.graves 1.62 If the property does not exist, it is added with the default value.
287 If the property exists, but its value is NULL, its value is set to
288 the default value.
289 If the property exists and has a non-NULL value, its value is validated
290 against the default (expected) value. If the value is invalid, an
291 exception is thrown.
292 This function is called by the _canCreate function, and is used to
293 validate the Creation Class Name, System Name and System Creation Class
294 Name properties in Filter and Handler instances.
295
296 Note: currently all properties validated by this function are of type
297 String. To use this function in the future with properties of other
298 types, a type parameter would need to be added, and the default value
299 would need to be passed as a CIMValue instead of a String.
300
301 @param instance instance to be validated
302 @param propertyName name of property to be validated
303 @param defaultValue default value for property
304
305 @return the value of the property
306 */
307 carolann.graves 1.62 String _initOrValidateStringProperty (
308 CIMInstance & instance,
309 const CIMName & propertyName,
310 const String & defaultValue);
311
312 /**
313 Validates the specified property in the instance.
|
314 kumpf 1.56 If the property exists and its value is not NULL, but it is not of
315 the correct type, an exception is thrown.
316 This function is called by the _canCreate function. It is used to
317 validate the FailureTriggerTimeInterval, TimeOfLastStateChange,
318 SubscriptionDuration, SubscriptionStartTime, SubscriptionTimeRemaining,
319 RepeatNotificationInterval, RepeatNotificationGap, and
320 RepeatNotificationCount properties in Subscription instances, the Owner
321 property in Handler instances, and the PortNumber, SNMPSecurityName,
322 and SNMPEngineID properties in SNMP Mapper Handler instances.
323
324 @param instance instance to be validated
325 @param propertyName name of property to be validated
326 @param expectedType expected CIMType for property
327
328 @throw CIM_ERR_INVALID_PARAMETER if property exists and is not null
329 but is not of the correct type
330 */
331 void _checkProperty (
332 CIMInstance & instance,
333 const CIMName & propertyName,
334 const CIMType expectedType);
|
335 kumpf 1.15
336 /**
|
337 kumpf 1.10 Determines if the user is authorized to modify the instance, and if the
338 specified modification is supported. Currently, the only modification
339 supported is of the Subscription State property of the Subscription
340 class.
|
341 kumpf 1.5
342 @param request modification request
343 @param instance instance to be modified
|
344 kumpf 1.37 @param modifiedInstance modified instance
|
345 kumpf 1.5
|
346 kumpf 1.10 @throw CIM_ERR_NOT_SUPPORTED if the specified modification is
|
347 kumpf 1.5 not supported
348 @throw CIM_ERR_ACCESS_DENIED if the user is not authorized to
349 modify the instance
|
350 kumpf 1.37 @throw CIM_ERR_INVALID_PARAMETER if the modifiedInstance is invalid
|
351 kumpf 1.5
|
352 kumpf 1.54 @return True, if the instance can be modified;
|
353 kumpf 1.10 Otherwise throws an exception
|
354 kumpf 1.5 */
355 Boolean _canModify (
356 const CIMModifyInstanceRequestMessage * request,
|
357 kumpf 1.25 const CIMObjectPath & instanceReference,
|
358 kumpf 1.37 const CIMInstance & instance,
359 CIMInstance & modifiedInstance);
|
360 kumpf 1.5
361 /**
|
362 kumpf 1.10 Determines if the user is authorized to delete the instance, and if it
|
363 kumpf 1.11 is legal to delete the instance. If authorized, Subscription instances
|
364 kumpf 1.10 may always be deleted. Filter and non-transient Handler instances may
365 only be deleted if they are not being referenced by any Subscription
366 instances. If the instance to be deleted is a transient Handler, any
367 referencing Subscriptions are also deleted.
|
368 kumpf 1.5
369 @param instanceReference reference for instance to be deleted
370 @param nameSpace namespace for instance to be deleted
|
371 kumpf 1.10 @param currentUser current user
372
373 @throw CIM_ERR_ACCESS_DENIED if the user is not authorized to
374 delete the instance
375 @throw CIM_ERR_FAILED if the instance to be deleted is
376 referenced by a subscription
|
377 kumpf 1.5
|
378 kumpf 1.54 @return True, if the instance can be deleted;
|
379 kumpf 1.10 Otherwise throws an exception
|
380 kumpf 1.1 */
381 Boolean _canDelete (
|
382 kumpf 1.25 const CIMObjectPath & instanceReference,
|
383 kumpf 1.31 const CIMNamespaceName & nameSpace,
|
384 kumpf 1.10 const String & currentUser);
|
385 kumpf 1.1
386 /**
387 Retrieves list of enabled subscription instances in all namespaces,
388 where the subscription indication class matches or is a superclass
|
389 kumpf 1.10 of the supported class, and the properties required to process the
390 subscription are all contained in the list of supported properties.
|
391 kumpf 1.42 If the checkProvider parameter value is True, a subscription is only
392 included in the list returned if the specified provider accepted the
393 subscription. If the checkProvider parameter value is False, the
394 provider parameter is not used (ignored).
|
395 kumpf 1.1
|
396 kumpf 1.10 @param supportedClass the supported class
397 @param nameSpaces the list of supported namespaces
398 @param supportedProperties the list of supported properties
|
399 kumpf 1.42 @param checkProvider indicates whether provider acceptance is
400 checked
401 @param provider the provider (used if checkProvider True)
|
402 kumpf 1.1
|
403 kumpf 1.26 @return list of CIMInstance subscriptions
|
404 kumpf 1.1 */
|
405 kumpf 1.26 Array <CIMInstance> _getMatchingSubscriptions (
|
406 kumpf 1.31 const CIMName & supportedClass,
407 const Array <CIMNamespaceName> nameSpaces,
|
408 kumpf 1.42 const CIMPropertyList & supportedProperties,
|
409 kumpf 1.43 const Boolean checkProvider = false,
|
410 kumpf 1.42 const CIMInstance & provider = CIMInstance ());
|
411 kumpf 1.1
412 /**
413 Retrieves lists of enabled subscription instances in all namespaces
414 that are either newly supported or previously supported, based on the
|
415 kumpf 1.9 supported class, the supported namespaces before and after modification,
416 and the supported properties before and after modification. For
|
417 kumpf 1.10 subscriptions based on the supported class, the newSubscriptions list
|
418 kumpf 1.9 returned contains the subscriptions for which the properties required
419 to process the subscription are all contained in the new list of
420 supported properties, but are not all contained in the old list of
421 supported properties, and/or the filter source namespace is contained in
422 the new list if supported namespaces, but is not contained in the old
423 list of supported namespaces. The formerSubscriptions list returned
424 contains the subscriptions for which the properties required to process
425 the subscription are not all contained in the new list of supported
426 properties, but are all contained in the old list of supported
427 properties, and/or the filter source namespace is not contained in the
428 new list if supported namespaces, but is contained in the old list of
429 supported namespaces.
430
|
431 kumpf 1.10 @param supportedClass the supported class
|
432 kumpf 1.9 @param newNameSpaces namespaces supported after modification
433 @param oldNameSpaces namespaces supported before modification
434 @param newProperties properties supported after modification
435 @param oldProperties properties supported before modification
|
436 kumpf 1.1 @param newSubscriptions the list of newly supported subscriptions
437 @param formerSubscriptions the list of previously supported
438 subscriptions
439 */
440 void _getModifiedSubscriptions (
|
441 kumpf 1.31 const CIMName & supportedClass,
442 const Array <CIMNamespaceName> & newNameSpaces,
443 const Array <CIMNamespaceName> & oldNameSpaces,
|
444 kumpf 1.1 const CIMPropertyList & newProperties,
445 const CIMPropertyList & oldProperties,
|
446 kumpf 1.26 Array <CIMInstance> & newSubscriptions,
447 Array <CIMInstance> & formerSubscriptions);
|
448 kumpf 1.1
449 /**
|
450 kumpf 1.9 Determines if all of the required properties in the specified list
451 are contained in the specified list of supported properties.
452
453 @param requiredProperties the required properties
|
454 kumpf 1.10 @param supportedProperties the supported properties
|
455 kumpf 1.9
|
456 kumpf 1.54 @return true, if all required properties are supported;
|
457 kumpf 1.9 false otherwise
458 */
459 Boolean _inPropertyList (
460 const CIMPropertyList & requiredProperties,
|
461 kumpf 1.10 const CIMPropertyList & supportedProperties);
|
462 kumpf 1.9
463 /**
|
464 chuck 1.64 Builds a QueryExpression from the filter query string,
465 the query language name, and the namespace in which the query
466 is to be run.
|
467 kumpf 1.1
468 @param filterQuery the filter query string
|
469 chuck 1.64 @param queryLanguage the query language name
470 @param ns query namespace
|
471 kumpf 1.1
|
472 chuck 1.64 @return QueryExpression representing the filter query
|
473 kumpf 1.1 */
|
474 chuck 1.64 QueryExpression _getQueryExpression (const String& filterQuery,
475 const String& queryLanguage,
476 const CIMNamespaceName ns) const;
|
477 kumpf 1.1
478 /**
|
479 chuck 1.64 Extracts the indication class name from the specified query expression
480 (WQL or CQL), and validates that the name represents a subclass of the
|
481 kumpf 1.1 Indication class.
482
|
483 chuck 1.64 @param queryExpression the query expression
|
484 kumpf 1.1 @param nameSpaceName the namespace
485
486 @return String containing the indication class name
487 */
|
488 kumpf 1.31 CIMName _getIndicationClassName (
|
489 chuck 1.64 const QueryExpression & queryExpression,
|
490 kumpf 1.31 const CIMNamespaceName & nameSpaceName) const;
|
491 kumpf 1.15
492 /**
|
493 kumpf 1.1 Retrieves the list of indication providers that serve the specified
494 indication subclasses.
495
|
496 chuck 1.64 @param queryExpression the query expression
497 @param nameSpace the namespace name
|
498 kumpf 1.1 @param indicationClassName the indication class name
499 @param indicationSubclasses the list of indication subclass names
500
501 @return list of ProviderClassList structs
502 */
|
503 kumpf 1.10 Array <ProviderClassList> _getIndicationProviders (
|
504 chuck 1.64 const QueryExpression & queryExpression,
|
505 kumpf 1.31 const CIMNamespaceName & nameSpace,
506 const CIMName & indicationClassName,
|
507 chuck 1.64 const Array <CIMName> & indicationSubclasses) const;
|
508 kumpf 1.1
509 /**
510 Retrieves the list of properties referenced by the specified
|
511 chuck 1.64 filter query expression.
|
512 kumpf 1.1
|
513 chuck 1.64 @param queryExpression the query expression
|
514 kumpf 1.22 @param nameSpaceName the namespace
|
515 chuck 1.64 @param indicationClassName the indication class name
|
516 kumpf 1.1
|
517 kumpf 1.22 @return CIMPropertyList of properties referenced by the filter query
|
518 chuck 1.64 expression
|
519 kumpf 1.1 */
520 CIMPropertyList _getPropertyList (
|
521 chuck 1.64 const QueryExpression & queryExpression,
|
522 kumpf 1.31 const CIMNamespaceName & nameSpaceName,
523 const CIMName & indicationClassName) const;
|
524 kumpf 1.22
525 /**
526 Checks if the property list includes all properties in the specified
527 class. If so, a NULL CIMPropertyList is returned. Otherwise, a
|
528 carolann.graves 1.60 CIMPropertyList containing the properties is returned. The list of
529 property names in the specified indication class is also returned in
530 the indicationClassProperties parameter.
531
532 @param propertyList the list of property names
533 @param nameSpaceName the namespace
534 @param indicationClassName the indication class name
535 @param indicationClassProperties the list of property names in the
536 specified indication class
|
537 kumpf 1.22
538 @return CIMPropertyList of properties referenced by the filter query
539 select statement
540 */
541 CIMPropertyList _checkPropertyList (
|
542 kumpf 1.29 const Array <CIMName> & propertyList,
|
543 kumpf 1.31 const CIMNamespaceName & nameSpaceName,
|
544 carolann.graves 1.60 const CIMName & indicationClassName,
545 Array <CIMName> & indicationClassProperties) const;
|
546 kumpf 1.1
547 /**
548 Extracts the condition (WHERE Clause) from the specified filter query
549 string.
550
551 @param filterQuery the filter query
552
553 @return String containing the filter query condition
554 */
555 String _getCondition (
556 const String & filterQuery) const;
557
558 /**
|
559 kumpf 1.4 Deletes subscriptions referencing the specified handler.
560
561 @param nameSpace the name space
562 @param referenceProperty the name of the reference property in the
563 subscription instance
564 @param handler the handler reference
565 */
566 void _deleteReferencingSubscriptions (
|
567 kumpf 1.31 const CIMNamespaceName & nameSpace,
568 const CIMName & referenceProperty,
|
569 kumpf 1.25 const CIMObjectPath & handler);
|
570 kumpf 1.4
571 /**
572 Determines if specified Subscription has expired
573
574 NOTE: It is assumed that the instance passed to this function is a
575 Subscription instance, and that the Subscription Duration and
576 Start Time properties exist
577
578 @param instance the subscription instance
579
|
580 kumpf 1.54 @return True, if the Subscription has expired;
|
581 kumpf 1.4 False otherwise
582 */
583 Boolean _isExpired (
584 const CIMInstance & instance) const;
585
586 /**
|
587 kumpf 1.5 Deletes specified subscription
588
589 @param subscription the subscription reference
590 */
591 void _deleteExpiredSubscription (
|
592 kumpf 1.25 CIMObjectPath & subscription);
|
593 kumpf 1.21
594 /**
595 Gets the Subscription Time Remaining property
596
597 Calculates time remaining from Subscription Start Time, Subscription
598 Duration, and current date time. If the subscription has a non-null
599 Duration, the Time Remaining is set, and True is returned. If the
600 subscription does not have a non-null Duration, it has no expiration
601 date, and the time remaining is unlimited. In this case, the Time
602 Remaining is not set and False is returned.
603
604 NOTE: It is assumed that the instance passed to this function is a
605 Subscription instance, and that the Start Time property exists and
606 has a value
607
608 @param instance Input the subscription instance
609 @param timeRemaining Output the time remaining (seconds)
610
|
611 kumpf 1.54 @return True, if the subscription has a non-null Duration;
|
612 kumpf 1.21 False otherwise
613 */
614 Boolean _getTimeRemaining (
615 const CIMInstance & instance,
616 Uint64 & timeRemaining) const;
|
617 kumpf 1.5
618 /**
|
619 kumpf 1.4 Sets the Subscription Time Remaining property
620
621 Calculates time remaining from Subscription Start Time, Subscription
622 Duration, and current date time
623
624 NOTE: It is assumed that the instance passed to this function is a
625 Subscription instance, and that the Subscription Duration and
626 Start Time properties exist
627
628 @param instance the subscription instance
629 */
630 void _setTimeRemaining (
631 CIMInstance & instance);
632
633 /**
|
634 kumpf 1.23 Gets the parameter values required to Create or Modify the subscription
|
635 kumpf 1.10 request.
|
636 kumpf 1.5 If no indication providers are found, condition and queryLanguage are
|
637 kumpf 1.3 set to empty string.
638
|
639 kumpf 1.33 @param nameSpaceName Input namespace name (of subscription)
640 @param subscriptionInstance Input subscription instance
641 @param indicationSubclasses Output list of subclasses of indication
642 class in filter query
|
643 kumpf 1.3 @param indicationProviders Output list of providers with associated
644 classes
645 @param propertyList Output list of properties required by the
646 subscription
|
647 kumpf 1.17 @param sourceNameSpace Output source namespace for filter query
|
648 kumpf 1.3 @param condition Output condition part of the filter query
|
649 kumpf 1.58 @param query Output filter query
|
650 kumpf 1.3 @param queryLanguage Output query language in which the filter
651 query is expressed
652 */
|
653 kumpf 1.23 void _getCreateParams (
|
654 kumpf 1.31 const CIMNamespaceName & nameSpaceName,
|
655 kumpf 1.3 const CIMInstance & subscriptionInstance,
|
656 kumpf 1.33 Array <CIMName> & indicationSubclasses,
|
657 kumpf 1.10 Array <ProviderClassList> & indicationProviders,
658 CIMPropertyList & propertyList,
|
659 kumpf 1.31 CIMNamespaceName & sourceNameSpace,
|
660 kumpf 1.10 String & condition,
|
661 kumpf 1.58 String & query,
|
662 kumpf 1.10 String & queryLanguage);
663
664 /**
|
665 kumpf 1.23 Gets the parameter values required to Create or Modify the subscription
|
666 kumpf 1.10 request.
667
|
668 kumpf 1.33 @param nameSpaceName Input namespace name (of subscription)
669 @param subscriptionInstance Input subscription instance
670 @param indicationSubclasses Output list of subclasses of indication
671 class in filter query
|
672 kumpf 1.10 @param propertyList Output list of properties required by the
673 subscription
|
674 kumpf 1.17 @param sourceNameSpace Output source namespace for filter query
|
675 kumpf 1.10 @param condition Output condition part of the filter query
|
676 kumpf 1.58 @param query Output filter query
|
677 kumpf 1.10 @param queryLanguage Output query language in which the filter
678 query is expressed
679 */
|
680 kumpf 1.23 void _getCreateParams (
|
681 kumpf 1.31 const CIMNamespaceName & nameSpaceName,
|
682 kumpf 1.10 const CIMInstance & subscriptionInstance,
|
683 kumpf 1.33 Array <CIMName> & indicationSubclasses,
|
684 kumpf 1.3 CIMPropertyList & propertyList,
|
685 kumpf 1.31 CIMNamespaceName & sourceNameSpace,
|
686 kumpf 1.3 String & condition,
|
687 kumpf 1.58 String & query,
|
688 kumpf 1.3 String & queryLanguage);
689
690 /**
|
691 kumpf 1.23 Gets the parameter values required to Delete the subscription request.
|
692 kumpf 1.5
|
693 kumpf 1.33 @param nameSpaceName Input namespace name
694 @param subscriptionInstance Input subscription instance
695 @param indicationSubclasses Output list of subclasses of indication
696 class in filter query
697 @param sourceNameSpace Output source namespace for filter query
|
698 kumpf 1.5
|
699 kumpf 1.23 @return List of providers with associated classes to Delete
|
700 kumpf 1.5 */
|
701 kumpf 1.23 Array <ProviderClassList> _getDeleteParams (
|
702 kumpf 1.31 const CIMNamespaceName & nameSpaceName,
|
703 kumpf 1.33 const CIMInstance & subscriptionInstance,
704 Array <CIMName> & indicationSubclasses,
705 CIMNamespaceName & sourceNameSpace);
|
706 mday 1.13
|
707 kumpf 1.5 /**
|
708 kumpf 1.23 Sends Create subscription request for the specified subscription
|
709 carolann.graves 1.68 to each provider in the list. The requests are sent using SendAsync,
710 and the responses are aggregated in the callback methods. Create
711 Subscription requests are sent to the indication providers using
712 SendAsync in the following cases: (1) on initialization, for each
713 enabled subscription retrieved from the repository, (2) on creation of
714 an enabled subscription instance, and (3) on modification of a
715 subscription instance, when the state changes to enabled. In cases (2)
716 and (3), there is an original Create Instance or Modify Instance
717 request to which the Indication Service must respond. In case (1),
718 there is no original request and no response is required.
|
719 kumpf 1.1
720 @param indicationProviders list of providers with associated classes
|
721 kumpf 1.54 @param nameSpace the nameSpace name of the resource being
722 monitored, from the SourceNamespace
723 property of the CIM_IndicationFilter
724 instance for the specified
725 subscription
|
726 kumpf 1.1 @param propertyList the properties referenced by the
727 subscription
728 @param condition the condition part of the filter query
|
729 kumpf 1.58 @param query the filter query
|
730 kumpf 1.1 @param queryLanguage the query language in which the filter
731 query is expressed
|
732 kumpf 1.23 @param subscription the subscription to be created
|
733 chuck 1.35 @param acceptLangs the language of the response, and
734 future indications
735 @param contentLangs the language of the subscription
|
736 carolann.graves 1.68 @param origRequest the original request, if any (Create
737 Instance, Modify Instance)
|
738 kumpf 1.41 @param indicationSubclasses the indication subclasses for the
739 subscription
|
740 kumpf 1.9 @param userName the userName for authentication
741 @param authType the authentication type
742
|
743 kumpf 1.1 */
|
744 carolann.graves 1.68 void _sendAsyncCreateRequests (
|
745 kumpf 1.10 const Array <ProviderClassList> & indicationProviders,
|
746 kumpf 1.31 const CIMNamespaceName & nameSpace,
|
747 kumpf 1.1 const CIMPropertyList & propertyList,
748 const String & condition,
|
749 kumpf 1.58 const String & query,
|
750 kumpf 1.1 const String & queryLanguage,
|
751 kumpf 1.26 const CIMInstance & subscription,
|
752 chuck 1.35 const AcceptLanguages & acceptLangs,
753 const ContentLanguages & contentLangs,
|
754 kumpf 1.41 const CIMRequestMessage * origRequest,
755 const Array <CIMName> & indicationSubclasses,
|
756 kumpf 1.9 const String & userName,
757 const String & authType = String::EMPTY);
|
758 mday 1.13
|
759 kumpf 1.1 /**
|
760 carolann.graves 1.68 Sends Create subscription request for the specified subscription
761 to each provider in the list. The requests are sent using SendWait,
762 so no callback methods are required. Create Subscription requests are
763 sent to the indication providers using SendWait in the following cases:
764 (1) on notification of a provider registration change newly enabling
765 the provider to serve the subscription, and (2) on notification that a
766 provider has been enabled and may now serve the subscription. In both
767 cases (1) and (2), there is an original Notify Provider Registration or
768 Notify Provider Enable request to which the Indication Service must
769 respond.
770
771 @param indicationProviders list of providers with associated classes
772 @param nameSpace the nameSpace name of the resource being
773 monitored, from the SourceNamespace
774 property of the CIM_IndicationFilter
775 instance for the specified
776 subscription
777 @param propertyList the properties referenced by the
778 subscription
779 @param condition the condition part of the filter query
780 @param query the filter query
781 carolann.graves 1.68 @param queryLanguage the query language in which the filter
782 query is expressed
783 @param subscription the subscription to be created
784 @param acceptLangs the language of the response, and
785 future indications
786 @param contentLangs the language of the subscription
787 @param userName the userName for authentication
788 @param authType the authentication type
789
790 @return Number of providers that accepted subscription
791 */
792 Uint32 _sendWaitCreateRequests (
793 const Array <ProviderClassList> & indicationProviders,
794 const CIMNamespaceName & nameSpace,
795 const CIMPropertyList & propertyList,
796 const String & condition,
797 const String & query,
798 const String & queryLanguage,
799 const CIMInstance & subscription,
800 const AcceptLanguages & acceptLangs,
801 const ContentLanguages & contentLangs,
802 carolann.graves 1.68 const String & userName,
803 const String & authType = String::EMPTY);
804
805 /**
|
806 kumpf 1.23 Sends Modify subscription request for the specified subscription
|
807 carolann.graves 1.68 to each provider in the list. The requests are sent using SendWait,
808 so no callback methods are required. Modify Subscription requests must
809 be sent to the indication providers on notification of a provider
|
810 kumpf 1.41 registration change, when the provider was formerly serving the
811 subscription, and is still serving the subscription, in the following
812 cases: (1) the provider is newly serving an additional indication
|
813 carolann.graves 1.68 subclass specified by the subscription, or (2) the provider is
|
814 kumpf 1.41 no longer serving an indication subclass specified by the subscription
815 (but is still serving at least one of the indication subclasses).
|
816 carolann.graves 1.68 In cases (1) and (2), there is an original Notify Provider Registration
817 request to which the Indication Service must respond.
|
818 kumpf 1.1
819 @param indicationProviders list of providers with associated classes
|
820 kumpf 1.54 @param nameSpace the nameSpace name of the resource being
821 monitored, from the SourceNamespace
822 property of the CIM_IndicationFilter
823 instance for the specified
824 subscription
|
825 kumpf 1.1 @param propertyList the properties referenced by the
826 subscription
827 @param condition the condition part of the filter query
|
828 kumpf 1.58 @param query the filter query
|
829 kumpf 1.1 @param queryLanguage the query language in which the filter
830 query is expressed
831 @param subscription the subscription to be modified
|
832 chuck 1.35 @param acceptLangs the language of the response, and
833 future indications
834 @param contentLangs the language of the subscription
|
835 kumpf 1.9 @param userName the userName for authentication
836 @param authType the authentication type
|
837 kumpf 1.1 */
|
838 carolann.graves 1.68 void _sendWaitModifyRequests (
|
839 kumpf 1.10 const Array <ProviderClassList> & indicationProviders,
|
840 kumpf 1.31 const CIMNamespaceName & nameSpace,
|
841 kumpf 1.1 const CIMPropertyList & propertyList,
842 const String & condition,
|
843 kumpf 1.58 const String & query,
|
844 kumpf 1.1 const String & queryLanguage,
|
845 kumpf 1.26 const CIMInstance & subscription,
|
846 chuck 1.35 const AcceptLanguages & acceptLangs,
847 const ContentLanguages & contentLangs,
|
848 kumpf 1.9 const String & userName,
849 const String & authType = String::EMPTY);
|
850 kumpf 1.1
851 /**
|
852 kumpf 1.23 Sends Delete subscription request for the specified subscription
|
853 carolann.graves 1.68 to each provider in the list. The requests are sent using SendAsync,
854 and the responses are aggregated in the callback methods. Delete
855 Subscription requests are sent to the indication providers using
856 SendAsync in the following cases: (1) on deletion of an enabled
857 subscription instance, (2) on modification of a subscription instance,
858 when the state changes to disabled, (3) on deletion of an expired
859 subscription, and (4) on deletion of a subscription referencing a
860 deleted transient handler. In cases (1) and (2), there is an original
861 Delete Instance or Modify Instance request to which the Indication
862 Service must respond. In cases (3) and (4), there is no orginal request
863 and no response is required.
|
864 kumpf 1.1
865 @param indicationProviders list of providers with associated classes
|
866 kumpf 1.54 @param nameSpace the nameSpace name of the resource being
867 monitored, from the SourceNamespace
868 property of the CIM_IndicationFilter
869 instance for the specified
870 subscription
|
871 kumpf 1.1 @param subscription the subscription to be modified
|
872 chuck 1.35 @param acceptLangs the language of the response
873 @param contentLangs the language of the subscription
|
874 carolann.graves 1.68 @param origRequest the original request (Delete Instance,
875 Modify Instance)
|
876 kumpf 1.41 @param indicationSubclasses the indication subclasses for the
877 subscription
|
878 kumpf 1.9 @param userName the userName for authentication
879 @param authType the authentication type
|
880 kumpf 1.1 */
|
881 carolann.graves 1.68 void _sendAsyncDeleteRequests (
|
882 kumpf 1.10 const Array <ProviderClassList> & indicationProviders,
|
883 kumpf 1.31 const CIMNamespaceName & nameSpace,
|
884 kumpf 1.26 const CIMInstance & subscription,
|
885 chuck 1.35 const AcceptLanguages & acceptLangs,
886 const ContentLanguages & contentLangs,
|
887 kumpf 1.41 const CIMRequestMessage * origRequest,
888 const Array <CIMName> & indicationSubclasses,
|
889 kumpf 1.9 const String & userName,
890 const String & authType = String::EMPTY);
|
891 kumpf 1.1
892 /**
|
893 carolann.graves 1.68 Sends Delete subscription request for the specified subscription
894 to each provider in the list. The requests are sent using SendWait,
895 so no callback methods are required. Delete Subscription requests are
896 sent to the indication providers using SendWait in the following case:
897 (1) on notification of a provider registration change newly preventing
898 the provider from serving the subscription. In case (1), there is an
899 original Notify Provider Registration request to which the Indication
900 Service must respond.
901
902 @param indicationProviders list of providers with associated classes
903 @param nameSpace the nameSpace name of the resource being
904 monitored, from the SourceNamespace
905 property of the CIM_IndicationFilter
906 instance for the specified
907 subscription
908 @param subscription the subscription to be modified
909 @param acceptLangs the language of the response
910 @param contentLangs the language of the subscription
911 @param userName the userName for authentication
912 @param authType the authentication type
913 */
914 carolann.graves 1.68 void _sendWaitDeleteRequests (
915 const Array <ProviderClassList> & indicationProviders,
916 const CIMNamespaceName & nameSpace,
917 const CIMInstance & subscription,
918 const AcceptLanguages & acceptLangs,
919 const ContentLanguages & contentLangs,
920 const String & userName,
921 const String & authType = String::EMPTY);
922
923 /**
|
924 kumpf 1.41 Collects responses from providers for aggregation as they are received,
925 and stores them in the IndicationOperationAggregate instance. Calls
926 _handleOperationResponseAggregation to process the responses, once all
927 expected responses have been received.
928
|
929 kumpf 1.57 @param operation shared data structure that controls message
|
930 kumpf 1.41 processing
931 @param destination target queue of completion callback
932 @param userParameter user parameter for callback processing
933 */
934 static void _aggregationCallBack (
935 AsyncOpNode * operation,
936 MessageQueue * destination,
937 void * userParameter);
938
939 /**
940 Calls the appropriate function to processes responses from providers,
941 based on the type of request sent to providers, once all responses have
942 been received.
943
944 @param operationAggregate the operation aggregate instance
945 */
946 void _handleOperationResponseAggregation (
947 IndicationOperationAggregate * operationAggregate);
948
949 /**
950 Processes create subscription responses from providers, once all have
951 kumpf 1.41 been received. Takes the appropriate action, based on the type of the
952 original request, if any, and the responses received. Sends the
953 response to the original request, if required.
954
955 @param operationAggregate the operation aggregate instance
956 */
957 void _handleCreateResponseAggregation (
958 IndicationOperationAggregate * operationAggregate);
959
960 /**
961 Processes modify subscription responses from providers, once all have
962 been received. Updates the subscription hash tables.
963
964 @param operationAggregate the operation aggregate instance
965 */
966 void _handleModifyResponseAggregation (
967 IndicationOperationAggregate * operationAggregate);
968
969 /**
970 Processes delete subscription responses from providers, once all have
971 been received. Updates the subscription hash tables appropriately,
972 kumpf 1.41 based on the type of the original request, if any. Sends the response
973 to the original request, if required.
974
975 @param operationAggregate the operation aggregate instance
976 */
977 void _handleDeleteResponseAggregation (
978 IndicationOperationAggregate * operationAggregate);
979
980 /**
|
981 kumpf 1.1 Creates an alert instance of the specified class.
982
983 @param alertClassName the alert class name
|
984 kumpf 1.7 @param subscriptions subscriptions for which alert is to be
|
985 kumpf 1.1 created
986
987 @return the created alert instance
988 */
989 CIMInstance _createAlertInstance (
|
990 kumpf 1.31 const CIMName & alertClassName,
|
991 kumpf 1.26 const Array <CIMInstance> & subscriptions);
|
992 mday 1.14
|
993 kumpf 1.40 #if 0
|
994 kumpf 1.33 /**
|
995 mday 1.14 Asynchronous completion routine for _sendAlerts
996 */
997
998 static void _sendAlertsCallBack(AsyncOpNode *operation,
999 MessageQueue *callback_destination,
1000 void *parameter);
|
1001 kumpf 1.1
1002 /**
1003 Sends specified alert to each unique handler instance for the
1004 specified subscriptions in the list.
1005
|
1006 kumpf 1.7 @param subscriptions subscriptions for which alert is to be
|
1007 kumpf 1.1 sent
1008 @param alertInstance the alert to be sent
1009 */
1010 void _sendAlerts (
|
1011 kumpf 1.26 const Array <CIMInstance> & subscriptions,
|
1012 kumpf 1.1 /* const */ CIMInstance & alertInstance);
|
1013 kumpf 1.40 #endif
|
1014 mday 1.18
|
1015 kumpf 1.16 /**
|
1016 carolann.graves 1.67 Sends a Subscription Init Complete request to the Provider
1017 Manager Service.
1018 */
1019 void _sendSubscriptionInitComplete ();
|
1020 kumpf 1.16
|
1021 kumpf 1.37 /**
1022 Gets the value of the Creator property from the specified Subscription
1023 instance. If this function returns False, the value of the creator
1024 parameter is unchanged.
1025
1026 @param instance subscription instance
1027 @param creator value of Creator property if retrieved
1028
|
1029 kumpf 1.54 @return True, if the value of the Creator property was retrieved;
|
1030 kumpf 1.37 False if Creator property was missing, null, or of an
|
1031 kumpf 1.54 incorrect type
|
1032 kumpf 1.37 */
1033 Boolean _getCreator (
1034 const CIMInstance & instance,
1035 String & creator) const;
1036
1037 /**
|
1038 kumpf 1.54 Validates the specified SubscriptionState property value.
|
1039 kumpf 1.37
|
1040 kumpf 1.54 @param state SubscriptionState property value
|
1041 kumpf 1.37
|
1042 kumpf 1.54 @return True, if the SubscriptionState property value is valid;
1043 False otherwise
|
1044 kumpf 1.37 */
|
1045 kumpf 1.54 Boolean _validateState (
1046 const Uint16 state) const;
|
1047 kumpf 1.37
|
1048 kumpf 1.46 /**
1049 This function peforms an authorization test based on the
1050 value of the enableSubscriptionForNonprivilegedUsers.
1051
1052 @param userName String
1053
|
1054 kumpf 1.54 @return True, if authentication is not enabled or the
1055 user is a privileged system user;
1056 False, if authentication is enabled and the
1057 user is not privileged
|
1058 kumpf 1.46 */
1059 void _checkNonprivilegedAuthorization (
1060 const String & userName);
1061
|
1062 kumpf 1.48 /**
|
1063 kumpf 1.49 Updates the propertyList, in preparation for calling the Repository.
1064 If the propertyList is not null, the Creator property must be added to
1065 the list. Also, if the request is for the Subscription class, the
1066 value of the Time Remaining property need only be calculated if it is
1067 requested. In that case, the Subscription Duration and Start Time
1068 properties must be added to the list if not already there.
1069
1070 @param className class name for the request
1071 @param propertyList list of properties requested
1072 @param setTimeRemaining indicates whether Time Remaining property
1073 was requested
1074 @param startTimeAdded indicates whether Start Time property was
1075 added to the list
1076 @param durationAdded indicates whether Duration property was
1077 added to the list
1078 */
1079 void _updatePropertyList
1080 (CIMName & className,
1081 CIMPropertyList & propertyList,
1082 Boolean & setTimeRemaining,
1083 Boolean & startTimeAdded,
1084 kumpf 1.49 Boolean & durationAdded);
1085
1086 /**
|
1087 kumpf 1.48 Gets a String containing the comma-separated Subscription Filter Name
1088 and Handler Name, for use in a log message to identify the subscription.
1089
1090 @param subscription subscription instance
1091
1092 @return String containing the comma-separated Subscription Filter Name
1093 and Handler Name
1094 */
1095 String _getSubscriptionLogString
1096 (CIMInstance & subscription);
1097
|
1098 kumpf 1.54 SubscriptionRepository* _subscriptionRepository;
|
1099 kumpf 1.51
|
1100 kumpf 1.54 SubscriptionTable * _subscriptionTable;
|
1101 kumpf 1.6
|
1102 kumpf 1.8 /**
1103 Handle to Provider Registration Manager
1104 */
1105 ProviderRegistrationManager * _providerRegManager;
|
1106 kumpf 1.5
|
1107 chuck 1.64 /**
1108 Pointer to CIMRepository, for use in building QueryExpression.
1109 */
1110 CIMRepository* _cimRepository;
1111
|
1112 kumpf 1.5 /**
1113 Integer representing queue ID for accessing Provider Manager Service
1114 */
1115 Uint32 _providerManager;
1116
1117 /**
1118 Integer representing queue ID for accessing Handler Manager Service
1119 */
1120 Uint32 _handlerService;
1121
1122 /**
|
1123 kumpf 1.46 Boolean indicating that the CIM Server has been configured to
1124 allow non-privileged users read and write access to the
1125 Subscription classes.
1126 */
1127 Boolean _enableSubscriptionsForNonprivilegedUsers;
1128
|
1129 kumpf 1.55 /**
|
1130 yi.zhou 1.66 Gets the indication class specified by the subscription filter query.
1131
1132 @param instance the subscription instance
1133
1134 @return CIMClass object for the indication class
1135 */
1136 CIMClass _getIndicationClass(
1137 const CIMInstance & instance);
1138
1139 /**
|
1140 kumpf 1.55 Arrays of valid and supported property values
1141
1142 Notes:
1143 Valid values are defined by the CIM Event Schema MOF
1144 Supported values are a subset of the valid values
1145 Some valid values, as defined in the MOF, are not currently supported
1146 by the Pegasus IndicationService
1147
1148 Supported Values
1149 SubscriptionState: Enabled, Disabled
1150 RepeatNotificationPolicy: Unknown, Other, None, Suppress, Delay
1151 OnFatalErrorPolicy: Ignore, Disable, Remove
1152 PersistenceType: Permanent, Transient
1153 */
|
1154 kumpf 1.19 Array <Uint16> _validStates;
1155 Array <Uint16> _validRepeatPolicies;
1156 Array <Uint16> _validErrorPolicies;
1157 Array <Uint16> _validPersistenceTypes;
|
1158 kumpf 1.55 Array <Uint16> _supportedStates;
1159 Array <Uint16> _supportedRepeatPolicies;
1160 Array <Uint16> _supportedErrorPolicies;
1161 Array <Uint16> _supportedPersistenceTypes;
|
1162 yi.zhou 1.66
|
1163 kumpf 1.1 };
1164
1165 PEGASUS_NAMESPACE_END
1166
|
1167 kumpf 1.41 #endif /* Pegasus_IndicationService_h */
|