1 kumpf 1.1 //%//////-*-c++-*-//////////////////////////////////////////////////////////////
2 //
3 // Copyright (c) 2000, 2001 BMC Software, Hewlett-Packard Company, IBM,
4 // The Open Group, Tivoli Systems
5 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
7 // of this software and associated documentation files (the "Software"), to
8 // deal in the Software without restriction, including without limitation the
9 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10 // sell copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
12 //
13 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
14 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
15 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
16 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
17 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 //
22 kumpf 1.1 //==============================================================================
23 //
24 // Author: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
25 //
26 // Modified By: Carol Ann Krug Graves, Hewlett-Packard Company
27 // (carolann_graves@hp.com)
28 //
29 // Modified By: Ben Heilbronn, Hewlett-Packard Company
30 // (ben_heilbronn@hp.com)
31 //
32 //%/////////////////////////////////////////////////////////////////////////////
33
34 #ifndef Pegasus_IndicationService_h
35 #define Pegasus_IndicationService_h
36
37 #include <Pegasus/Common/Config.h>
38 #include <Pegasus/Common/MessageQueueService.h>
39 #include <Pegasus/Common/CIMMessage.h>
|
40 kumpf 1.24 #include <Pegasus/Common/IPC.h>
|
41 kumpf 1.1 #include <Pegasus/Repository/CIMRepository.h>
|
42 kumpf 1.6 #include <Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.h>
|
43 kumpf 1.1 #include <Pegasus/WQL/WQLParser.h>
44 #include <Pegasus/WQL/WQLSelectStatement.h>
45 #include <Pegasus/WQL/WQLSimplePropertySource.h>
46
47 PEGASUS_NAMESPACE_BEGIN
48
|
49 kumpf 1.10 /**
50 Entry for list of indication providers
51 */
52 struct providerClassList
|
53 kumpf 1.1 {
|
54 kumpf 1.6 CIMInstance provider;
55 CIMInstance providerModule;
|
56 kumpf 1.1 Array <String> classList;
|
57 mday 1.13 providerClassList()
58 {
59 }
60
61 providerClassList(const providerClassList & rh)
62 : provider(rh.provider),
63 providerModule(rh.providerModule),
64 classList(rh.classList)
65 {
66
67 }
68 providerClassList & operator= (const providerClassList & rh)
69 {
70 if( this != &rh)
71 {
72 provider = rh.provider;
73 providerModule = rh.providerModule;
74 classList = rh.classList;
75 }
76 return *this;
77 }
|
78 kumpf 1.1 };
|
79 mday 1.13
|
80 kumpf 1.10 typedef struct providerClassList ProviderClassList;
81
|
82 mday 1.13 struct enableProviderList
83 {
84 ProviderClassList *pcl;
85 CIMNamedInstance *cni;
86
87 enableProviderList(const ProviderClassList & list,
88 const CIMNamedInstance & instance)
89 {
90 pcl = new ProviderClassList(list);
91 cni = new CIMNamedInstance(instance);
92
93 }
94
95 ~enableProviderList()
96 {
97 delete pcl;
98 delete cni;
99 }
100
101 };
102
103 mday 1.13
|
104 kumpf 1.10 /**
105 Entry for Subscription table
106 */
107 struct SubscriptionTableEntry
108 {
109 CIMNamedInstance subscription;
110 CIMInstance provider;
111 Array <String> classList;
112 };
|
113 kumpf 1.1
|
114 kumpf 1.10 /**
115 Table for subscription information.
116 The table keys are generated by concatenating the Subscription namespace
117 name, Filter and Handler key values, and Provider key values. Each table
118 value includes the Subscription, the Provider, and the list of classnames.
119 The key allows quick access when the subscription and provider are both
120 known (i.e. initialize, instance operations, provider registration changes).
121 When only the provider is known (i.e. provider termination), an iterator is
122 used to search the table. That is, the table is designed to optimize all
123 operations except provider termination.
124 */
125 typedef HashTable <String,
126 SubscriptionTableEntry,
127 EqualFunc <String>,
128 HashFunc <String> > SubscriptionTable;
|
129 kumpf 1.1
130 /**
131
|
132 kumpf 1.5 IndicationService class is the service that serves the
|
133 kumpf 1.10 Indication Subscription, Indication Filter, and Indication Handler
|
134 kumpf 1.5 classes, and processes indications.
|
135 kumpf 1.1
136 @author Hewlett-Packard Company
137
138 */
139
140 class PEGASUS_SERVER_LINKAGE IndicationService : public MessageQueueService
141 {
142 public:
143
144 typedef MessageQueueService Base;
145
146 /**
147 Constructs an IndicationSubscription instance and initializes instance
148 variables.
149 */
|
150 kumpf 1.6 IndicationService (
151 CIMRepository * repository,
|
152 kumpf 1.8 ProviderRegistrationManager * providerRegManager);
|
153 kumpf 1.1
154 virtual ~IndicationService(void);
155
|
156 mday 1.2 void handleEnqueue(Message* message);
|
157 kumpf 1.1
158 virtual void handleEnqueue(void);
159
160 virtual void _handle_async_request(AsyncRequest *req);
161
162 AtomicInt dienow;
163
164 /**
|
165 kumpf 1.5 Operation types for the NotifyProviderRegistration message
|
166 kumpf 1.1 */
|
167 kumpf 1.5 enum Operation {OP_CREATE = 1, OP_DELETE = 2, OP_MODIFY = 3};
|
168 kumpf 1.24
169 static Mutex _mutex;
|
170 kumpf 1.1
|
171 kumpf 1.5 private:
|
172 kumpf 1.1
173 void _initialize (void);
174
175 void _terminate (void);
176
177 void _handleGetInstanceRequest(const Message * message);
178
179 void _handleEnumerateInstancesRequest(const Message * message);
180
181 void _handleEnumerateInstanceNamesRequest(const Message * message);
182
183 void _handleCreateInstanceRequest(const Message * message);
184
185 void _handleModifyInstanceRequest(const Message * message);
186
187 void _handleDeleteInstanceRequest(const Message * message);
188
189 void _handleProcessIndicationRequest(const Message * message);
190
191 /**
192 Notifies the Indication Service that a change in provider registration
193 kumpf 1.1 has occurred. The Indication Service retrieves the subscriptions
|
194 kumpf 1.23 affected by the registration change, sends the appropriate Create,
195 Modify, and/or Delete requests to the provider, and sends an alert to
|
196 kumpf 1.10 handler instances of subscriptions that are no longer served by the
197 provider.
|
198 kumpf 1.1 */
199 void _handleNotifyProviderRegistrationRequest(const Message * message);
200
201 /**
|
202 kumpf 1.11 Notifies the Indication Service that a provider has
203 terminated (either intentionally or abnormally). The
204 Indication Service retrieves the subscriptions affected by the
|
205 kumpf 1.1 termination, and sends an alert to handler instances of
206 subscriptions that are no longer served by the provider.
207 */
208 void _handleNotifyProviderTerminationRequest(const Message * message);
209
210 /**
|
211 kumpf 1.12 Implements the subscription's On Fatal Error Policy.
212 This function is called when a fatal error has occurred in the
213 indication provider or indication handler, and the subscription can no
214 longer be served.
215 If the subscription's policy is Disable, the Subscription State is
216 set to Disabled.
217 If the subscription's policy is Remove, the subscription instance is
218 deleted.
219
220 @param subscription the subscription named instance
221
222 @return True if the subscription has been disabled or deleted
223 False otherwise
224 */
225 Boolean _handleError (
226 const CIMNamedInstance subscription);
227
228 /**
229 Disables the subscription.
230 This function is called when a fatal error has occurred in the
231 indication provider or indication handler, the subscription can no
232 kumpf 1.12 longer be served, and the subscription's policy is Disable.
233 The Subscription State is set to Disabled.
234
235 @param subscription the subscription named instance
236 */
237 void _disableSubscription (
238 CIMNamedInstance subscription);
239
240 /**
241 Deletes the subscription instance.
242 This function is called when a fatal error has occurred in the
243 indication provider or indication handler, the subscription can no
244 longer be served, and the subscription's policy is Remove.
245 The subscription instance is deleted.
246
247 @param subscription the subscription named instance
248 */
249 void _deleteSubscription (
250 const CIMNamedInstance subscription);
251
252 /**
|
253 kumpf 1.5 Determines if it is legal to create an instance.
254 Checks for existence of all key and required properties. Checks that
255 properties that MUST NOT exist (based on values of other properties),
256 do not exist. For any property that has a default value, if it does
257 not exist, adds the property with the default value.
258
259 @param instance instance to be created
260 @param nameSpace namespace for instance to be created
261
262 @throw CIM_ERR_INVALID_PARAMETER if instance is invalid
263 @throw CIM_ERR_NOT_SUPPORTED if the specified class is not
264 supported
265
266 @return True if the instance can be created
|
267 kumpf 1.10 Otherwise throws an exception
|
268 kumpf 1.5 */
269 Boolean _canCreate (
270 CIMInstance & instance,
271 const String & nameSpace);
272
|
273 kumpf 1.21 /**
274 Validates the specified required property in the instance.
275 If the property does not exist, or has a null value, an exceptiuon is
276 thrown, using the specified message.
277
278 This function is called by the _canCreate function, and is used to
279 validate the Filter and Handler properties in Subscription instances,
280 the Name, CreationClassName, Query and Query Language properties in
281 Filter instances, the Name, CreationClassName, and Destination
282 properties in CIMXML Handler instances, and the Name, CreationClassName,
283 Trap Destination, and SNMP Version properties in SNMP Mapper instances.
284
285 @param instance instance to be validated
286 @param propertyName name of property to be validated
287 @param message message to be used in exception
288
289 @throw CIM_ERR_INVALID_PARAMETER if required property is missing or
290 null
291 */
|
292 kumpf 1.20 void _checkRequiredProperty (
293 CIMInstance & instance,
294 const String & propertyName,
295 const String & message);
296
|
297 kumpf 1.5 /**
|
298 kumpf 1.15 Validates the specified property and its corresponding Other___
299 property in the instance.
300 If the property does not exist, it is added with the default value.
301 If the property exists, but its value is NULL, its value is set to
302 the default value.
303 If the value of the property is Other, but the corresponding Other___
304 property either does not exist or has a value of NULL, an exception is
305 thrown.
306 If the value of the property is not Other, but the corresponding
307 Other___ property exists and has a non-NULL value, an exception is
308 thrown.
309 This function is called by the _canCreate function, and is used to
310 validate the following pairs of properties in Subscription or Handler
311 instances: Subscription State, Other Subscription State, Repeat
312 Notification Policy, Other Repeat Notification Policy, On Fatal Error
313 Policy, Other On Fatal Error Policy, Persistence Type, Other
314 Persistence Type.
315
316 @param instance instance to be validated
317 @param propertyName name of property to be validated
318 @param otherPropertyName name of Other___ property to be validated
319 kumpf 1.15 @param defaultValue default value for property
320 @param otherValue "Other" value for property
|
321 kumpf 1.19 @param validValues set of valid values for property
|
322 kumpf 1.15
323 @throw CIM_ERR_INVALID_PARAMETER if value of property or Other___
324 property is invalid
325 */
|
326 kumpf 1.20 void _checkPropertyWithOther (
|
327 kumpf 1.15 CIMInstance & instance,
328 const String & propertyName,
329 const String & otherPropertyName,
330 const Uint16 defaultValue,
|
331 kumpf 1.19 const Uint16 otherValue,
332 const Array <Uint16> & validValues);
|
333 kumpf 1.20
|
334 kumpf 1.21 /**
335 Validates the specified property in the instance.
336 If the property does not exist, it is added with the default value.
337 If the property exists, but its value is NULL, its value is set to
338 the default value.
339 This function is called by the _canCreate function, and is used to
340 validate the System Name and System Creation Class Name properties in
341 Filter and Handler instances, and the Source Namespace property in
342 Filter instances.
343
344 @param instance instance to be validated
345 @param propertyName name of property to be validated
346 @param defaultValue default value for property
347
348 @return the value of the property
349
350 */
|
351 kumpf 1.20 String _checkPropertyWithDefault (
352 CIMInstance & instance,
353 const String & propertyName,
354 const String & defaultValue);
|
355 kumpf 1.15
356 /**
|
357 kumpf 1.10 Determines if the user is authorized to modify the instance, and if the
358 specified modification is supported. Currently, the only modification
359 supported is of the Subscription State property of the Subscription
360 class.
|
361 kumpf 1.5
362 @param request modification request
363 @param instance instance to be modified
364
|
365 kumpf 1.10 @throw CIM_ERR_NOT_SUPPORTED if the specified modification is
|
366 kumpf 1.5 not supported
367 @throw CIM_ERR_ACCESS_DENIED if the user is not authorized to
368 modify the instance
369
370 @return True if the instance can be modified
|
371 kumpf 1.10 Otherwise throws an exception
|
372 kumpf 1.5 */
373 Boolean _canModify (
374 const CIMModifyInstanceRequestMessage * request,
|
375 kumpf 1.25 const CIMObjectPath & instanceReference,
|
376 kumpf 1.19 CIMInstance & instance);
|
377 kumpf 1.5
378 /**
|
379 kumpf 1.10 Determines if the user is authorized to delete the instance, and if it
|
380 kumpf 1.11 is legal to delete the instance. If authorized, Subscription instances
|
381 kumpf 1.10 may always be deleted. Filter and non-transient Handler instances may
382 only be deleted if they are not being referenced by any Subscription
383 instances. If the instance to be deleted is a transient Handler, any
384 referencing Subscriptions are also deleted.
|
385 kumpf 1.5
386 @param instanceReference reference for instance to be deleted
387 @param nameSpace namespace for instance to be deleted
|
388 kumpf 1.10 @param currentUser current user
389
390 @throw CIM_ERR_ACCESS_DENIED if the user is not authorized to
391 delete the instance
392 @throw CIM_ERR_FAILED if the instance to be deleted is
393 referenced by a subscription
|
394 kumpf 1.5
395 @return True if the instance can be deleted
|
396 kumpf 1.10 Otherwise throws an exception
|
397 kumpf 1.1 */
398 Boolean _canDelete (
|
399 kumpf 1.25 const CIMObjectPath & instanceReference,
|
400 kumpf 1.10 const String & nameSpace,
401 const String & currentUser);
|
402 kumpf 1.1
403 /**
404 Retrieves list of enabled subscription instances in all namespaces.
405
|
406 kumpf 1.7 @return list of CIMNamedInstance subscriptions
|
407 kumpf 1.1 */
|
408 kumpf 1.7 Array <CIMNamedInstance> _getActiveSubscriptions () const;
|
409 kumpf 1.1
410 /**
411 Retrieves list of enabled subscription instances in all namespaces,
412 where the subscription indication class matches or is a superclass
|
413 kumpf 1.10 of the supported class, and the properties required to process the
414 subscription are all contained in the list of supported properties.
|
415 kumpf 1.1
|
416 kumpf 1.10 @param supportedClass the supported class
417 @param nameSpaces the list of supported namespaces
418 @param supportedProperties the list of supported properties
|
419 kumpf 1.1
|
420 kumpf 1.7 @return list of CIMNamedInstance subscriptions
|
421 kumpf 1.1 */
|
422 kumpf 1.7 Array <CIMNamedInstance> _getMatchingSubscriptions (
|
423 kumpf 1.10 const String & supportedClass,
|
424 kumpf 1.9 const Array <String> nameSpaces,
|
425 kumpf 1.10 const CIMPropertyList & supportedProperties);
|
426 kumpf 1.1
427 /**
428 Retrieves lists of enabled subscription instances in all namespaces
429 that are either newly supported or previously supported, based on the
|
430 kumpf 1.9 supported class, the supported namespaces before and after modification,
431 and the supported properties before and after modification. For
|
432 kumpf 1.10 subscriptions based on the supported class, the newSubscriptions list
|
433 kumpf 1.9 returned contains the subscriptions for which the properties required
434 to process the subscription are all contained in the new list of
435 supported properties, but are not all contained in the old list of
436 supported properties, and/or the filter source namespace is contained in
437 the new list if supported namespaces, but is not contained in the old
438 list of supported namespaces. The formerSubscriptions list returned
439 contains the subscriptions for which the properties required to process
440 the subscription are not all contained in the new list of supported
441 properties, but are all contained in the old list of supported
442 properties, and/or the filter source namespace is not contained in the
443 new list if supported namespaces, but is contained in the old list of
444 supported namespaces.
445
|
446 kumpf 1.10 @param supportedClass the supported class
|
447 kumpf 1.9 @param newNameSpaces namespaces supported after modification
448 @param oldNameSpaces namespaces supported before modification
449 @param newProperties properties supported after modification
450 @param oldProperties properties supported before modification
|
451 kumpf 1.1 @param newSubscriptions the list of newly supported subscriptions
452 @param formerSubscriptions the list of previously supported
453 subscriptions
454 */
455 void _getModifiedSubscriptions (
|
456 kumpf 1.10 const String & supportedClass,
|
457 kumpf 1.9 const Array <String> & newNameSpaces,
458 const Array <String> & oldNameSpaces,
|
459 kumpf 1.1 const CIMPropertyList & newProperties,
460 const CIMPropertyList & oldProperties,
|
461 kumpf 1.7 Array <CIMNamedInstance> & newSubscriptions,
462 Array <CIMNamedInstance> & formerSubscriptions);
|
463 kumpf 1.1
464 /**
|
465 kumpf 1.15 Retrieves list of all namespaces from the repository.
466
467 @return List of all namespace names
468 */
469 Array <String> _getNameSpaceNames (void) const;
470
471 /**
472 Retrieves list of subscriptions in the specified namespace.
473
474 @param nameSpace the namespace
475
476 @return List of subscription named instances
477 */
478 Array <CIMNamedInstance> _getSubscriptions (
479 const String & nameSpaceName) const;
480
481 /**
|
482 kumpf 1.9 Determines if all of the required properties in the specified list
483 are contained in the specified list of supported properties.
484
485 @param requiredProperties the required properties
|
486 kumpf 1.10 @param supportedProperties the supported properties
|
487 kumpf 1.9
488 @return true if all required properties are supported
489 false otherwise
490 */
491 Boolean _inPropertyList (
492 const CIMPropertyList & requiredProperties,
|
493 kumpf 1.10 const CIMPropertyList & supportedProperties);
|
494 kumpf 1.9
495 /**
|
496 kumpf 1.1 Retrieves list of enabled subscription instances in all namespaces,
497 that are served by the specified provider.
498
|
499 kumpf 1.10 @param provider the provider instance
|
500 kumpf 1.1
|
501 kumpf 1.7 @return list of CIMNamedInstance subscriptions
|
502 kumpf 1.1 */
|
503 kumpf 1.7 Array <CIMNamedInstance> _getProviderSubscriptions (
|
504 kumpf 1.10 const CIMInstance & provider);
|
505 kumpf 1.1
506 /**
|
507 kumpf 1.10 Retrieves the values of the filter query, source namespace,
508 and query language properties for the specified subscription instance.
|
509 kumpf 1.1
|
510 kumpf 1.10 @param subscription Input subscription instance
511 @param nameSpaceName Input namespace name
512 @param query Output query for the filter
513 @param sourceNameSpace Output source namespace for the filter
514 subscription
515 @param queryLanguage Output query language in which the filter
516 query is expressed
|
517 kumpf 1.1 */
|
518 kumpf 1.10 void _getFilterProperties (
|
519 kumpf 1.1 const CIMInstance & subscription,
|
520 kumpf 1.10 const String & nameSpaceName,
521 String & query,
522 String & sourceNameSpace,
523 String & queryLanguage);
|
524 kumpf 1.1
525 /**
|
526 kumpf 1.10 Retrieves the values of the filter query and source namespace
527 properties for the specified subscription instance.
|
528 kumpf 1.8
|
529 kumpf 1.10 @param subscription Input subscription instance
530 @param nameSpaceName Input namespace name
531 @param query Output query for the filter
532 @param sourceNameSpace Output source namespace for the filter
533 subscription
|
534 kumpf 1.8 */
|
535 kumpf 1.10 void _getFilterProperties (
|
536 kumpf 1.8 const CIMInstance & subscription,
|
537 kumpf 1.10 const String & nameSpaceName,
538 String & query,
539 String & sourceNameSpace);
|
540 kumpf 1.8
541 /**
|
542 kumpf 1.10 Retrieves the values of the filter query property
|
543 kumpf 1.1 for the specified subscription instance.
544
|
545 kumpf 1.10 @param subscription Input subscription instance
546 @param nameSpaceName Input namespace name
547 @param query Output query for the filter
|
548 kumpf 1.1 */
|
549 kumpf 1.10 void _getFilterProperties (
|
550 kumpf 1.1 const CIMInstance & subscription,
|
551 kumpf 1.10 const String & nameSpaceName,
552 String & query);
|
553 kumpf 1.1
554 /**
555 Parses the filter query string, and returns the corresponding
556 WQLSelectStatement object.
557
558 @param filterQuery the filter query string
559
560 @return WQLSelectStatement representing the filter query
561 */
562 WQLSelectStatement _getSelectStatement (
563 const String & filterQuery) const;
564
565 /**
566 Extracts the indication class name from the specified WQL select
567 statement, and validates that the name represents a subclass of the
568 Indication class.
569
570 @param selectStatement the WQL select statement
571 @param nameSpaceName the namespace
572
573 @return String containing the indication class name
574 kumpf 1.1 */
575 String _getIndicationClassName (
576 const WQLSelectStatement & selectStatement,
577 const String & nameSpaceName) const;
|
578 kumpf 1.15
579 /**
580 Enumerates the subclass names of the specified indication class.
581
582 @param nameSpace the namespace
583 @param indicationClassName the indication class name
584
585 @return List of indication subclass names
586 */
587 Array <String> _getIndicationSubclasses (
588 const String & nameSpace,
589 const String & indicationClassName) const;
|
590 kumpf 1.1
591 /**
592 Retrieves the list of indication providers that serve the specified
593 indication subclasses.
594
595 @param nameSpaceName the namespace name
596 @param indicationClassName the indication class name
597 @param indicationSubclasses the list of indication subclass names
598 @param requiredPropertyList the properties required
599
600 @return list of ProviderClassList structs
601 */
|
602 kumpf 1.10 Array <ProviderClassList> _getIndicationProviders (
|
603 kumpf 1.1 const String & nameSpace,
604 const String & indicationClassName,
605 const Array <String> & indicationSubclasses,
606 const CIMPropertyList & requiredPropertyList) const;
607
608 /**
609 Retrieves the list of properties referenced by the specified
610 filter query select statement.
611
612 @param selectStatement the WQL select statement
|
613 kumpf 1.22 @param nameSpaceName the namespace
614 @param indicationClassName the indciation class name
|
615 kumpf 1.1
|
616 kumpf 1.22 @return CIMPropertyList of properties referenced by the filter query
617 select statement
|
618 kumpf 1.1 */
619 CIMPropertyList _getPropertyList (
|
620 kumpf 1.11 const WQLSelectStatement & selectStatement,
|
621 kumpf 1.22 const String & nameSpaceName,
622 const String & indicationClassName) const;
623
624 /**
625 Checks if the property list includes all properties in the specified
626 class. If so, a NULL CIMPropertyList is returned. Otherwise, a
627 CIMPropertyList containing all the properties is returned.
628
629 @param propertyList the list of property names
630 @param nameSpaceName the namespace
631 @param indicationClassName the indciation class name
632
633 @return CIMPropertyList of properties referenced by the filter query
634 select statement
635 */
636 CIMPropertyList _checkPropertyList (
637 const Array <String> & propertyList,
|
638 kumpf 1.11 const String & nameSpaceName,
639 const String & indicationClassName) const;
|
640 kumpf 1.1
641 /**
642 Extracts the condition (WHERE Clause) from the specified filter query
643 string.
644
645 @param filterQuery the filter query
646
647 @return String containing the filter query condition
648 */
649 String _getCondition (
650 const String & filterQuery) const;
651
652 /**
|
653 kumpf 1.7 Retrieves the Handler CIMNamedInstance representing the handler of the
|
654 kumpf 1.1 specified subscription.
655
|
656 kumpf 1.7 @param subscription the subscription
|
657 kumpf 1.1
|
658 kumpf 1.7 @return a Handler CIMNamedInstance for the subscription's handler
|
659 kumpf 1.1 */
|
660 kumpf 1.7 CIMNamedInstance _getHandler (
661 const CIMNamedInstance & subscription) const;
|
662 kumpf 1.1
663 /**
|
664 kumpf 1.4 Determines if specified handler is Transient.
665
666 @param nameSpace the name space
667 @param handler the handler reference
668
669 @return True if the Handler is Transient,
670 False otherwise
671 */
672 Boolean _isTransient (
673 const String & nameSpace,
|
674 kumpf 1.25 const CIMObjectPath & handler) const;
|
675 kumpf 1.4
676 /**
677 Deletes subscriptions referencing the specified handler.
678
679 @param nameSpace the name space
680 @param referenceProperty the name of the reference property in the
681 subscription instance
682 @param handler the handler reference
683 */
684 void _deleteReferencingSubscriptions (
685 const String & nameSpace,
686 const String & referenceProperty,
|
687 kumpf 1.25 const CIMObjectPath & handler);
|
688 kumpf 1.4
689 /**
690 Determines if specified Subscription has expired
691
692 NOTE: It is assumed that the instance passed to this function is a
693 Subscription instance, and that the Subscription Duration and
694 Start Time properties exist
695
696 @param instance the subscription instance
697
698 @return True if the Subscription has expired,
699 False otherwise
700 */
701 Boolean _isExpired (
702 const CIMInstance & instance) const;
703
704 /**
|
705 kumpf 1.5 Deletes specified subscription
706
707 @param subscription the subscription reference
708 */
709 void _deleteExpiredSubscription (
|
710 kumpf 1.25 CIMObjectPath & subscription);
|
711 kumpf 1.21
712 /**
713 Gets the Subscription Time Remaining property
714
715 Calculates time remaining from Subscription Start Time, Subscription
716 Duration, and current date time. If the subscription has a non-null
717 Duration, the Time Remaining is set, and True is returned. If the
718 subscription does not have a non-null Duration, it has no expiration
719 date, and the time remaining is unlimited. In this case, the Time
720 Remaining is not set and False is returned.
721
722 NOTE: It is assumed that the instance passed to this function is a
723 Subscription instance, and that the Start Time property exists and
724 has a value
725
726 @param instance Input the subscription instance
727 @param timeRemaining Output the time remaining (seconds)
728
729 @return True if the subscription has a non-null Duration
730 False otherwise
731 */
732 kumpf 1.21 Boolean _getTimeRemaining (
733 const CIMInstance & instance,
734 Uint64 & timeRemaining) const;
|
735 kumpf 1.5
736 /**
|
737 kumpf 1.4 Sets the Subscription Time Remaining property
738
739 Calculates time remaining from Subscription Start Time, Subscription
740 Duration, and current date time
741
742 NOTE: It is assumed that the instance passed to this function is a
743 Subscription instance, and that the Subscription Duration and
744 Start Time properties exist
745
746 @param instance the subscription instance
747 */
748 void _setTimeRemaining (
749 CIMInstance & instance);
750
751 /**
|
752 kumpf 1.23 Gets the parameter values required to Create or Modify the subscription
|
753 kumpf 1.10 request.
|
754 kumpf 1.5 If no indication providers are found, condition and queryLanguage are
|
755 kumpf 1.3 set to empty string.
756
|
757 kumpf 1.17 @param nameSpace Input namespace name (of subscription)
|
758 kumpf 1.3 @param subscription Input subscription instance
759 @param indicationProviders Output list of providers with associated
760 classes
761 @param propertyList Output list of properties required by the
762 subscription
|
763 kumpf 1.17 @param sourceNameSpace Output source namespace for filter query
|
764 kumpf 1.3 @param condition Output condition part of the filter query
765 @param queryLanguage Output query language in which the filter
766 query is expressed
767 */
|
768 kumpf 1.23 void _getCreateParams (
|
769 kumpf 1.3 const String & nameSpaceName,
770 const CIMInstance & subscriptionInstance,
|
771 kumpf 1.10 Array <ProviderClassList> & indicationProviders,
772 CIMPropertyList & propertyList,
|
773 kumpf 1.17 String & sourceNameSpace,
|
774 kumpf 1.10 String & condition,
775 String & queryLanguage);
776
777 /**
|
778 kumpf 1.23 Gets the parameter values required to Create or Modify the subscription
|
779 kumpf 1.10 request.
780
|
781 kumpf 1.17 @param nameSpace Input namespace name (of subscription)
|
782 kumpf 1.10 @param subscription Input subscription instance
783 @param propertyList Output list of properties required by the
784 subscription
|
785 kumpf 1.17 @param sourceNameSpace Output source namespace for filter query
|
786 kumpf 1.10 @param condition Output condition part of the filter query
787 @param queryLanguage Output query language in which the filter
788 query is expressed
789 */
|
790 kumpf 1.23 void _getCreateParams (
|
791 kumpf 1.10 const String & nameSpaceName,
792 const CIMInstance & subscriptionInstance,
|
793 kumpf 1.3 CIMPropertyList & propertyList,
|
794 kumpf 1.17 String & sourceNameSpace,
|
795 kumpf 1.3 String & condition,
796 String & queryLanguage);
797
798 /**
|
799 kumpf 1.23 Gets the parameter values required to Delete the subscription request.
|
800 kumpf 1.5
801 @param nameSpace Input namespace name
802 @param subscription Input subscription instance
803
|
804 kumpf 1.23 @return List of providers with associated classes to Delete
|
805 kumpf 1.5 */
|
806 kumpf 1.23 Array <ProviderClassList> _getDeleteParams (
|
807 kumpf 1.5 const String & nameSpaceName,
808 const CIMInstance & subscriptionInstance);
809
|
810 mday 1.13
811 /**
|
812 kumpf 1.23 Asynchronous completion routine for _sendCreateRequests.
|
813 mday 1.13
|
814 kumpf 1.23 @param operation shared data structure that controls msg
815 processing
|
816 mday 1.13 @param destination target queue of completion callback
817 @param parm user parameter for callback processing
818 */
819
|
820 kumpf 1.23 static void _sendCreateRequestsCallBack(AsyncOpNode *operation,
|
821 mday 1.13 MessageQueue *destination,
822 void *parm);
823
824
|
825 kumpf 1.5 /**
|
826 kumpf 1.23 Sends Create subscription request for the specified subscription
|
827 kumpf 1.1 to each provider in the list.
828
829 @param indicationProviders list of providers with associated classes
830 @param nameSpace the namespace name
831 @param propertyList the properties referenced by the
832 subscription
833 @param condition the condition part of the filter query
834 @param queryLanguage the query language in which the filter
835 query is expressed
|
836 kumpf 1.23 @param subscription the subscription to be created
|
837 kumpf 1.9 @param userName the userName for authentication
838 @param authType the authentication type
839
840 @return True if at least one provider accepted the subscription
841 False otherwise
|
842 kumpf 1.1 */
|
843 kumpf 1.23 Boolean _sendCreateRequests (
|
844 kumpf 1.10 const Array <ProviderClassList> & indicationProviders,
|
845 kumpf 1.1 const String & nameSpace,
846 const CIMPropertyList & propertyList,
847 const String & condition,
848 const String & queryLanguage,
|
849 kumpf 1.9 const CIMNamedInstance & subscription,
850 const String & userName,
851 const String & authType = String::EMPTY);
|
852 mday 1.13
853
854 /**
855 Callback completion routine for _sendModifyRequests
856
857 */
858
859 static void _sendModifyRequestsCallBack(AsyncOpNode *operation,
860 MessageQueue *destination,
861 void *parm);
862
|
863 kumpf 1.1
864 /**
|
865 kumpf 1.23 Sends Modify subscription request for the specified subscription
|
866 kumpf 1.1 to each provider in the list.
867
868 @param indicationProviders list of providers with associated classes
869 @param nameSpace the namespace name
870 @param propertyList the properties referenced by the
871 subscription
872 @param condition the condition part of the filter query
873 @param queryLanguage the query language in which the filter
874 query is expressed
875 @param subscription the subscription to be modified
|
876 kumpf 1.9 @param userName the userName for authentication
877 @param authType the authentication type
|
878 kumpf 1.1 */
879 void _sendModifyRequests (
|
880 kumpf 1.10 const Array <ProviderClassList> & indicationProviders,
|
881 kumpf 1.1 const String & nameSpace,
882 const CIMPropertyList & propertyList,
883 const String & condition,
884 const String & queryLanguage,
|
885 kumpf 1.9 const CIMNamedInstance & subscription,
886 const String & userName,
887 const String & authType = String::EMPTY);
|
888 kumpf 1.1
|
889 mday 1.14
890 /**
|
891 kumpf 1.23 Asynchronous completion routine for _sendDeleteRequests.
|
892 mday 1.14 */
893
|
894 kumpf 1.23 static void _sendDeleteRequestsCallBack (
895 AsyncOpNode *operation,
896 MessageQueue *callback_destination,
897 void *parameter);
|
898 mday 1.14
|
899 kumpf 1.1 /**
|
900 kumpf 1.23 Sends Delete subscription request for the specified subscription
|
901 kumpf 1.1 to each provider in the list.
902
903 @param indicationProviders list of providers with associated classes
904 @param nameSpace the namespace name
905 @param subscription the subscription to be modified
|
906 kumpf 1.9 @param userName the userName for authentication
907 @param authType the authentication type
|
908 kumpf 1.1 */
|
909 kumpf 1.23 void _sendDeleteRequests (
|
910 kumpf 1.10 const Array <ProviderClassList> & indicationProviders,
|
911 kumpf 1.1 const String & nameSpace,
|
912 kumpf 1.9 const CIMNamedInstance & subscription,
913 const String & userName,
914 const String & authType = String::EMPTY);
|
915 kumpf 1.1
916 /**
|
917 kumpf 1.10 Generates a unique String key from the subscription instance name and
918 provider keys.
919
920 @param subscription the subscription named instance
921 @param provider the provider instance
922
923 @return the generated key
924 */
925 String _generateKey (
926 const CIMNamedInstance & subscription,
927 const CIMInstance provider);
928
929 /**
930 Inserts an entry into the subscription table.
931
932 @param subscription the subscription named instance
933 @param provider the provider instance
934 @param classList the list of class names
935 */
936 void _insertEntry (
937 const CIMNamedInstance & subscription,
938 kumpf 1.10 const CIMInstance & provider,
939 const Array <String> classList);
940
941 /**
|
942 kumpf 1.1 Creates an alert instance of the specified class.
943
944 @param alertClassName the alert class name
|
945 kumpf 1.7 @param subscriptions subscriptions for which alert is to be
|
946 kumpf 1.1 created
947
948 @return the created alert instance
949 */
950 CIMInstance _createAlertInstance (
951 const String & alertClassName,
|
952 kumpf 1.7 const Array <CIMNamedInstance> & subscriptions);
|
953 mday 1.14
954
955
956 /**
957 Asynchronous completion routine for _sendAlerts
958 */
959
960 static void _sendAlertsCallBack(AsyncOpNode *operation,
961 MessageQueue *callback_destination,
962 void *parameter);
963
|
964 kumpf 1.1
965 /**
966 Sends specified alert to each unique handler instance for the
967 specified subscriptions in the list.
968
|
969 kumpf 1.7 @param subscriptions subscriptions for which alert is to be
|
970 kumpf 1.1 sent
971 @param alertInstance the alert to be sent
972 */
973 void _sendAlerts (
|
974 kumpf 1.7 const Array <CIMNamedInstance> & subscriptions,
|
975 kumpf 1.1 /* const */ CIMInstance & alertInstance);
|
976 mday 1.18
|
977 kumpf 1.1
|
978 kumpf 1.23 /** Async completion routine for _sendEnable */
|
979 mday 1.18
|
980 kumpf 1.23 static void _sendEnableCallBack(AsyncOpNode *operation,
|
981 mday 1.18 MessageQueue *callback_destination,
982 void *parameter);
983
984
|
985 kumpf 1.16 /**
|
986 kumpf 1.23 Sends an Enable message to the specified provider.
|
987 kumpf 1.16
|
988 kumpf 1.23 @param enableProvider the provider to be enabled
|
989 kumpf 1.16 */
|
990 kumpf 1.23 void _sendEnable (
991 const ProviderClassList & enableProvider);
|
992 kumpf 1.16
|
993 kumpf 1.1 WQLSimplePropertySource _getPropertySourceFromInstance(
994 CIMInstance & indicationInstance);
|
995 kumpf 1.5
|
996 kumpf 1.6 CIMRepository * _repository;
997
|
998 kumpf 1.8 /**
999 Handle to Provider Registration Manager
1000 */
1001 ProviderRegistrationManager * _providerRegManager;
|
1002 kumpf 1.5
1003 /**
1004 Integer representing queue ID for accessing Provider Manager Service
1005 */
1006 Uint32 _providerManager;
1007
1008 /**
1009 Integer representing queue ID for accessing Handler Manager Service
1010 */
1011 Uint32 _handlerService;
1012
1013 /**
1014 Integer representing queue ID for accessing Repository Service
1015 */
1016 //Uint32 _repository;
1017
1018 /**
|
1019 kumpf 1.10 Subscription information table
1020 */
1021 SubscriptionTable _subscriptionTable;
1022
|
1023 kumpf 1.19 Array <Uint16> _validStates;
1024 Array <Uint16> _validRepeatPolicies;
1025 Array <Uint16> _validErrorPolicies;
1026 Array <Uint16> _validPersistenceTypes;
1027
|
1028 kumpf 1.10 /**
|
1029 kumpf 1.5 Values for the Subscription State property of the Subscription class,
1030 as defined in the CIM Events MOF
1031 */
1032 enum SubscriptionState {_STATE_UNKNOWN = 0, _STATE_OTHER = 1,
1033 _STATE_ENABLED = 2, _STATE_ENABLEDDEGRADED = 3, _STATE_DISABLED = 4};
1034
1035 /**
1036 Values for the Repeat Notification Policy property of the Subscription
1037 class, as defined in the CIM Events MOF
1038 */
1039 enum RepeatNotificationPolicy {_POLICY_UNKNOWN = 0, _POLICY_OTHER = 1,
1040 _POLICY_NONE = 2, _POLICY_SUPPRESS = 3, _POLICY_DELAY = 4};
1041
1042 /**
1043 Values for the On Fatal Error Policy property of the Subscription
1044 class, as defined in the CIM Events MOF
1045 */
1046 enum OnFatalErrorPolicy {_ERRORPOLICY_OTHER = 1, _ERRORPOLICY_IGNORE = 2,
1047 _ERRORPOLICY_DISABLE = 3, _ERRORPOLICY_REMOVE = 4};
1048
1049 /**
1050 kumpf 1.5 Values for the Persistence Type property of the Handler class,
1051 as defined in the CIM Events MOF
1052 */
1053 enum PersistenceType {_PERSISTENCE_OTHER = 1, _PERSISTENCE_PERMANENT = 2,
1054 _PERSISTENCE_TRANSIENT = 3};
1055
1056 /**
1057 Values for the Perceived Severity property of the Alert Indication
1058 class, as defined in the CIM Events MOF
1059 */
1060 enum PerceivedSeverity {_SEVERITY_UNKNOWN = 0, _SEVERITY_OTHER = 1,
1061 _SEVERITY_INFORMATION = 2, _SEVERITY_WARNING = 3, _SEVERITY_MINOR = 4,
1062 _SEVERITY_MAJOR = 5, _SEVERITY_CRITICAL = 6, _SEVERITY_FATAL = 7};
1063
1064 /**
1065 Values for the Probable Cause property of the Alert Indication
1066 class, as defined in the CIM Events MOF
1067 Note: not all possible values have been included
1068 */
1069 enum ProbableCause {_CAUSE_UNKNOWN = 0, _CAUSE_OTHER = 1};
1070
1071 kumpf 1.5 /**
1072 Values for the Alert Type property of the Alert Indication class,
1073 as defined in the CIM Events MOF
1074 */
1075 enum AlertType {_TYPE_OTHER = 1, _TYPE_COMMUNICATIONS = 2, _TYPE_QOS = 3,
1076 _TYPE_PROCESSING = 4, _TYPE_DEVICE = 5, _TYPE_ENVIRONMENTAL = 6,
1077 _TYPE_MODELCHANGE = 7, _TYPE_SECURITY = 8};
|
1078 kumpf 1.1
|
1079 kumpf 1.3 //
1080 // Class names
1081 //
1082
|
1083 kumpf 1.1 /**
1084 The name of the CIMOM Shutdown alert indication class
1085 */
1086 static const char _CLASS_CIMOM_SHUTDOWN_ALERT [];
1087
1088 /**
1089 The name of the No Provider alert indication class
1090 */
1091 static const char _CLASS_NO_PROVIDER_ALERT [];
1092
1093 /**
1094 The name of the CIMOM shutdown alert indication class
1095 */
1096 static const char _CLASS_PROVIDER_TERMINATED_ALERT [];
1097
1098
|
1099 kumpf 1.3 //
1100 // Property names
1101 //
1102
|
1103 kumpf 1.1 /**
1104 The name of the Subscription State property for Indication Subscription
1105 class
1106 */
1107 static const char _PROPERTY_STATE [];
1108
1109 /**
1110 The name of the Other Subscription State property for Indication
1111 Subscription class
1112 */
1113 static const char _PROPERTY_OTHERSTATE [];
1114
1115 /**
1116 The name of the repeat notification policy property for indication
1117 subscription class
1118 */
1119 static const char _PROPERTY_REPEATNOTIFICATIONPOLICY [];
1120
1121 /**
1122 The name of the other repeat notification policy property for
1123 indication subscription class
1124 kumpf 1.1 */
1125 static const char _PROPERTY_OTHERREPEATNOTIFICATIONPOLICY [];
1126
1127 /**
1128 The name of the repeat notification interval property for indication
1129 subscription class
1130 */
1131 static const char _PROPERTY_REPEATNOTIFICATIONINTERVAL [];
1132
1133 /**
1134 The name of the repeat notification gap property for indication
1135 subscription class
1136 */
1137 static const char _PROPERTY_REPEATNOTIFICATIONGAP [];
1138
1139 /**
1140 The name of the repeat notification count property for indication
1141 subscription class
1142 */
1143 static const char _PROPERTY_REPEATNOTIFICATIONCOUNT [];
1144
1145 kumpf 1.1 /**
1146 The name of the On Fatal Error Policy property for Indication
1147 Subscription class
1148 */
1149 static const char _PROPERTY_ONFATALERRORPOLICY [];
1150
1151 /**
1152 The name of the Other On Fatal Error Policy property for Indication
1153 Subscription class
1154 */
1155 static const char _PROPERTY_OTHERONFATALERRORPOLICY [];
1156
1157 /**
|
1158 kumpf 1.4 The name of the Time Of Last State Change property for Indication
1159 Subscription class
1160 */
1161 static const char _PROPERTY_LASTCHANGE [];
1162
1163 /**
1164 The name of the Subscription Start Time property for Indication
1165 Subscription class
1166 */
1167 static const char _PROPERTY_STARTTIME [];
1168
1169 /**
1170 The name of the Subscription Duration property for Indication
1171 Subscription class
1172 */
1173 static const char _PROPERTY_DURATION [];
1174
1175 /**
1176 The name of the Subscription Time Remaining property for Indication
1177 Subscription class
1178 */
1179 kumpf 1.4 static const char _PROPERTY_TIMEREMAINING [];
1180
1181 /**
|
1182 kumpf 1.1 The name of the filter reference property for indication subscription
1183 class
1184 */
1185 static const char _PROPERTY_FILTER [];
1186
1187 /**
1188 The name of the handler reference property for indication subscription
1189 class
1190 */
1191 static const char _PROPERTY_HANDLER [];
1192
1193 /**
1194 The name of the query property for indication filter class
1195 */
1196 static const char _PROPERTY_QUERY [];
1197
1198 /**
1199 The name of the query language property for indication filter class
1200 */
1201 static const char _PROPERTY_QUERYLANGUAGE [];
1202
1203 kumpf 1.1 /**
1204 The name of the Source Namespace property for indication filter class
1205 */
1206 static const char _PROPERTY_SOURCENAMESPACE [];
1207
1208 /**
1209 The name of the name property for indication filter and indication
1210 handler classes
1211 */
1212 static const char _PROPERTY_NAME [];
1213
1214 /**
1215 The name of the creation class name property for indication filter and
1216 indication handler classes
1217 */
1218 static const char _PROPERTY_CREATIONCLASSNAME [];
1219
1220 /**
1221 The name of the system name property for indication filter and
1222 indication handler classes
1223 */
1224 kumpf 1.1 static const char _PROPERTY_SYSTEMNAME [];
1225
1226 /**
1227 The name of the system creation class name property for indication
1228 filter and indication handler classes
1229 */
1230 static const char _PROPERTY_SYSTEMCREATIONCLASSNAME [];
1231
1232 /**
1233 The name of the Persistence Type property for Indication Handler class
1234 */
1235 static const char _PROPERTY_PERSISTENCETYPE [];
1236
1237 /**
1238 The name of the Other Persistence Type property for Indication Handler
1239 class
1240 */
1241 static const char _PROPERTY_OTHERPERSISTENCETYPE [];
1242
1243 /**
|
1244 kumpf 1.7 The name of the Destination property for CIM XML Indication Handler
1245 subclass
|
1246 kumpf 1.1 */
1247 static const char _PROPERTY_DESTINATION [];
|
1248 kumpf 1.7
1249 /**
1250 The name of the Trap Destination property for SNMP Mapper Indication
1251 Handler subclass
1252 */
1253 static const char _PROPERTY_TRAPDESTINATION [];
|
1254 kumpf 1.1
1255 /**
1256 The name of the SNMP Type property for SNMP Indication Handler class
1257 */
1258 static const char _PROPERTY_SNMPTYPE [];
1259
1260 /**
1261 The name of the Alert Type property for Alert Indication class
1262 */
1263 static const char _PROPERTY_ALERTTYPE [];
1264
1265 /**
1266 The name of the Other Alert Type property for Alert Indication class
1267 */
1268 static const char _PROPERTY_OTHERALERTTYPE [];
1269
1270 /**
1271 The name of the Perceived Severity property for Alert Indication class
1272 */
1273 static const char _PROPERTY_PERCEIVEDSEVERITY [];
1274
1275 kumpf 1.1 /**
1276 The name of the Probable Cause property for Alert Indication class
1277 */
1278 static const char _PROPERTY_PROBABLECAUSE [];
1279
1280 /**
|
1281 kumpf 1.10 The name of the Provider Name property for Provider class
|
1282 kumpf 1.1 */
|
1283 kumpf 1.10 static const char _PROPERTY_PROVIDERNAME [];
|
1284 kumpf 1.1
1285 /**
|
1286 kumpf 1.10 The name of the Provider Module Name property for Provider class
|
1287 kumpf 1.1 */
|
1288 kumpf 1.10 static const char _PROPERTY_PROVIDERMODULENAME [];
|
1289 kumpf 1.1
|
1290 kumpf 1.9
1291 //
1292 // Qualifier names
1293 //
1294
1295 /**
1296 The name of the Indication qualifier for classes
1297 */
1298 static const char _QUALIFIER_INDICATION [];
1299
|
1300 kumpf 1.4
1301 //
1302 // Other literal values
1303 //
|
1304 kumpf 1.1
1305 /**
|
1306 kumpf 1.4 The WHERE keyword in WQL
|
1307 kumpf 1.1 */
|
1308 kumpf 1.4 static const char _QUERY_WHERE [];
|
1309 kumpf 1.1
1310 /**
|
1311 kumpf 1.4 The string representing the asterisk all properties symbol in WQL
|
1312 kumpf 1.1 */
|
1313 kumpf 1.4 static const char _QUERY_ALLPROPERTIES [];
|
1314 kumpf 1.3
1315 //
1316 // Message substrings used in exception messages
1317 //
1318
1319 static const char _MSG_MISSING_REQUIRED [];
1320
1321 static const char _MSG_KEY_PROPERTY [];
1322
1323 static const char _MSG_PROPERTY [];
1324
1325 static const char _MSG_PROPERTY_PRESENT [];
1326
1327 static const char _MSG_VALUE_NOT [];
1328
1329 static const char _MSG_NO_PROVIDERS [];
1330
|
1331 kumpf 1.9 static const char _MSG_NOT_ACCEPTED [];
1332
|
1333 kumpf 1.3 static const char _MSG_INVALID_CLASSNAME [];
1334
1335 static const char _MSG_IN_FROM [];
|
1336 kumpf 1.4
1337 static const char _MSG_EXPIRED [];
|
1338 kumpf 1.9
1339 static const char _MSG_REFERENCED [];
|
1340 kumpf 1.19
1341 static const char _MSG_INVALID_VALUE [];
1342
1343 static const char _MSG_FOR_PROPERTY [];
|
1344 kumpf 1.23
1345 static const char _MSG_CLASS_NOT_SERVED [];
|
1346 kumpf 1.1 };
1347
1348 PEGASUS_NAMESPACE_END
1349
1350 #endif
|