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

   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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2