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

  1 karl  1.22 //%2006////////////////////////////////////////////////////////////////////////
  2 chip  1.1  //
  3 karl  1.18 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
  4            // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
  5            // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
  6 karl  1.3  // IBM Corp.; EMC Corporation, The Open Group.
  7 karl  1.18 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
  8            // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
  9 karl  1.19 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10            // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11 karl  1.22 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 12            // EMC Corporation; Symantec Corporation; The Open Group.
 13 chip  1.1  //
 14            // Permission is hereby granted, free of charge, to any person obtaining a copy
 15            // of this software and associated documentation files (the "Software"), to
 16            // deal in the Software without restriction, including without limitation the
 17            // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 18            // sell copies of the Software, and to permit persons to whom the Software is
 19            // furnished to do so, subject to the following conditions:
 20 karl  1.18 // 
 21 chip  1.1  // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 22            // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 23            // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 24            // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 25            // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 26            // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 27            // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 28            // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 29            //
 30            //==============================================================================
 31            //
 32            // Author: Chip Vincent (cvincent@us.ibm.com)
 33            //
 34            // Modified By:
 35            //              Nag Boranna, Hewlett-Packard Company(nagaraja_boranna@hp.com)
 36            //              Yi Zhou, Hewlett-Packard Company(yi_zhou@hp.com)
 37            //              Jenny Yu, Hewlett-Packard Company (jenny_yu@hp.com)
 38            //              Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
 39            //              Carol Ann Krug Graves, Hewlett-Packard Company
 40            //                (carolann_graves@hp.com)
 41            //              Mike Day, IBM (mdday@us.ibm.com)
 42 schuur 1.4  //              Adrian Schuur (schuur@de.ibm.com)
 43 kumpf  1.16 //              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
 44 chip   1.1  //
 45             //%/////////////////////////////////////////////////////////////////////////////
 46             
 47             #ifndef Pegasus_DefaultProviderManager_h
 48             #define Pegasus_DefaultProviderManager_h
 49             
 50             #include <Pegasus/Common/Config.h>
 51             #include <Pegasus/Common/Constants.h>
 52             #include <Pegasus/Common/CIMObjectPath.h>
 53             #include <Pegasus/Common/Pair.h>
 54             #include <Pegasus/Common/Triad.h>
 55             #include <Pegasus/Common/Thread.h>
 56 kumpf  1.21 #include <Pegasus/Common/IPC.h>
 57 chip   1.1  #include <Pegasus/Common/HashTable.h>
 58 kumpf  1.14 #include <Pegasus/Common/OperationContextInternal.h>
 59 chip   1.1  
 60             #include <Pegasus/ProviderManager2/ProviderManager.h>
 61 schuur 1.7  #include <Pegasus/ProviderManager2/ProviderName.h>
 62 chip   1.1  
 63             #include <Pegasus/ProviderManager2/Default/LocalProviderManager.h>
 64 schuur 1.9  #include <Pegasus/ProviderManager2/OperationResponseHandler.h>
 65 chip   1.1  #include <Pegasus/ProviderManager2/Default/Provider.h>
 66             
 67 schuur 1.8  #include <Pegasus/ProviderManager2/Default/Linkage.h>
 68 chip   1.1  
 69             PEGASUS_NAMESPACE_BEGIN
 70             
 71             typedef HashTable<String,
 72 dj.gorey 1.13         EnableIndicationsResponseHandler *,
 73                       EqualFunc<String>,
 74                       HashFunc<String> > IndicationResponseTable;
 75 chip     1.1  
 76 schuur   1.8  class PEGASUS_DEFPM_LINKAGE DefaultProviderManager : public ProviderManager
 77 chip     1.1  {
 78               public:
 79                   DefaultProviderManager(void);
 80                   virtual ~DefaultProviderManager(void);
 81               
 82 dj.gorey 1.13     virtual Message * processMessage(Message * request);
 83 chip     1.1  
 84 kumpf    1.16     virtual Boolean hasActiveProviders();
 85                   virtual void unloadIdleProviders();
 86               
 87 mike     1.24     // This function creates an instance of DefaultProviderManager. It is
 88                   // typically passed to either the ProviderManagerService constructor
 89                   // or the BasicProviderManagerRouter constructor as a way of decoupling
 90                   // the pegprovidermanager and DefaultProviderManager libraries (otherwise
 91                   // each library would contain a reference to the other).
 92                   static ProviderManager* createDefaultProviderManagerCallback();
 93               
 94 chip     1.1  protected:
 95 dj.gorey 1.13     Message * handleUnsupportedRequest(const Message * message);
 96 chip     1.1  
 97 dj.gorey 1.13     Message * handleGetInstanceRequest(const Message * message);
 98                   Message * handleEnumerateInstancesRequest(const Message * message);
 99                   Message * handleEnumerateInstanceNamesRequest(const Message * message);
100                   Message * handleCreateInstanceRequest(const Message * message);
101                   Message * handleModifyInstanceRequest(const Message * message);
102                   Message * handleDeleteInstanceRequest(const Message * message);
103               
104                   Message * handleExecQueryRequest(const Message * message);
105               
106                   Message * handleAssociatorsRequest(const Message * message);
107                   Message * handleAssociatorNamesRequest(const Message * message);
108                   Message * handleReferencesRequest(const Message * message);
109                   Message * handleReferenceNamesRequest(const Message * message);
110               
111                   Message * handleGetPropertyRequest(const Message * message);
112                   Message * handleSetPropertyRequest(const Message * message);
113               
114                   Message * handleInvokeMethodRequest(const Message * message);
115               
116                   Message * handleCreateSubscriptionRequest(const Message * message);
117                   Message * handleModifySubscriptionRequest(const Message * message);
118 dj.gorey 1.13     Message * handleDeleteSubscriptionRequest(const Message * message);
119               
120                   Message * handleExportIndicationRequest(const Message * message);
121               
122                   Message * handleDisableModuleRequest(const Message * message);
123                   Message * handleEnableModuleRequest(const Message * message);
124                   Message * handleStopAllProvidersRequest(const Message * message);
125 kumpf    1.15     Message * handleInitializeProviderRequest(const Message * message);
126 carolann.graves 1.20     Message * handleSubscriptionInitCompleteRequest
127                              (const Message * message);
128 chip            1.1  
129 kumpf           1.21     void _insertEntry(
130                              const Provider & provider,
131                              EnableIndicationsResponseHandler* handler);
132 chip            1.1      EnableIndicationsResponseHandler * _removeEntry(const String & key);
133                      
134                          String _generateKey(const Provider & provider);
135 schuur          1.6      String _generateKey(const String & providerName,const String & providerFileName);
136 chip            1.1  
137 kumpf           1.14     ProviderName _resolveProviderName(const ProviderIdContainer & providerId);
138 chip            1.2  
139 chip            1.1  protected:
140                          IndicationResponseTable _responseTable;
141 kumpf           1.21     Mutex _responseTableMutex;
142 kumpf           1.16     LocalProviderManager providerManager;
143 carolann.graves 1.20 
144                      private:
145                      
146                          /**
147                              Calls the provider's enableIndications() method.
148                              If successful, the indications response handler is stored in the 
149                              _responseTable.
150                      
151                              @param  req_provider  CIMInstance for the provider to be enabled
152 kumpf           1.23         @param  _indicationCallback  PEGASUS_INDICATION_CALLBACK_T for
153                                  indications
154 carolann.graves 1.20         @param  ph  OpProviderHolder for the provider to be enabled
155                      
156                              Note that since an exception thrown by the provider's 
157                              enableIndications() method is considered a provider error, any such
158                              exception is ignored, and no exceptions are thrown by this method.
159                           */
160                          void _callEnableIndications
161                              (CIMInstance & req_provider,
162 kumpf           1.23          PEGASUS_INDICATION_CALLBACK_T _indicationCallback,
163 carolann.graves 1.20          OpProviderHolder & ph);
164 chip            1.1  };
165                      
166                      PEGASUS_NAMESPACE_END
167                      
168                      #endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2