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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2