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

  1 martin 1.14 //%LICENSE////////////////////////////////////////////////////////////////
  2 martin 1.15 //
  3 martin 1.14 // Licensed to The Open Group (TOG) under one or more contributor license
  4             // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
  5             // this work for additional information regarding copyright ownership.
  6             // Each contributor licenses this file to you under the OpenPegasus Open
  7             // Source License; you may not use this file except in compliance with the
  8             // License.
  9 martin 1.15 //
 10 martin 1.14 // Permission is hereby granted, free of charge, to any person obtaining a
 11             // copy of this software and associated documentation files (the "Software"),
 12             // to deal in the Software without restriction, including without limitation
 13             // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 14             // and/or sell copies of the Software, and to permit persons to whom the
 15             // Software is furnished to do so, subject to the following conditions:
 16 martin 1.15 //
 17 martin 1.14 // The above copyright notice and this permission notice shall be included
 18             // in all copies or substantial portions of the Software.
 19 martin 1.15 //
 20 martin 1.14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 21 martin 1.15 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 22 martin 1.14 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 23             // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 24             // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 25             // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 26             // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 27 martin 1.15 //
 28 martin 1.14 //////////////////////////////////////////////////////////////////////////
 29 mike   1.2  //
 30             //%/////////////////////////////////////////////////////////////////////////////
 31             
 32             #ifndef PegasusHandler_Handler_h
 33             #define PegasusHandler_Handler_h
 34             
 35             #include <Pegasus/Common/Config.h>
 36             #include <Pegasus/Common/CIMObject.h>
 37 kumpf  1.16 #include <Pegasus/Common/ContentLanguageList.h>
 38 mike   1.2  #include <Pegasus/Repository/CIMRepository.h>
 39 kumpf  1.6  #include <Pegasus/Common/OperationContext.h>
 40 kumpf  1.4  #include <Pegasus/Handler/Linkage.h>
 41 mike   1.2  
 42             PEGASUS_NAMESPACE_BEGIN
 43             
 44 karl   1.16.8.1 /**
 45                  * Indication export connection interface for the handlers.
 46                  */
 47                 
 48                 class PEGASUS_HANDLER_LINKAGE IndicationExportConnection
 49                 {
 50                 public:
 51                     IndicationExportConnection() { };
 52                 
 53                     virtual ~IndicationExportConnection() { };
 54                 };
 55                 
 56 mike   1.2      class PEGASUS_HANDLER_LINKAGE CIMHandler
 57                 {
 58                 public:
 59                 
 60                     CIMHandler() { };
 61                 
 62                     virtual ~CIMHandler() { };
 63                 
 64                     // Abstract method which each and every handler needs to be implemented.
 65 kumpf  1.16         // Indication processing will instantiate IndicationDispatcher which
 66                     // will look into Handler Table to load the appropriate handler. If
 67 mike   1.2          // handler is already loaded then IndicationDispatcher will call this
 68                     // method implemented in handler.
 69 kumpf  1.13         virtual void handleIndication(
 70                         const OperationContext& context,
 71                         const String nameSpace,
 72 yi.zhou 1.10             CIMInstance& indicationInstance,
 73 mike    1.2              CIMInstance& indicationHandlerInstance,
 74 kumpf   1.13             CIMInstance& indicationSubscriptionInstance,
 75                          ContentLanguageList& contentLanguages) = 0;
 76 kumpf   1.16     
 77 karl    1.16.8.1     // IndicationExportConnection object is returned if requested incase of
 78                      // successful indication delivery. Connection object SHOULD not be
 79                      // returned incase of delivery failure.
 80                      virtual void handleIndication(
 81                          const OperationContext& context,
 82 karl    1.16.8.2         const String &nameSpace,
 83 karl    1.16.8.1         CIMInstance& indicationInstance,
 84                          CIMInstance& indicationHandlerInstance,
 85                          CIMInstance& indicationSubscriptionInstance,
 86                          ContentLanguageList& contentLanguages,
 87                          IndicationExportConnection **connection)
 88                      {
 89                          if (connection)
 90                          {
 91                              *connection = 0;
 92                          }
 93                          handleIndication(
 94                              context,
 95                              nameSpace,
 96                              indicationInstance,
 97                              indicationHandlerInstance,
 98                              indicationSubscriptionInstance,
 99                              contentLanguages);
100                      }
101                  
102 kumpf   1.13         // These are the method to initialize and terminate handler. Actual need
103                      // and implementation way these methods are yet to be finalized.
104 mike    1.2      
105                      virtual void initialize(CIMRepository* repository) = 0;
106                      virtual void terminate() = 0;
107                  };
108                  
109                  PEGASUS_NAMESPACE_END
110                  
111                  #endif /* PegasusHandler_Handler_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2