1 karl 1.47 //%2003////////////////////////////////////////////////////////////////////////
|
2 kumpf 1.1 //
|
3 karl 1.47 // 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 // IBM Corp.; EMC Corporation, The Open Group.
|
7 kumpf 1.1 //
8 // Permission is hereby granted, free of charge, to any person obtaining a copy
9 // of this software and associated documentation files (the "Software"), to
10 // deal in the Software without restriction, including without limitation the
11 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
12 // sell copies of the Software, and to permit persons to whom the Software is
13 // furnished to do so, subject to the following conditions:
|
14 kumpf 1.27 //
|
15 kumpf 1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
16 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
17 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
18 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
19 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 //
24 //==============================================================================
25 //
26 // Author: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
27 //
28 // Modified By: Carol Ann Krug Graves, Hewlett-Packard Company
|
29 kumpf 1.39 // (carolann_graves@hp.com)
30 // Ben Heilbronn, Hewlett-Packard Company (ben_heilbronn@hp.com)
31 // Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
|
32 kumpf 1.1 //
33 //%/////////////////////////////////////////////////////////////////////////////
34
35 #ifndef Pegasus_IndicationService_h
36 #define Pegasus_IndicationService_h
37
38 #include <Pegasus/Common/Config.h>
39 #include <Pegasus/Common/MessageQueueService.h>
40 #include <Pegasus/Common/CIMMessage.h>
|
41 kumpf 1.24 #include <Pegasus/Common/IPC.h>
|
42 kumpf 1.1 #include <Pegasus/Repository/CIMRepository.h>
|
43 kumpf 1.6 #include <Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h>
|
44 kumpf 1.1 #include <Pegasus/WQL/WQLParser.h>
45 #include <Pegasus/WQL/WQLSelectStatement.h>
46 #include <Pegasus/WQL/WQLSimplePropertySource.h>
|
47 kumpf 1.28 #include <Pegasus/Server/Linkage.h>
|
48 chuck 1.35 #include <Pegasus/Common/AcceptLanguages.h> // l10n
49 #include <Pegasus/Common/ContentLanguages.h> // l10n
|
50 kumpf 1.1
|
51 kumpf 1.41 #include "ProviderClassList.h"
52 #include "IndicationOperationAggregate.h"
53
|
54 kumpf 1.1 PEGASUS_NAMESPACE_BEGIN
55
|
56 kumpf 1.10 /**
|
57 kumpf 1.33 Entry for ActiveSubscriptions table
|
58 kumpf 1.10 */
|
59 kumpf 1.33 struct ActiveSubscriptionsTableEntry
|
60 kumpf 1.10 {
|
61 kumpf 1.26 CIMInstance subscription;
|
62 kumpf 1.33 Array <ProviderClassList> providers;
|
63 kumpf 1.10 };
|
64 kumpf 1.1
|
65 kumpf 1.10 /**
|
66 kumpf 1.33 Table for active subscription information
67
68 The ActiveSubscriptions table is used to keep track of active subscriptions.
|
69 kumpf 1.51 This table contains an entry for each subscription that is enabled
70 (value of SubscriptionState property is enabled).
|
71 kumpf 1.33 Each entry consists of a Subscription instance, and a list of
|
72 kumpf 1.51 ProviderClassList structs representing the providers, if any, currently
73 serving each subscription and the relevant indication subclasses served by
74 each provider.
|
75 kumpf 1.33 The Key is generated by concatenating the namespace name of the
76 subscription instance, and the subscription instance key values (filter and
77 handler key values).
|
78 kumpf 1.51 Entries are inserted into the table on initialization, when an enabled
79 subscription instance is created, or when a subscription instance is
80 modified to be enabled.
81 Entries are removed from the table when an enabled subscription instance is
82 deleted, or when a subscription instance is modified to be disabled.
83 Entries are updated (remove followed by insert) when a provider serving a
84 subscription is disabled or enabled, or a provider registration change
85 occurs.
|
86 kumpf 1.33 The _handleProcessIndicationRequest() function, when a list of
87 subscriptions is included in request, looks up each subscription in the
88 table.
89 The _handleNotifyProviderRegistrationRequest() function, once matching
90 subscriptions have been identified, looks up the provider information for
91 each matching subscription in the table.
92 The _handleModifyInstanceRequest() and _handleDeleteInstanceRequest()
93 functions, when sending delete requests to providers, look up the providers
94 for the subscription in the table.
95 The _handleNotifyProviderTerminationRequest() function, when a provider is
96 disabled, iterates through the table to retrieve all active
97 subscriptions being served by the provider.
98 The terminate() function, when the CIM Server is being shut down, iterates
99 through the table to retrieve all active subscriptions.
|
100 kumpf 1.10 */
101 typedef HashTable <String,
|
102 kumpf 1.33 ActiveSubscriptionsTableEntry,
|
103 kumpf 1.10 EqualFunc <String>,
|
104 kumpf 1.33 HashFunc <String> > ActiveSubscriptionsTable;
105
106 /**
107 Entry for SubscriptionClasses table
108 */
109 struct SubscriptionClassesTableEntry
110 {
111 CIMName indicationClassName;
112 CIMNamespaceName sourceNamespaceName;
113 Array <CIMInstance> subscriptions;
114 };
115
116 /**
117 Table for subscription classes information
118
119 The SubscriptionClasses Table is used to keep track of active subscriptions
120 for each indication subclass-source namespace pair.
121 Each entry consists of an indication subclass name, a source namespace name,
122 and a list of subscription instances.
123 The Key is generated by concatenating the indication subclass name, and the
124 source namespace name.
125 kumpf 1.33 The _handleProcessIndicationRequest() function, when no list of
126 subscriptions is included in the request, looks up matching subscriptions
127 in the table, using the class name and namespace name of the indication
128 instance.
129 The _handleNotifyProviderRegistrationRequest() function, when an indication
130 provider registration instance has been created or deleted, looks up
131 matching subscriptions in the table, using the class name and namespace
132 names from the provider registration instance.
133 */
134 typedef HashTable <String,
135 SubscriptionClassesTableEntry,
136 EqualFunc <String>,
137 HashFunc <String> > SubscriptionClassesTable;
|
138 kumpf 1.1
139 /**
140
|
141 kumpf 1.5 IndicationService class is the service that serves the
|
142 kumpf 1.10 Indication Subscription, Indication Filter, and Indication Handler
|
143 kumpf 1.5 classes, and processes indications.
|
144 kumpf 1.1
145 @author Hewlett-Packard Company
146
147 */
148
149 class PEGASUS_SERVER_LINKAGE IndicationService : public MessageQueueService
150 {
151 public:
152
153 typedef MessageQueueService Base;
154
155 /**
156 Constructs an IndicationSubscription instance and initializes instance
157 variables.
158 */
|
159 kumpf 1.6 IndicationService (
160 CIMRepository * repository,
|
161 kumpf 1.8 ProviderRegistrationManager * providerRegManager);
|
162 kumpf 1.1
163 virtual ~IndicationService(void);
164
|
165 mday 1.2 void handleEnqueue(Message* message);
|
166 kumpf 1.1
167 virtual void handleEnqueue(void);
168
169 virtual void _handle_async_request(AsyncRequest *req);
170
171 AtomicInt dienow;
172
173 /**
|
174 kumpf 1.5 Operation types for the NotifyProviderRegistration message
|
175 kumpf 1.1 */
|
176 kumpf 1.5 enum Operation {OP_CREATE = 1, OP_DELETE = 2, OP_MODIFY = 3};
|
177 kumpf 1.24
178 static Mutex _mutex;
|
179 kumpf 1.1
|
180 kumpf 1.5 private:
|
181 kumpf 1.1
182 void _initialize (void);
183
184 void _terminate (void);
185
186 void _handleGetInstanceRequest(const Message * message);
187
188 void _handleEnumerateInstancesRequest(const Message * message);
189
190 void _handleEnumerateInstanceNamesRequest(const Message * message);
191
192 void _handleCreateInstanceRequest(const Message * message);
193
194 void _handleModifyInstanceRequest(const Message * message);
195
196 void _handleDeleteInstanceRequest(const Message * message);
197
198 void _handleProcessIndicationRequest(const Message * message);
199
200 /**
201 Notifies the Indication Service that a change in provider registration
202 kumpf 1.1 has occurred. The Indication Service retrieves the subscriptions
|
203 kumpf 1.23 affected by the registration change, sends the appropriate Create,
204 Modify, and/or Delete requests to the provider, and sends an alert to
|
205 kumpf 1.10 handler instances of subscriptions that are no longer served by the
206 provider.
|
207 kumpf 1.1 */
208 void _handleNotifyProviderRegistrationRequest(const Message * message);
209
210 /**
|
211 kumpf 1.33 Determines if the specified provider is in the list of providers
212 serving the subscription.
213
214 @param provider the provider instance
215 @param tableValue the Active Subscriptions Table entry
216
217 @return The index of the provider in the list, if found
218 PEG_NOT_FOUND otherwise
219 */
220 Uint32 _providerInList
221 (const CIMInstance & provider,
222 const ActiveSubscriptionsTableEntry & tableValue);
223
224 /**
225 Determines if the specified class is in the list of indication
226 subclasses served by the specified provider, serving the subscription.
227
228 @param className the class name
229 @param providerClasses the list of providers serving the
230 subscription, with the classes served
231
232 kumpf 1.33 @return The index of the class name in the list, if found
233 PEG_NOT_FOUND otherwise
234 */
235 Uint32 _classInList
236 (const CIMName & className,
237 const ProviderClassList & providerClasses);
238
239 /**
240 Notifies the Indication Service that a provider has been disabled.
|
241 kumpf 1.51 The Indication Service retrieves the subscriptions served by the
242 disabled provider, and logs a message for each subscription that is no
243 longer served by the provider.
|
244 kumpf 1.1 */
245 void _handleNotifyProviderTerminationRequest(const Message * message);
246
247 /**
|
248 kumpf 1.51 Notifies the Indication Service that a provider has been enabled.
249 The Indication Service retrieves the subscriptions that can be served
250 by the enabled provider, sends Create Subscription and Enable
251 Indications requests to the provider, and logs a message for each
252 subscription that is now served by the provider.
253 */
254 void _handleNotifyProviderEnableRequest (const Message * message);
255
256 /**
|
257 kumpf 1.12 Implements the subscription's On Fatal Error Policy.
258 This function is called when a fatal error has occurred in the
259 indication provider or indication handler, and the subscription can no
260 longer be served.
261 If the subscription's policy is Disable, the Subscription State is
262 set to Disabled.
263 If the subscription's policy is Remove, the subscription instance is
264 deleted.
265
|
266 kumpf 1.33 @param subscription the subscription instance
|
267 kumpf 1.12
268 @return True if the subscription has been disabled or deleted
269 False otherwise
270 */
271 Boolean _handleError (
|
272 kumpf 1.26 const CIMInstance subscription);
|
273 kumpf 1.12
274 /**
275 Disables the subscription.
276 This function is called when a fatal error has occurred in the
277 indication provider or indication handler, the subscription can no
278 longer be served, and the subscription's policy is Disable.
279 The Subscription State is set to Disabled.
280
|
281 kumpf 1.33 @param subscription the subscription instance
|
282 kumpf 1.12 */
283 void _disableSubscription (
|
284 kumpf 1.26 CIMInstance subscription);
|
285 kumpf 1.12
286 /**
287 Deletes the subscription instance.
288 This function is called when a fatal error has occurred in the
289 indication provider or indication handler, the subscription can no
290 longer be served, and the subscription's policy is Remove.
291 The subscription instance is deleted.
292
|
293 kumpf 1.33 @param subscription the subscription instance
|
294 kumpf 1.12 */
295 void _deleteSubscription (
|
296 kumpf 1.26 const CIMInstance subscription);
|
297 kumpf 1.12
298 /**
|
299 kumpf 1.5 Determines if it is legal to create an instance.
300 Checks for existence of all key and required properties. Checks that
301 properties that MUST NOT exist (based on values of other properties),
302 do not exist. For any property that has a default value, if it does
303 not exist, adds the property with the default value.
304
305 @param instance instance to be created
306 @param nameSpace namespace for instance to be created
307
308 @throw CIM_ERR_INVALID_PARAMETER if instance is invalid
309 @throw CIM_ERR_NOT_SUPPORTED if the specified class is not
310 supported
311
312 @return True if the instance can be created
|
313 kumpf 1.10 Otherwise throws an exception
|
314 kumpf 1.5 */
315 Boolean _canCreate (
316 CIMInstance & instance,
|
317 kumpf 1.31 const CIMNamespaceName & nameSpace);
|
318 kumpf 1.5
|
319 kumpf 1.21 /**
320 Validates the specified required property in the instance.
321 If the property does not exist, or has a null value, an exceptiuon is
322 thrown, using the specified message.
323
324 This function is called by the _canCreate function, and is used to
325 validate the Filter and Handler properties in Subscription instances,
326 the Name, CreationClassName, Query and Query Language properties in
327 Filter instances, the Name, CreationClassName, and Destination
328 properties in CIMXML Handler instances, and the Name, CreationClassName,
329 Trap Destination, and SNMP Version properties in SNMP Mapper instances.
330
331 @param instance instance to be validated
332 @param propertyName name of property to be validated
333 @param message message to be used in exception
334
335 @throw CIM_ERR_INVALID_PARAMETER if required property is missing or
336 null
337 */
|
338 kumpf 1.20 void _checkRequiredProperty (
339 CIMInstance & instance,
|
340 kumpf 1.31 const CIMName & propertyName,
|
341 kumpf 1.20 const String & message);
342
|
343 kumpf 1.5 /**
|
344 kumpf 1.15 Validates the specified property and its corresponding Other___
345 property in the instance.
346 If the property does not exist, it is added with the default value.
347 If the property exists, but its value is NULL, its value is set to
348 the default value.
349 If the value of the property is Other, but the corresponding Other___
350 property either does not exist or has a value of NULL, an exception is
351 thrown.
352 If the value of the property is not Other, but the corresponding
353 Other___ property exists and has a non-NULL value, an exception is
354 thrown.
355 This function is called by the _canCreate function, and is used to
356 validate the following pairs of properties in Subscription or Handler
357 instances: Subscription State, Other Subscription State, Repeat
358 Notification Policy, Other Repeat Notification Policy, On Fatal Error
359 Policy, Other On Fatal Error Policy, Persistence Type, Other
360 Persistence Type.
361
362 @param instance instance to be validated
363 @param propertyName name of property to be validated
364 @param otherPropertyName name of Other___ property to be validated
365 kumpf 1.15 @param defaultValue default value for property
366 @param otherValue "Other" value for property
|
367 kumpf 1.19 @param validValues set of valid values for property
|
368 kumpf 1.15
369 @throw CIM_ERR_INVALID_PARAMETER if value of property or Other___
370 property is invalid
371 */
|
372 kumpf 1.20 void _checkPropertyWithOther (
|
373 kumpf 1.15 CIMInstance & instance,
|
374 kumpf 1.31 const CIMName & propertyName,
375 const CIMName & otherPropertyName,
|
376 kumpf 1.15 const Uint16 defaultValue,
|
377 kumpf 1.19 const Uint16 otherValue,
378 const Array <Uint16> & validValues);
|
379 kumpf 1.20
|
380 kumpf 1.21 /**
381 Validates the specified property in the instance.
382 If the property does not exist, it is added with the default value.
383 If the property exists, but its value is NULL, its value is set to
384 the default value.
385 This function is called by the _canCreate function, and is used to
386 validate the System Name and System Creation Class Name properties in
387 Filter and Handler instances, and the Source Namespace property in
388 Filter instances.
389
390 @param instance instance to be validated
391 @param propertyName name of property to be validated
392 @param defaultValue default value for property
393
394 @return the value of the property
395
396 */
|
397 kumpf 1.20 String _checkPropertyWithDefault (
398 CIMInstance & instance,
|
399 kumpf 1.31 const CIMName & propertyName,
|
400 kumpf 1.20 const String & defaultValue);
|
401 kumpf 1.15
402 /**
|
403 kumpf 1.41 Adds an instance in the repository. Adds or sets properties as
404 necessary.
405
406 @param request the create instance request message
407 @param instance instance to be added
408 @param enabled indicates instance is a subscription
409 instance and is enabled
410
411 @return the CIMObjectPath for the instance
412 */
413 CIMObjectPath _createInstance (
414 CIMCreateInstanceRequestMessage * request,
415 CIMInstance instance,
416 Boolean enabled);
417
418 /**
|
419 kumpf 1.10 Determines if the user is authorized to modify the instance, and if the
420 specified modification is supported. Currently, the only modification
421 supported is of the Subscription State property of the Subscription
422 class.
|
423 kumpf 1.5
424 @param request modification request
425 @param instance instance to be modified
|
426 kumpf 1.37 @param modifiedInstance modified instance
|
427 kumpf 1.5
|
428 kumpf 1.10 @throw CIM_ERR_NOT_SUPPORTED if the specified modification is
|
429 kumpf 1.5 not supported
430 @throw CIM_ERR_ACCESS_DENIED if the user is not authorized to
431 modify the instance
|
432 kumpf 1.37 @throw CIM_ERR_INVALID_PARAMETER if the modifiedInstance is invalid
|
433 kumpf 1.5
434 @return True if the instance can be modified
|
435 kumpf 1.10 Otherwise throws an exception
|
436 kumpf 1.5 */
437 Boolean _canModify (
438 const CIMModifyInstanceRequestMessage * request,
|
439 kumpf 1.25 const CIMObjectPath & instanceReference,
|
440 kumpf 1.37 const CIMInstance & instance,
441 CIMInstance & modifiedInstance);
|
442 kumpf 1.5
443 /**
|
444 kumpf 1.10 Determines if the user is authorized to delete the instance, and if it
|
445 kumpf 1.11 is legal to delete the instance. If authorized, Subscription instances
|
446 kumpf 1.10 may always be deleted. Filter and non-transient Handler instances may
447 only be deleted if they are not being referenced by any Subscription
448 instances. If the instance to be deleted is a transient Handler, any
449 referencing Subscriptions are also deleted.
|
450 kumpf 1.5
451 @param instanceReference reference for instance to be deleted
452 @param nameSpace namespace for instance to be deleted
|
453 kumpf 1.10 @param currentUser current user
454
455 @throw CIM_ERR_ACCESS_DENIED if the user is not authorized to
456 delete the instance
457 @throw CIM_ERR_FAILED if the instance to be deleted is
458 referenced by a subscription
|
459 kumpf 1.5
460 @return True if the instance can be deleted
|
461 kumpf 1.10 Otherwise throws an exception
|
462 kumpf 1.1 */
463 Boolean _canDelete (
|
464 kumpf 1.25 const CIMObjectPath & instanceReference,
|
465 kumpf 1.31 const CIMNamespaceName & nameSpace,
|
466 kumpf 1.10 const String & currentUser);
|
467 kumpf 1.1
468 /**
|
469 kumpf 1.33 Retrieves list of enabled subscription instances in all namespaces from
470 the repository.
471
|
472 kumpf 1.37 @param activeSubscriptions the returned subscription instances
473
474 @return True if a warning was logged
475 False otherwise
|
476 kumpf 1.33 */
|
477 kumpf 1.37 Boolean _getActiveSubscriptionsFromRepository (
478 Array <CIMInstance> & activeSubscriptions) const;
|
479 kumpf 1.33
480 /**
481 Retrieves list of enabled subscription instances in all namespaces from
482 the Active Subscriptions table.
|
483 kumpf 1.1
|
484 kumpf 1.26 @return list of CIMInstance subscriptions
|
485 kumpf 1.1 */
|
486 kumpf 1.45 Array <CIMInstance> _getActiveSubscriptions ();
|
487 kumpf 1.1
488 /**
489 Retrieves list of enabled subscription instances in all namespaces,
490 where the subscription indication class matches or is a superclass
|
491 kumpf 1.10 of the supported class, and the properties required to process the
492 subscription are all contained in the list of supported properties.
|
493 kumpf 1.42 If the checkProvider parameter value is True, a subscription is only
494 included in the list returned if the specified provider accepted the
495 subscription. If the checkProvider parameter value is False, the
496 provider parameter is not used (ignored).
|
497 kumpf 1.1
|
498 kumpf 1.10 @param supportedClass the supported class
499 @param nameSpaces the list of supported namespaces
500 @param supportedProperties the list of supported properties
|
501 kumpf 1.42 @param checkProvider indicates whether provider acceptance is
502 checked
503 @param provider the provider (used if checkProvider True)
|
504 kumpf 1.1
|
505 kumpf 1.26 @return list of CIMInstance subscriptions
|
506 kumpf 1.1 */
|
507 kumpf 1.26 Array <CIMInstance> _getMatchingSubscriptions (
|
508 kumpf 1.31 const CIMName & supportedClass,
509 const Array <CIMNamespaceName> nameSpaces,
|
510 kumpf 1.42 const CIMPropertyList & supportedProperties,
|
511 kumpf 1.43 const Boolean checkProvider = false,
|
512 kumpf 1.42 const CIMInstance & provider = CIMInstance ());
|
513 kumpf 1.1
514 /**
515 Retrieves lists of enabled subscription instances in all namespaces
516 that are either newly supported or previously supported, based on the
|
517 kumpf 1.9 supported class, the supported namespaces before and after modification,
518 and the supported properties before and after modification. For
|
519 kumpf 1.10 subscriptions based on the supported class, the newSubscriptions list
|
520 kumpf 1.9 returned contains the subscriptions for which the properties required
521 to process the subscription are all contained in the new list of
522 supported properties, but are not all contained in the old list of
523 supported properties, and/or the filter source namespace is contained in
524 the new list if supported namespaces, but is not contained in the old
525 list of supported namespaces. The formerSubscriptions list returned
526 contains the subscriptions for which the properties required to process
527 the subscription are not all contained in the new list of supported
528 properties, but are all contained in the old list of supported
529 properties, and/or the filter source namespace is not contained in the
530 new list if supported namespaces, but is contained in the old list of
531 supported namespaces.
532
|
533 kumpf 1.10 @param supportedClass the supported class
|
534 kumpf 1.9 @param newNameSpaces namespaces supported after modification
535 @param oldNameSpaces namespaces supported before modification
536 @param newProperties properties supported after modification
537 @param oldProperties properties supported before modification
|
538 kumpf 1.1 @param newSubscriptions the list of newly supported subscriptions
539 @param formerSubscriptions the list of previously supported
540 subscriptions
541 */
542 void _getModifiedSubscriptions (
|
543 kumpf 1.31 const CIMName & supportedClass,
544 const Array <CIMNamespaceName> & newNameSpaces,
545 const Array <CIMNamespaceName> & oldNameSpaces,
|
546 kumpf 1.1 const CIMPropertyList & newProperties,
547 const CIMPropertyList & oldProperties,
|
548 kumpf 1.26 Array <CIMInstance> & newSubscriptions,
549 Array <CIMInstance> & formerSubscriptions);
|
550 kumpf 1.1
551 /**
|
552 kumpf 1.15 Retrieves list of subscriptions in the specified namespace.
553
554 @param nameSpace the namespace
555
|
556 kumpf 1.33 @return List of subscription instances
|
557 kumpf 1.15 */
|
558 kumpf 1.26 Array <CIMInstance> _getSubscriptions (
|
559 kumpf 1.31 const CIMNamespaceName & nameSpaceName) const;
|
560 kumpf 1.15
561 /**
|
562 kumpf 1.9 Determines if all of the required properties in the specified list
563 are contained in the specified list of supported properties.
564
565 @param requiredProperties the required properties
|
566 kumpf 1.10 @param supportedProperties the supported properties
|
567 kumpf 1.9
568 @return true if all required properties are supported
569 false otherwise
570 */
571 Boolean _inPropertyList (
572 const CIMPropertyList & requiredProperties,
|
573 kumpf 1.10 const CIMPropertyList & supportedProperties);
|
574 kumpf 1.9
575 /**
|
576 kumpf 1.1 Retrieves list of enabled subscription instances in all namespaces,
|
577 kumpf 1.33 that are served by the specified provider. This function is called
578 when a provider is disabled. In the Active Subscriptions table, the
579 specified provider is removed from the list of providers serving the
580 subscription. If there are no remaining providers serving the
581 subscription, the subscription is removed from the Active Subscriptions
582 table.
|
583 kumpf 1.1
|
584 kumpf 1.10 @param provider the provider instance
|
585 kumpf 1.1
|
586 kumpf 1.26 @return list of CIMInstance subscriptions
|
587 kumpf 1.1 */
|
588 kumpf 1.26 Array <CIMInstance> _getProviderSubscriptions (
|
589 kumpf 1.10 const CIMInstance & provider);
|
590 kumpf 1.1
591 /**
|
592 kumpf 1.50 Determines if the specified provider is currently in use serving one or
593 more subscriptions in the Active Subscriptions table. This function is
|
594 kumpf 1.53 called when a provider is added to or removed from the Active
595 Subscriptions table, to determine if an Enable or Disable Indications
596 request must be sent to the provider.
597
598 NOTE: The caller must acquire a lock on the Active Subscriptions table
599 before calling.
|
600 kumpf 1.50
601 @param provider the provider instance
602
603 @return True if the provider is serving one or more active
604 subscriptions
605 False otherwise
606 */
607 Boolean _providerInUse
608 (const CIMInstance & provider);
609
610 /**
|
611 kumpf 1.10 Retrieves the values of the filter query, source namespace,
612 and query language properties for the specified subscription instance.
|
613 kumpf 1.1
|
614 kumpf 1.10 @param subscription Input subscription instance
615 @param nameSpaceName Input namespace name
616 @param query Output query for the filter
617 @param sourceNameSpace Output source namespace for the filter
618 subscription
619 @param queryLanguage Output query language in which the filter
620 query is expressed
|
621 kumpf 1.1 */
|
622 kumpf 1.10 void _getFilterProperties (
|
623 kumpf 1.1 const CIMInstance & subscription,
|
624 kumpf 1.31 const CIMNamespaceName & nameSpaceName,
|
625 kumpf 1.10 String & query,
|
626 kumpf 1.31 CIMNamespaceName & sourceNameSpace,
|
627 kumpf 1.10 String & queryLanguage);
|
628 kumpf 1.1
629 /**
|
630 kumpf 1.10 Retrieves the values of the filter query and source namespace
631 properties for the specified subscription instance.
|
632 kumpf 1.8
|
633 kumpf 1.10 @param subscription Input subscription instance
634 @param nameSpaceName Input namespace name
635 @param query Output query for the filter
636 @param sourceNameSpace Output source namespace for the filter
637 subscription
|
638 kumpf 1.8 */
|
639 kumpf 1.10 void _getFilterProperties (
|
640 kumpf 1.8 const CIMInstance & subscription,
|
641 kumpf 1.31 const CIMNamespaceName & nameSpaceName,
|
642 kumpf 1.10 String & query,
|
643 kumpf 1.31 CIMNamespaceName & sourceNameSpace);
|
644 kumpf 1.8
645 /**
|
646 kumpf 1.32 Retrieves the value of the filter query property
|
647 kumpf 1.1 for the specified subscription instance.
648
|
649 kumpf 1.10 @param subscription Input subscription instance
650 @param nameSpaceName Input namespace name
651 @param query Output query for the filter
|
652 kumpf 1.1 */
|
653 kumpf 1.10 void _getFilterProperties (
|
654 kumpf 1.1 const CIMInstance & subscription,
|
655 kumpf 1.31 const CIMNamespaceName & nameSpaceName,
|
656 kumpf 1.10 String & query);
|
657 kumpf 1.1
658 /**
659 Parses the filter query string, and returns the corresponding
660 WQLSelectStatement object.
661
662 @param filterQuery the filter query string
663
664 @return WQLSelectStatement representing the filter query
665 */
666 WQLSelectStatement _getSelectStatement (
667 const String & filterQuery) const;
668
669 /**
670 Extracts the indication class name from the specified WQL select
671 statement, and validates that the name represents a subclass of the
672 Indication class.
673
674 @param selectStatement the WQL select statement
675 @param nameSpaceName the namespace
676
677 @return String containing the indication class name
678 kumpf 1.1 */
|
679 kumpf 1.31 CIMName _getIndicationClassName (
|
680 kumpf 1.1 const WQLSelectStatement & selectStatement,
|
681 kumpf 1.31 const CIMNamespaceName & nameSpaceName) const;
|
682 kumpf 1.15
683 /**
684 Enumerates the subclass names of the specified indication class.
685
686 @param nameSpace the namespace
687 @param indicationClassName the indication class name
688
689 @return List of indication subclass names
690 */
|
691 kumpf 1.31 Array <CIMName> _getIndicationSubclasses (
692 const CIMNamespaceName & nameSpace,
693 const CIMName & indicationClassName) const;
|
694 kumpf 1.1
695 /**
696 Retrieves the list of indication providers that serve the specified
697 indication subclasses.
698
699 @param nameSpaceName the namespace name
700 @param indicationClassName the indication class name
701 @param indicationSubclasses the list of indication subclass names
702 @param requiredPropertyList the properties required
703
704 @return list of ProviderClassList structs
705 */
|
706 kumpf 1.10 Array <ProviderClassList> _getIndicationProviders (
|
707 kumpf 1.31 const CIMNamespaceName & nameSpace,
708 const CIMName & indicationClassName,
709 const Array <CIMName> & indicationSubclasses,
|
710 kumpf 1.1 const CIMPropertyList & requiredPropertyList) const;
711
712 /**
713 Retrieves the list of properties referenced by the specified
714 filter query select statement.
715
716 @param selectStatement the WQL select statement
|
717 kumpf 1.22 @param nameSpaceName the namespace
718 @param indicationClassName the indciation class name
|
719 kumpf 1.1
|
720 kumpf 1.22 @return CIMPropertyList of properties referenced by the filter query
721 select statement
|
722 kumpf 1.1 */
723 CIMPropertyList _getPropertyList (
|
724 kumpf 1.11 const WQLSelectStatement & selectStatement,
|
725 kumpf 1.31 const CIMNamespaceName & nameSpaceName,
726 const CIMName & indicationClassName) const;
|
727 kumpf 1.22
728 /**
729 Checks if the property list includes all properties in the specified
730 class. If so, a NULL CIMPropertyList is returned. Otherwise, a
|
731 kumpf 1.32 CIMPropertyList containing the properties is returned.
|
732 kumpf 1.22
733 @param propertyList the list of property names
734 @param nameSpaceName the namespace
735 @param indicationClassName the indciation class name
736
737 @return CIMPropertyList of properties referenced by the filter query
738 select statement
739 */
740 CIMPropertyList _checkPropertyList (
|
741 kumpf 1.29 const Array <CIMName> & propertyList,
|
742 kumpf 1.31 const CIMNamespaceName & nameSpaceName,
743 const CIMName & indicationClassName) const;
|
744 kumpf 1.1
745 /**
746 Extracts the condition (WHERE Clause) from the specified filter query
747 string.
748
749 @param filterQuery the filter query
750
751 @return String containing the filter query condition
752 */
753 String _getCondition (
754 const String & filterQuery) const;
755
756 /**
|
757 kumpf 1.26 Retrieves the Handler CIMInstance representing the handler of the
|
758 kumpf 1.1 specified subscription.
759
|
760 kumpf 1.7 @param subscription the subscription
|
761 kumpf 1.1
|
762 kumpf 1.26 @return a Handler CIMInstance for the subscription's handler
|
763 kumpf 1.1 */
|
764 kumpf 1.26 CIMInstance _getHandler (
765 const CIMInstance & subscription) const;
|
766 kumpf 1.1
767 /**
|
768 kumpf 1.4 Determines if specified handler is Transient.
769
770 @param nameSpace the name space
771 @param handler the handler reference
772
773 @return True if the Handler is Transient,
774 False otherwise
775 */
776 Boolean _isTransient (
|
777 kumpf 1.31 const CIMNamespaceName & nameSpace,
|
778 kumpf 1.25 const CIMObjectPath & handler) const;
|
779 kumpf 1.4
780 /**
781 Deletes subscriptions referencing the specified handler.
782
783 @param nameSpace the name space
784 @param referenceProperty the name of the reference property in the
785 subscription instance
786 @param handler the handler reference
787 */
788 void _deleteReferencingSubscriptions (
|
789 kumpf 1.31 const CIMNamespaceName & nameSpace,
790 const CIMName & referenceProperty,
|
791 kumpf 1.25 const CIMObjectPath & handler);
|
792 kumpf 1.4
793 /**
794 Determines if specified Subscription has expired
795
796 NOTE: It is assumed that the instance passed to this function is a
797 Subscription instance, and that the Subscription Duration and
798 Start Time properties exist
799
800 @param instance the subscription instance
801
802 @return True if the Subscription has expired,
803 False otherwise
804 */
805 Boolean _isExpired (
806 const CIMInstance & instance) const;
807
808 /**
|
809 kumpf 1.5 Deletes specified subscription
810
811 @param subscription the subscription reference
812 */
813 void _deleteExpiredSubscription (
|
814 kumpf 1.25 CIMObjectPath & subscription);
|
815 kumpf 1.21
816 /**
817 Gets the Subscription Time Remaining property
818
819 Calculates time remaining from Subscription Start Time, Subscription
820 Duration, and current date time. If the subscription has a non-null
821 Duration, the Time Remaining is set, and True is returned. If the
822 subscription does not have a non-null Duration, it has no expiration
823 date, and the time remaining is unlimited. In this case, the Time
824 Remaining is not set and False is returned.
825
826 NOTE: It is assumed that the instance passed to this function is a
827 Subscription instance, and that the Start Time property exists and
828 has a value
829
830 @param instance Input the subscription instance
831 @param timeRemaining Output the time remaining (seconds)
832
833 @return True if the subscription has a non-null Duration
834 False otherwise
835 */
836 kumpf 1.21 Boolean _getTimeRemaining (
837 const CIMInstance & instance,
838 Uint64 & timeRemaining) const;
|
839 kumpf 1.5
840 /**
|
841 kumpf 1.4 Sets the Subscription Time Remaining property
842
843 Calculates time remaining from Subscription Start Time, Subscription
844 Duration, and current date time
845
846 NOTE: It is assumed that the instance passed to this function is a
847 Subscription instance, and that the Subscription Duration and
848 Start Time properties exist
849
850 @param instance the subscription instance
851 */
852 void _setTimeRemaining (
853 CIMInstance & instance);
854
855 /**
|
856 kumpf 1.23 Gets the parameter values required to Create or Modify the subscription
|
857 kumpf 1.10 request.
|
858 kumpf 1.5 If no indication providers are found, condition and queryLanguage are
|
859 kumpf 1.3 set to empty string.
860
|
861 kumpf 1.33 @param nameSpaceName Input namespace name (of subscription)
862 @param subscriptionInstance Input subscription instance
863 @param indicationSubclasses Output list of subclasses of indication
864 class in filter query
|
865 kumpf 1.3 @param indicationProviders Output list of providers with associated
866 classes
867 @param propertyList Output list of properties required by the
868 subscription
|
869 kumpf 1.17 @param sourceNameSpace Output source namespace for filter query
|
870 kumpf 1.3 @param condition Output condition part of the filter query
871 @param queryLanguage Output query language in which the filter
872 query is expressed
873 */
|
874 kumpf 1.23 void _getCreateParams (
|
875 kumpf 1.31 const CIMNamespaceName & nameSpaceName,
|
876 kumpf 1.3 const CIMInstance & subscriptionInstance,
|
877 kumpf 1.33 Array <CIMName> & indicationSubclasses,
|
878 kumpf 1.10 Array <ProviderClassList> & indicationProviders,
879 CIMPropertyList & propertyList,
|
880 kumpf 1.31 CIMNamespaceName & sourceNameSpace,
|
881 kumpf 1.10 String & condition,
882 String & queryLanguage);
883
884 /**
|
885 kumpf 1.23 Gets the parameter values required to Create or Modify the subscription
|
886 kumpf 1.10 request.
887
|
888 kumpf 1.33 @param nameSpaceName Input namespace name (of subscription)
889 @param subscriptionInstance Input subscription instance
890 @param indicationSubclasses Output list of subclasses of indication
891 class in filter query
|
892 kumpf 1.10 @param propertyList Output list of properties required by the
893 subscription
|
894 kumpf 1.17 @param sourceNameSpace Output source namespace for filter query
|
895 kumpf 1.10 @param condition Output condition part of the filter query
896 @param queryLanguage Output query language in which the filter
897 query is expressed
898 */
|
899 kumpf 1.23 void _getCreateParams (
|
900 kumpf 1.31 const CIMNamespaceName & nameSpaceName,
|
901 kumpf 1.10 const CIMInstance & subscriptionInstance,
|
902 kumpf 1.33 Array <CIMName> & indicationSubclasses,
|
903 kumpf 1.3 CIMPropertyList & propertyList,
|
904 kumpf 1.31 CIMNamespaceName & sourceNameSpace,
|
905 kumpf 1.3 String & condition,
906 String & queryLanguage);
907
908 /**
|
909 kumpf 1.23 Gets the parameter values required to Delete the subscription request.
|
910 kumpf 1.5
|
911 kumpf 1.33 @param nameSpaceName Input namespace name
912 @param subscriptionInstance Input subscription instance
913 @param indicationSubclasses Output list of subclasses of indication
914 class in filter query
915 @param sourceNameSpace Output source namespace for filter query
|
916 kumpf 1.5
|
917 kumpf 1.23 @return List of providers with associated classes to Delete
|
918 kumpf 1.5 */
|
919 kumpf 1.23 Array <ProviderClassList> _getDeleteParams (
|
920 kumpf 1.31 const CIMNamespaceName & nameSpaceName,
|
921 kumpf 1.33 const CIMInstance & subscriptionInstance,
922 Array <CIMName> & indicationSubclasses,
923 CIMNamespaceName & sourceNameSpace);
|
924 mday 1.13
|
925 kumpf 1.5 /**
|
926 kumpf 1.23 Sends Create subscription request for the specified subscription
|
927 kumpf 1.41 to each provider in the list. Create Subscription requests must be
928 sent to the indication providers in the following cases: (1) on
929 initialization, for each enabled subscription retrieved from the
930 repository, (2) on creation of an enabled subscription instance, (3) on
931 modification of a subscription instance, when the state changes to
932 enabled, and (4) on notification of a provider registration change
933 newly enabling the provider to serve the subscription. In cases (2) and
934 (3), there is an original Create Instance or Modify Instance request to
935 which the Indication Service must respond. In cases (1) and (4), there
936 is an original request (Notify Provider Registration Request), but no
937 response is required.
|
938 kumpf 1.1
939 @param indicationProviders list of providers with associated classes
|
940 kumpf 1.44 @param nameSpace the nameSpace name of the resource been monitored.
941 This value is contained in the SourceNamespace
942 property of the CIM_IndicationFilter
943 instance for the specified subscription
|
944 kumpf 1.1 @param propertyList the properties referenced by the
945 subscription
946 @param condition the condition part of the filter query
947 @param queryLanguage the query language in which the filter
948 query is expressed
|
949 kumpf 1.23 @param subscription the subscription to be created
|
950 chuck 1.35 @param acceptLangs the language of the response, and
951 future indications
952 @param contentLangs the language of the subscription
|
953 kumpf 1.41 @param origRequest the original request, if any (e.g. Create
954 Instance, Modify Instance, Provider
955 Registration change)
956 @param indicationSubclasses the indication subclasses for the
957 subscription
|
958 kumpf 1.9 @param userName the userName for authentication
959 @param authType the authentication type
960
|
961 kumpf 1.1 */
|
962 kumpf 1.41 void _sendCreateRequests (
|
963 kumpf 1.10 const Array <ProviderClassList> & indicationProviders,
|
964 kumpf 1.31 const CIMNamespaceName & nameSpace,
|
965 kumpf 1.1 const CIMPropertyList & propertyList,
966 const String & condition,
967 const String & queryLanguage,
|
968 kumpf 1.26 const CIMInstance & subscription,
|
969 chuck 1.35 const AcceptLanguages & acceptLangs,
970 const ContentLanguages & contentLangs,
|
971 kumpf 1.41 const CIMRequestMessage * origRequest,
972 const Array <CIMName> & indicationSubclasses,
|
973 kumpf 1.9 const String & userName,
974 const String & authType = String::EMPTY);
|
975 mday 1.13
|
976 kumpf 1.1 /**
|
977 kumpf 1.23 Sends Modify subscription request for the specified subscription
|
978 kumpf 1.41 to each provider in the list. Modify Subscription requests must be
979 sent to the indication providers on notification of a provider
980 registration change, when the provider was formerly serving the
981 subscription, and is still serving the subscription, in the following
982 cases: (1) the provider is newly serving an additional indication
983 subclass specified by the subscription, and (2) the provider is
984 no longer serving an indication subclass specified by the subscription
985 (but is still serving at least one of the indication subclasses).
986 In cases (1) and (2), there is an original request (Notify Provider
987 Registration Request), but no response is required.
|
988 kumpf 1.1
989 @param indicationProviders list of providers with associated classes
|
990 kumpf 1.44 @param nameSpace the nameSpace name of the resource been monitored.
991 This value is contained in the SourceNamespace
992 property of the CIM_IndicationFilter
993 instance for the specified subscription
|
994 kumpf 1.1 @param propertyList the properties referenced by the
995 subscription
996 @param condition the condition part of the filter query
997 @param queryLanguage the query language in which the filter
998 query is expressed
999 @param subscription the subscription to be modified
|
1000 chuck 1.35 @param acceptLangs the language of the response, and
1001 future indications
1002 @param contentLangs the language of the subscription
|
1003 kumpf 1.41 @param origRequest the original request (Provider
1004 Registration change)
|
1005 kumpf 1.9 @param userName the userName for authentication
1006 @param authType the authentication type
|
1007 kumpf 1.1 */
1008 void _sendModifyRequests (
|
1009 kumpf 1.10 const Array <ProviderClassList> & indicationProviders,
|
1010 kumpf 1.31 const CIMNamespaceName & nameSpace,
|
1011 kumpf 1.1 const CIMPropertyList & propertyList,
1012 const String & condition,
1013 const String & queryLanguage,
|
1014 kumpf 1.26 const CIMInstance & subscription,
|
1015 chuck 1.35 const AcceptLanguages & acceptLangs,
1016 const ContentLanguages & contentLangs,
|
1017 kumpf 1.41 const CIMRequestMessage * origRequest,
|
1018 kumpf 1.9 const String & userName,
1019 const String & authType = String::EMPTY);
|
1020 kumpf 1.1
1021 /**
|
1022 kumpf 1.23 Sends Delete subscription request for the specified subscription
|
1023 kumpf 1.41 to each provider in the list. Delete Subscription requests must be
1024 sent to the indication providers in the following cases: (1) on deletion
1025 of an enabled subscription instance, (2) on modification of a
1026 subscription instance, when the state changes to disabled, and (3) on
1027 notification of a provider registration change newly preventing the
1028 provider from serving the subscription.
1029 In cases (1) and (2), there is an original Delete Instance or Modify
1030 Instance request to which the Indication Service must respond. In case
1031 (1), there is an original request (Notify Provider Registration
1032 Request), but no response is required.
|
1033 kumpf 1.1
1034 @param indicationProviders list of providers with associated classes
|
1035 kumpf 1.44 @param nameSpace the nameSpace name of the resource been monitored.
1036 This value is contained in the SourceNamespace
1037 property of the CIM_IndicationFilter
1038 instance for the specified subscription
|
1039 kumpf 1.1 @param subscription the subscription to be modified
|
1040 chuck 1.35 @param acceptLangs the language of the response
1041 @param contentLangs the language of the subscription
|
1042 kumpf 1.41 @param origRequest the original request (e.g. Delete
1043 Instance, Modify Instance, Provider
1044 Registration change)
1045 @param indicationSubclasses the indication subclasses for the
1046 subscription
|
1047 kumpf 1.9 @param userName the userName for authentication
1048 @param authType the authentication type
|
1049 kumpf 1.1 */
|
1050 kumpf 1.23 void _sendDeleteRequests (
|
1051 kumpf 1.10 const Array <ProviderClassList> & indicationProviders,
|
1052 kumpf 1.31 const CIMNamespaceName & nameSpace,
|
1053 kumpf 1.26 const CIMInstance & subscription,
|
1054 chuck 1.35 const AcceptLanguages & acceptLangs,
1055 const ContentLanguages & contentLangs,
|
1056 kumpf 1.41 const CIMRequestMessage * origRequest,
1057 const Array <CIMName> & indicationSubclasses,
|
1058 kumpf 1.9 const String & userName,
1059 const String & authType = String::EMPTY);
|
1060 kumpf 1.1
1061 /**
|
1062 kumpf 1.41 Collects responses from providers for aggregation as they are received,
1063 and stores them in the IndicationOperationAggregate instance. Calls
1064 _handleOperationResponseAggregation to process the responses, once all
1065 expected responses have been received.
1066
1067 @param operation shared data structure that controls msg
1068 processing
1069 @param destination target queue of completion callback
1070 @param userParameter user parameter for callback processing
1071 */
1072 static void _aggregationCallBack (
1073 AsyncOpNode * operation,
1074 MessageQueue * destination,
1075 void * userParameter);
1076
1077 /**
1078 Calls the appropriate function to processes responses from providers,
1079 based on the type of request sent to providers, once all responses have
1080 been received.
1081
1082 @param operationAggregate the operation aggregate instance
1083 kumpf 1.41 */
1084 void _handleOperationResponseAggregation (
1085 IndicationOperationAggregate * operationAggregate);
1086
1087 /**
1088 Processes create subscription responses from providers, once all have
1089 been received. Takes the appropriate action, based on the type of the
1090 original request, if any, and the responses received. Sends the
1091 response to the original request, if required.
1092
1093 @param operationAggregate the operation aggregate instance
1094 */
1095 void _handleCreateResponseAggregation (
1096 IndicationOperationAggregate * operationAggregate);
1097
1098 /**
1099 Processes enable indications responses from providers, once all have
1100 been received.
1101
1102 @param operationAggregate the operation aggregate instance
1103 */
1104 kumpf 1.41 void _handleEnableResponseAggregation (
1105 IndicationOperationAggregate * operationAggregate);
1106
1107 /**
1108 Processes modify subscription responses from providers, once all have
1109 been received. Updates the subscription hash tables.
1110
1111 @param operationAggregate the operation aggregate instance
1112 */
1113 void _handleModifyResponseAggregation (
1114 IndicationOperationAggregate * operationAggregate);
1115
1116 /**
1117 Processes delete subscription responses from providers, once all have
1118 been received. Updates the subscription hash tables appropriately,
1119 based on the type of the original request, if any. Sends the response
1120 to the original request, if required.
1121
1122 @param operationAggregate the operation aggregate instance
1123 */
1124 void _handleDeleteResponseAggregation (
1125 kumpf 1.41 IndicationOperationAggregate * operationAggregate);
1126
1127 /**
|
1128 kumpf 1.50 Processes disable indications responses from providers, once all have
1129 been received.
1130
1131 @param operationAggregate the operation aggregate instance
1132 */
1133 void _handleDisableResponseAggregation
1134 (IndicationOperationAggregate * operationAggregate);
1135
1136 /**
|
1137 kumpf 1.33 Generates a unique String key for the Active Subscriptions table from
1138 the subscription namespace name and key values.
1139
1140 @param subscription the subscription instance
1141
1142 @return the generated key
1143 */
1144 String _generateActiveSubscriptionsKey (
1145 const CIMObjectPath & subscriptionRef);
1146
1147 /**
|
1148 kumpf 1.45 Locks the _subscriptionClassesTableLock for read access and looks
|
1149 kumpf 1.39 up an entry in the Active Subscriptions table.
1150
1151 @param key the hash table key
1152 @param tableEntry the table entry retrieved
1153
1154 @return true if the key is found in the table, false otherwise
1155 */
1156 Boolean _lockedLookupActiveSubscriptionsEntry (
1157 const String & key,
1158 ActiveSubscriptionsTableEntry & tableEntry);
1159
1160 /**
1161 Inserts an entry into the Active Subscriptions table. The caller
1162 must first lock _activeSubscriptionsTableLock for write access.
|
1163 kumpf 1.10
|
1164 kumpf 1.32 @param subscription the subscription instance
|
1165 kumpf 1.33 @param providers the list of providers
1166 */
1167 void _insertActiveSubscriptionsEntry (
1168 const CIMInstance & subscription,
1169 const Array <ProviderClassList> & providers);
1170
1171 /**
|
1172 kumpf 1.39 Removes an entry from the Active Subscriptions table. The caller
1173 must first lock _activeSubscriptionsTableLock for write access.
1174
1175 @param key the key of the entry to remove
1176 */
1177 void _removeActiveSubscriptionsEntry (
1178 const String & key);
1179
1180 /**
|
1181 kumpf 1.33 Generates a unique String key for the Subscription Classes table from
1182 the indication class name and source namespace name.
1183
1184 @param indicationClassName the indication class name
1185 @param sourceNamespaceName the source namespace name
|
1186 kumpf 1.10
1187 @return the generated key
1188 */
|
1189 kumpf 1.33 String _generateSubscriptionClassesKey (
1190 const CIMName & indicationClassName,
1191 const CIMNamespaceName & sourceNamespaceName);
1192
1193 /**
|
1194 kumpf 1.39 Locks the _subscriptionClassesTableLock for read access and looks
1195 up an entry in the Subscription Classes table.
1196
1197 @param key the hash table key
1198 @param tableEntry the table entry retrieved
1199
1200 @return true if the key is found in the table, false otherwise
1201 */
1202 Boolean _lockedLookupSubscriptionClassesEntry (
1203 const String & key,
1204 SubscriptionClassesTableEntry & tableEntry);
1205
1206 /**
1207 Locks the _subscriptionClassesTableLock for write access and inserts
1208 an entry into the Subscription Classes table.
|
1209 kumpf 1.33
1210 @param indicationClassName the indication class name
1211 @param sourceNamespaceName the source namespace name
1212 @param subscriptions the list of subscription instances
1213 */
|
1214 kumpf 1.39 void _lockedInsertSubscriptionClassesEntry (
|
1215 kumpf 1.33 const CIMName & indicationClassName,
1216 const CIMNamespaceName & sourceNamespaceName,
1217 const Array <CIMInstance> & subscriptions);
1218
1219 /**
|
1220 kumpf 1.39 Locks the _subscriptionClassesTableLock for write access and removes
1221 an entry from the Subscription Classes table.
1222
1223 @param key the key of the entry to remove
1224 */
1225 void _lockedRemoveSubscriptionClassesEntry (
1226 const String & key);
1227
1228 /**
|
1229 kumpf 1.33 Inserts entries (or updates existing entries) in the
1230 Active Subscriptions and Subscription Classes tables.
1231
1232 @param subscription the subscription instance
1233 @param providers the list of providers
1234 @param indicationSubclassNames the list of indication subclass names
1235 @param sourceNamespaceName the source namespace name
|
1236 kumpf 1.53
1237 @return list of (0 or more) providers that must be enabled
|
1238 kumpf 1.33 */
|
1239 kumpf 1.53 Array <ProviderClassList> _insertToHashTables (
|
1240 kumpf 1.26 const CIMInstance & subscription,
|
1241 kumpf 1.33 const Array <ProviderClassList> & providers,
1242 const Array <CIMName> & indicationSubclassNames,
1243 const CIMNamespaceName & sourceNamespaceName);
|
1244 kumpf 1.10
1245 /**
|
1246 kumpf 1.53 Updates an entry in the Active Subscriptions table to either add a
1247 provider to or remove a provider from the list of providers serving the
1248 subscription.
1249
1250 @param subscriptionPath the subscription object path
1251 @param provider the provider
1252 @param addProvider indicates if adding or removing
1253 provider
1254
1255 @return list of (0 or 1) provider that must be enabled or disabled
1256 */
1257 Array <ProviderClassList> _updateHashTable (
1258 const CIMObjectPath & subscriptionPath,
1259 const ProviderClassList & provider,
1260 Boolean addProvider);
1261
1262 /**
|
1263 kumpf 1.33 Removes entries (or updates entries) in the Active Subscriptions and
1264 Subscription Classes tables.
|
1265 kumpf 1.10
|
1266 kumpf 1.33 @param subscription the subscription instance
1267 @param indicationSubclassNames the list of indication subclass names
1268 @param sourceNamespaceName the source namespace name
|
1269 kumpf 1.53 @param providers the list of providers that had been
1270 serving the subscription
1271
1272 @return list of (0 or more) providers that must be disabled
|
1273 kumpf 1.10 */
|
1274 kumpf 1.53 Array <ProviderClassList> _removeFromHashTables (
|
1275 kumpf 1.26 const CIMInstance & subscription,
|
1276 kumpf 1.33 const Array <CIMName> & indicationSubclassNames,
|
1277 kumpf 1.53 const CIMNamespaceName & sourceNamespaceName,
1278 const Array <ProviderClassList> & providers);
|
1279 kumpf 1.10
1280 /**
|
1281 kumpf 1.1 Creates an alert instance of the specified class.
1282
1283 @param alertClassName the alert class name
|
1284 kumpf 1.7 @param subscriptions subscriptions for which alert is to be
|
1285 kumpf 1.1 created
1286
1287 @return the created alert instance
1288 */
1289 CIMInstance _createAlertInstance (
|
1290 kumpf 1.31 const CIMName & alertClassName,
|
1291 kumpf 1.26 const Array <CIMInstance> & subscriptions);
|
1292 mday 1.14
|
1293 kumpf 1.40 #if 0
|
1294 kumpf 1.33 /**
|
1295 mday 1.14 Asynchronous completion routine for _sendAlerts
1296 */
1297
1298 static void _sendAlertsCallBack(AsyncOpNode *operation,
1299 MessageQueue *callback_destination,
1300 void *parameter);
|
1301 kumpf 1.1
1302 /**
1303 Sends specified alert to each unique handler instance for the
1304 specified subscriptions in the list.
1305
|
1306 kumpf 1.7 @param subscriptions subscriptions for which alert is to be
|
1307 kumpf 1.1 sent
1308 @param alertInstance the alert to be sent
1309 */
1310 void _sendAlerts (
|
1311 kumpf 1.26 const Array <CIMInstance> & subscriptions,
|
1312 kumpf 1.1 /* const */ CIMInstance & alertInstance);
|
1313 kumpf 1.40 #endif
|
1314 mday 1.18
|
1315 kumpf 1.16 /**
|
1316 kumpf 1.50 Sends an Enable Indications request to the specified providers.
|
1317 kumpf 1.16
|
1318 kumpf 1.41 @param enableProviders the providers to be enabled
|
1319 kumpf 1.16 */
|
1320 kumpf 1.23 void _sendEnable (
|
1321 kumpf 1.41 const Array <ProviderClassList> & enableProviders,
1322 const CIMRequestMessage * origRequest);
|
1323 kumpf 1.50
1324 /**
1325 Sends a Disable Indications request to the specified providers.
1326
1327 @param disableProviders the providers to be disabled
1328 */
1329 void _sendDisable
1330 (const Array <ProviderClassList> & disableProviders,
1331 const CIMRequestMessage * origRequest);
|
1332 kumpf 1.16
|
1333 kumpf 1.1 WQLSimplePropertySource _getPropertySourceFromInstance(
1334 CIMInstance & indicationInstance);
|
1335 kumpf 1.5
|
1336 kumpf 1.37 /**
1337 Gets the value of the Creator property from the specified Subscription
1338 instance. If this function returns False, the value of the creator
1339 parameter is unchanged.
1340
1341 @param instance subscription instance
1342 @param creator value of Creator property if retrieved
1343
1344 @return True if the value of the Creator property was retrieved
1345 False if Creator property was missing, null, or of an
1346 incorrect type.
1347 */
1348 Boolean _getCreator (
1349 const CIMInstance & instance,
1350 String & creator) const;
1351
1352 /**
1353 Gets the value of the SubscriptionState property from the specified
1354 Subscription instance. If this function returns False, the value of
1355 the state parameter is unchanged.
1356
1357 kumpf 1.37 @param instance subscription instance
1358 @param state value of SubscriptionState property if
1359 retrieved
1360
1361 @return True if the value of the SubscriptionState property was
1362 retrieved
1363 False if SubscriptionState property was missing, null, of an
1364 incorrect type, or with an invalid value.
1365 */
1366 Boolean _getState (
1367 const CIMInstance & instance,
1368 Uint16 & state) const;
1369
|
1370 kumpf 1.46 /**
1371 This function peforms an authorization test based on the
1372 value of the enableSubscriptionForNonprivilegedUsers.
1373
1374 @param userName String
1375
1376 @return True if authentication is not enabled or the
1377 user is a privileged system user.
1378 False if authentication is enabled and the
1379 user is not privileged.
1380 */
1381 void _checkNonprivilegedAuthorization (
1382 const String & userName);
1383
|
1384 kumpf 1.48 /**
|
1385 kumpf 1.49 Updates the propertyList, in preparation for calling the Repository.
1386 If the propertyList is not null, the Creator property must be added to
1387 the list. Also, if the request is for the Subscription class, the
1388 value of the Time Remaining property need only be calculated if it is
1389 requested. In that case, the Subscription Duration and Start Time
1390 properties must be added to the list if not already there.
1391
1392 @param className class name for the request
1393 @param propertyList list of properties requested
1394 @param setTimeRemaining indicates whether Time Remaining property
1395 was requested
1396 @param startTimeAdded indicates whether Start Time property was
1397 added to the list
1398 @param durationAdded indicates whether Duration property was
1399 added to the list
1400 */
1401 void _updatePropertyList
1402 (CIMName & className,
1403 CIMPropertyList & propertyList,
1404 Boolean & setTimeRemaining,
1405 Boolean & startTimeAdded,
1406 kumpf 1.49 Boolean & durationAdded);
1407
1408 /**
|
1409 kumpf 1.48 Gets a String containing the comma-separated Subscription Filter Name
1410 and Handler Name, for use in a log message to identify the subscription.
1411
1412 @param subscription subscription instance
1413
1414 @return String containing the comma-separated Subscription Filter Name
1415 and Handler Name
1416 */
1417 String _getSubscriptionLogString
1418 (CIMInstance & subscription);
1419
1420 /**
1421 Gets a String containing the Provider Name, for use in a log message to
1422 identify the provider.
1423
1424 @param provider provider instance
1425
1426 @return String containing the Provider Name
1427 */
1428 String _getProviderLogString
1429 (CIMInstance & provider);
|
1430 kumpf 1.51
1431 /**
1432 Determines whether two instances are the same, based on the key values.
1433
1434 @param instance1 one instance
1435 @param instance2 the other instance
1436 @param theClass the class to which the instances belong
1437
1438 @return True if the instances are the same
1439 False otherwise
1440 */
1441 Boolean _sameInstance
1442 (const CIMInstance & instance1,
1443 const CIMInstance & instance2,
1444 const CIMClass & theClass) const;
|
1445 kumpf 1.48
|
1446 kumpf 1.6 CIMRepository * _repository;
1447
|
1448 kumpf 1.8 /**
1449 Handle to Provider Registration Manager
1450 */
1451 ProviderRegistrationManager * _providerRegManager;
|
1452 kumpf 1.5
1453 /**
1454 Integer representing queue ID for accessing Provider Manager Service
1455 */
1456 Uint32 _providerManager;
1457
1458 /**
1459 Integer representing queue ID for accessing Handler Manager Service
1460 */
1461 Uint32 _handlerService;
1462
1463 /**
|
1464 kumpf 1.32 FUTURE: Integer representing queue ID for accessing Repository Service
|
1465 kumpf 1.5 */
1466 //Uint32 _repository;
1467
1468 /**
|
1469 kumpf 1.46 Boolean indicating that the CIM Server has been configured to
1470 allow non-privileged users read and write access to the
1471 Subscription classes.
1472 */
1473 Boolean _enableSubscriptionsForNonprivilegedUsers;
1474
1475 /**
|
1476 kumpf 1.39 Active Subscriptions information table. Access to this table is
1477 controlled by the _activeSubscriptionsTableLock.
|
1478 kumpf 1.33 */
1479 ActiveSubscriptionsTable _activeSubscriptionsTable;
|
1480 kumpf 1.39 /**
1481 A lock to control access to the _activeSubscriptionsTable. Before
1482 accessing the _activeSubscriptionsTable, one must first lock this for
1483 read access. Before updating the _activeSubscriptionsTable, one must
1484 first lock this for write access.
1485 */
1486 ReadWriteSem _activeSubscriptionsTableLock;
|
1487 kumpf 1.33
1488 /**
|
1489 kumpf 1.39 Subscription Classes information table. Access to this table is
1490 controlled by the _subscriptionClassesTableLock.
|
1491 kumpf 1.10 */
|
1492 kumpf 1.33 SubscriptionClassesTable _subscriptionClassesTable;
|
1493 kumpf 1.39 /**
1494 A lock to control access to the _subscriptionClassesTable. Before
1495 accessing the _subscriptionClassesTable, one must first lock this for
1496 read access. Before updating the _subscriptionClassesTable, one must
1497 first lock this for write access.
1498 */
1499 ReadWriteSem _subscriptionClassesTableLock;
|
1500 kumpf 1.10
|
1501 kumpf 1.19 Array <Uint16> _validStates;
1502 Array <Uint16> _validRepeatPolicies;
1503 Array <Uint16> _validErrorPolicies;
1504 Array <Uint16> _validPersistenceTypes;
1505
|
1506 kumpf 1.10 /**
|
1507 kumpf 1.5 Values for the Subscription State property of the Subscription class,
1508 as defined in the CIM Events MOF
1509 */
1510 enum SubscriptionState {_STATE_UNKNOWN = 0, _STATE_OTHER = 1,
1511 _STATE_ENABLED = 2, _STATE_ENABLEDDEGRADED = 3, _STATE_DISABLED = 4};
1512
1513 /**
1514 Values for the Repeat Notification Policy property of the Subscription
1515 class, as defined in the CIM Events MOF
1516 */
1517 enum RepeatNotificationPolicy {_POLICY_UNKNOWN = 0, _POLICY_OTHER = 1,
1518 _POLICY_NONE = 2, _POLICY_SUPPRESS = 3, _POLICY_DELAY = 4};
1519
1520 /**
1521 Values for the On Fatal Error Policy property of the Subscription
1522 class, as defined in the CIM Events MOF
1523 */
1524 enum OnFatalErrorPolicy {_ERRORPOLICY_OTHER = 1, _ERRORPOLICY_IGNORE = 2,
1525 _ERRORPOLICY_DISABLE = 3, _ERRORPOLICY_REMOVE = 4};
1526
1527 /**
1528 kumpf 1.5 Values for the Persistence Type property of the Handler class,
1529 as defined in the CIM Events MOF
1530 */
1531 enum PersistenceType {_PERSISTENCE_OTHER = 1, _PERSISTENCE_PERMANENT = 2,
1532 _PERSISTENCE_TRANSIENT = 3};
1533
1534 /**
1535 Values for the Perceived Severity property of the Alert Indication
1536 class, as defined in the CIM Events MOF
1537 */
1538 enum PerceivedSeverity {_SEVERITY_UNKNOWN = 0, _SEVERITY_OTHER = 1,
1539 _SEVERITY_INFORMATION = 2, _SEVERITY_WARNING = 3, _SEVERITY_MINOR = 4,
1540 _SEVERITY_MAJOR = 5, _SEVERITY_CRITICAL = 6, _SEVERITY_FATAL = 7};
1541
1542 /**
1543 Values for the Probable Cause property of the Alert Indication
1544 class, as defined in the CIM Events MOF
1545 Note: not all possible values have been included
1546 */
1547 enum ProbableCause {_CAUSE_UNKNOWN = 0, _CAUSE_OTHER = 1};
1548
1549 kumpf 1.5 /**
1550 Values for the Alert Type property of the Alert Indication class,
1551 as defined in the CIM Events MOF
1552 */
1553 enum AlertType {_TYPE_OTHER = 1, _TYPE_COMMUNICATIONS = 2, _TYPE_QOS = 3,
1554 _TYPE_PROCESSING = 4, _TYPE_DEVICE = 5, _TYPE_ENVIRONMENTAL = 6,
1555 _TYPE_MODELCHANGE = 7, _TYPE_SECURITY = 8};
|
1556 kumpf 1.1
|
1557 kumpf 1.3 //
1558 // Class names
1559 //
1560
|
1561 kumpf 1.1 /**
1562 The name of the CIMOM Shutdown alert indication class
1563 */
|
1564 kumpf 1.31 static const CIMName _CLASS_CIMOM_SHUTDOWN_ALERT;
|
1565 kumpf 1.1
1566 /**
1567 The name of the No Provider alert indication class
1568 */
|
1569 kumpf 1.31 static const CIMName _CLASS_NO_PROVIDER_ALERT;
|
1570 kumpf 1.1
1571 /**
1572 The name of the CIMOM shutdown alert indication class
1573 */
|
1574 kumpf 1.31 static const CIMName _CLASS_PROVIDER_TERMINATED_ALERT;
|
1575 kumpf 1.1
1576
|
1577 kumpf 1.3 //
1578 // Property names
1579 //
1580
|
1581 kumpf 1.1 /**
1582 The name of the Subscription State property for Indication Subscription
1583 class
1584 */
|
1585 kumpf 1.31 static const CIMName _PROPERTY_STATE;
|
1586 kumpf 1.1
1587 /**
1588 The name of the Other Subscription State property for Indication
1589 Subscription class
1590 */
|
1591 kumpf 1.31 static const CIMName _PROPERTY_OTHERSTATE;
|
1592 kumpf 1.1
1593 /**
1594 The name of the repeat notification policy property for indication
1595 subscription class
1596 */
|
1597 kumpf 1.31 static const CIMName _PROPERTY_REPEATNOTIFICATIONPOLICY;
|
1598 kumpf 1.1
1599 /**
1600 The name of the other repeat notification policy property for
1601 indication subscription class
1602 */
|
1603 kumpf 1.31 static const CIMName _PROPERTY_OTHERREPEATNOTIFICATIONPOLICY;
|
1604 kumpf 1.1
1605 /**
1606 The name of the repeat notification interval property for indication
1607 subscription class
1608 */
|
1609 kumpf 1.31 static const CIMName _PROPERTY_REPEATNOTIFICATIONINTERVAL;
|
1610 kumpf 1.1
1611 /**
1612 The name of the repeat notification gap property for indication
1613 subscription class
1614 */
|
1615 kumpf 1.31 static const CIMName _PROPERTY_REPEATNOTIFICATIONGAP;
|
1616 kumpf 1.1
1617 /**
1618 The name of the repeat notification count property for indication
1619 subscription class
1620 */
|
1621 kumpf 1.31 static const CIMName _PROPERTY_REPEATNOTIFICATIONCOUNT;
|
1622 kumpf 1.1
1623 /**
1624 The name of the On Fatal Error Policy property for Indication
1625 Subscription class
1626 */
|
1627 kumpf 1.31 static const CIMName _PROPERTY_ONFATALERRORPOLICY;
|
1628 kumpf 1.1
1629 /**
1630 The name of the Other On Fatal Error Policy property for Indication
1631 Subscription class
1632 */
|
1633 kumpf 1.31 static const CIMName _PROPERTY_OTHERONFATALERRORPOLICY;
|
1634 kumpf 1.1
1635 /**
|
1636 kumpf 1.4 The name of the Time Of Last State Change property for Indication
1637 Subscription class
1638 */
|
1639 kumpf 1.31 static const CIMName _PROPERTY_LASTCHANGE;
|
1640 kumpf 1.4
1641 /**
1642 The name of the Subscription Start Time property for Indication
1643 Subscription class
1644 */
|
1645 kumpf 1.31 static const CIMName _PROPERTY_STARTTIME;
|
1646 kumpf 1.4
1647 /**
1648 The name of the Subscription Duration property for Indication
1649 Subscription class
1650 */
|
1651 kumpf 1.31 static const CIMName _PROPERTY_DURATION;
|
1652 kumpf 1.4
1653 /**
1654 The name of the Subscription Time Remaining property for Indication
1655 Subscription class
1656 */
|
1657 kumpf 1.31 static const CIMName _PROPERTY_TIMEREMAINING;
|
1658 kumpf 1.4
1659 /**
|
1660 kumpf 1.1 The name of the filter reference property for indication subscription
1661 class
1662 */
|
1663 kumpf 1.31 static const CIMName _PROPERTY_FILTER;
|
1664 kumpf 1.1
1665 /**
1666 The name of the handler reference property for indication subscription
1667 class
1668 */
|
1669 kumpf 1.31 static const CIMName _PROPERTY_HANDLER;
|
1670 kumpf 1.1
1671 /**
1672 The name of the query property for indication filter class
1673 */
|
1674 kumpf 1.31 static const CIMName _PROPERTY_QUERY;
|
1675 kumpf 1.1
1676 /**
1677 The name of the query language property for indication filter class
1678 */
|
1679 kumpf 1.31 static const CIMName _PROPERTY_QUERYLANGUAGE;
|
1680 kumpf 1.1
1681 /**
1682 The name of the Source Namespace property for indication filter class
1683 */
|
1684 kumpf 1.31 static const CIMName _PROPERTY_SOURCENAMESPACE;
|
1685 kumpf 1.1
1686 /**
1687 The name of the name property for indication filter and indication
1688 handler classes
1689 */
|
1690 kumpf 1.31 static const CIMName _PROPERTY_NAME;
|
1691 kumpf 1.1
1692 /**
1693 The name of the creation class name property for indication filter and
1694 indication handler classes
1695 */
|
1696 kumpf 1.31 static const CIMName _PROPERTY_CREATIONCLASSNAME;
|
1697 kumpf 1.1
1698 /**
1699 The name of the system name property for indication filter and
1700 indication handler classes
1701 */
|
1702 kumpf 1.31 static const CIMName _PROPERTY_SYSTEMNAME;
|
1703 kumpf 1.1
1704 /**
1705 The name of the system creation class name property for indication
1706 filter and indication handler classes
1707 */
|
1708 kumpf 1.31 static const CIMName _PROPERTY_SYSTEMCREATIONCLASSNAME;
|
1709 kumpf 1.1
1710 /**
1711 The name of the Persistence Type property for Indication Handler class
1712 */
|
1713 kumpf 1.31 static const CIMName _PROPERTY_PERSISTENCETYPE;
|
1714 kumpf 1.1
1715 /**
1716 The name of the Other Persistence Type property for Indication Handler
1717 class
1718 */
|
1719 kumpf 1.31 static const CIMName _PROPERTY_OTHERPERSISTENCETYPE;
|
1720 kumpf 1.1
1721 /**
|
1722 kumpf 1.7 The name of the Destination property for CIM XML Indication Handler
1723 subclass
|
1724 kumpf 1.1 */
|
1725 kumpf 1.31 static const CIMName _PROPERTY_DESTINATION;
|
1726 kumpf 1.7
1727 /**
|
1728 kumpf 1.34 The name of the TargetHost property for SNMP Mapper Indication
|
1729 kumpf 1.7 Handler subclass
1730 */
|
1731 kumpf 1.34 static const CIMName _PROPERTY_TARGETHOST;
|
1732 kumpf 1.1
1733 /**
|
1734 kumpf 1.34 The name of the TargetHostFormat property for SNMP Indication Handler subclass
|
1735 kumpf 1.1 */
|
1736 kumpf 1.34 static const CIMName _PROPERTY_TARGETHOSTFORMAT;
1737
1738 /**
1739 The name of the SNMP Version property for SNMP Indication Handler subclass
1740 */
1741 static const CIMName _PROPERTY_SNMPVERSION;
|
1742 kumpf 1.1
1743 /**
1744 The name of the Alert Type property for Alert Indication class
1745 */
|
1746 kumpf 1.31 static const CIMName _PROPERTY_ALERTTYPE;
|
1747 kumpf 1.1
1748 /**
1749 The name of the Other Alert Type property for Alert Indication class
1750 */
|
1751 kumpf 1.31 static const CIMName _PROPERTY_OTHERALERTTYPE;
|
1752 kumpf 1.1
1753 /**
1754 The name of the Perceived Severity property for Alert Indication class
1755 */
|
1756 kumpf 1.31 static const CIMName _PROPERTY_PERCEIVEDSEVERITY;
|
1757 kumpf 1.1
1758 /**
1759 The name of the Probable Cause property for Alert Indication class
1760 */
|
1761 kumpf 1.31 static const CIMName _PROPERTY_PROBABLECAUSE;
|
1762 kumpf 1.1
1763 /**
|
1764 kumpf 1.10 The name of the Provider Name property for Provider class
|
1765 kumpf 1.1 */
|
1766 kumpf 1.31 static const CIMName _PROPERTY_PROVIDERNAME;
|
1767 kumpf 1.1
1768 /**
|
1769 kumpf 1.10 The name of the Provider Module Name property for Provider class
|
1770 kumpf 1.1 */
|
1771 kumpf 1.31 static const CIMName _PROPERTY_PROVIDERMODULENAME;
|
1772 kumpf 1.1
|
1773 kumpf 1.9
1774 //
1775 // Qualifier names
1776 //
1777
1778 /**
1779 The name of the Indication qualifier for classes
1780 */
|
1781 kumpf 1.31 static const CIMName _QUALIFIER_INDICATION;
|
1782 kumpf 1.9
|
1783 kumpf 1.4
1784 //
1785 // Other literal values
1786 //
|
1787 kumpf 1.1
1788 /**
|
1789 kumpf 1.4 The WHERE keyword in WQL
|
1790 kumpf 1.1 */
|
1791 kumpf 1.4 static const char _QUERY_WHERE [];
|
1792 kumpf 1.1
1793 /**
|
1794 kumpf 1.4 The string representing the asterisk all properties symbol in WQL
|
1795 kumpf 1.1 */
|
1796 kumpf 1.4 static const char _QUERY_ALLPROPERTIES [];
|
1797 kumpf 1.3
|
1798 kumpf 1.30 /**
1799 A zero value CIMDateTime interval
1800 */
1801 static const char _ZERO_INTERVAL_STRING [];
1802
1803
|
1804 kumpf 1.3 //
1805 // Message substrings used in exception messages
1806 //
1807
|
1808 humberto 1.36 // l10n
1809
1810 // this one is tricky because it is used in _checkRequiredProperty with the two below
|
1811 kumpf 1.3 static const char _MSG_MISSING_REQUIRED [];
1812
1813 static const char _MSG_KEY_PROPERTY [];
|
1814 humberto 1.36 static const char _MSG_KEY_PROPERTY_KEY [];
|
1815 kumpf 1.3
1816 static const char _MSG_PROPERTY [];
|
1817 humberto 1.36 static const char _MSG_PROPERTY_KEY [];
|
1818 kumpf 1.3
1819 static const char _MSG_PROPERTY_PRESENT [];
1820 static const char _MSG_VALUE_NOT [];
|
1821 humberto 1.36 static const char _MSG_PROPERTY_PRESENT_BUT_VALUE_NOT_KEY [];
|
1822 kumpf 1.3
1823 static const char _MSG_NO_PROVIDERS [];
|
1824 humberto 1.36 static const char _MSG_NO_PROVIDERS_KEY[];
|
1825 kumpf 1.3
|
1826 kumpf 1.9 static const char _MSG_NOT_ACCEPTED [];
|
1827 humberto 1.36 static const char _MSG_NOT_ACCEPTED_KEY [];
|
1828 kumpf 1.9
|
1829 kumpf 1.3 static const char _MSG_INVALID_CLASSNAME [];
1830
1831 static const char _MSG_IN_FROM [];
|
1832 kumpf 1.4
|
1833 humberto 1.36 static const char _MSG_INVALID_CLASSNAME_IN_FROM_PROPERTY_KEY [];
1834
|
1835 kumpf 1.4 static const char _MSG_EXPIRED [];
|
1836 humberto 1.36 static const char _MSG_EXPIRED_KEY [];
|
1837 kumpf 1.9
1838 static const char _MSG_REFERENCED [];
|
1839 humberto 1.36 static const char _MSG_REFERENCED_KEY [];
|
1840 kumpf 1.19
1841 static const char _MSG_INVALID_VALUE [];
1842
|
1843 kumpf 1.37 static const char _MSG_INVALID_TYPE [];
1844
|
1845 kumpf 1.19 static const char _MSG_FOR_PROPERTY [];
|
1846 kumpf 1.23
|
1847 kumpf 1.37 static const char _MSG_ARRAY_OF [];
1848
|
1849 humberto 1.36 static const char _MSG_INVALID_VALUE_FOR_PROPERTY_KEY [];
1850
|
1851 kumpf 1.23 static const char _MSG_CLASS_NOT_SERVED [];
|
1852 kumpf 1.37
|
1853 humberto 1.36 static const char _MSG_CLASS_NOT_SERVED_KEY [];
|
1854 kumpf 1.37
1855 static const char _MSG_INVALID_INSTANCES [];
|
1856 humberto 1.38
1857 static const char _MSG_INVALID_INSTANCES_KEY [];
|
1858 kumpf 1.40
1859 static const char _MSG_PROVIDER_NO_LONGER_SERVING [];
|
1860 kumpf 1.41
|
1861 kumpf 1.40 static const char _MSG_PROVIDER_NO_LONGER_SERVING_KEY [];
1862
1863 static const char _MSG_PROVIDER_NOW_SERVING [];
|
1864 kumpf 1.41
|
1865 kumpf 1.40 static const char _MSG_PROVIDER_NOW_SERVING_KEY [];
1866
1867 static const char _MSG_NO_PROVIDER [];
|
1868 kumpf 1.41
|
1869 kumpf 1.40 static const char _MSG_NO_PROVIDER_KEY [];
|
1870 kumpf 1.46
1871 static const char _MSG_NON_PRIVILEGED_ACCESS_DISABLED [];
1872
1873 static const char _MSG_NON_PRIVILEGED_ACCESS_DISABLED_KEY [];
|
1874 kumpf 1.1 };
1875
1876 PEGASUS_NAMESPACE_END
1877
|
1878 kumpf 1.41 #endif /* Pegasus_IndicationService_h */
|