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

  1 karl  1.23 //%2004////////////////////////////////////////////////////////////////////////
  2 chip  1.1  //
  3 karl  1.23 // 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.2  // IBM Corp.; EMC Corporation, The Open Group.
  7 karl  1.23 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
  8            // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
  9 chip  1.1  //
 10            // Permission is hereby granted, free of charge, to any person obtaining a copy
 11            // of this software and associated documentation files (the "Software"), to
 12            // deal in the Software without restriction, including without limitation the
 13            // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 14            // sell copies of the Software, and to permit persons to whom the Software is
 15            // furnished to do so, subject to the following conditions:
 16 karl  1.23 // 
 17 chip  1.1  // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 18            // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 19            // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 20            // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 21            // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 22            // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 23            // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 24            // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 25            //
 26            //==============================================================================
 27            //
 28 schuur 1.3  // Author:      Adrian Schuur, schuur@de.ibm.com
 29 chip   1.1  //
 30 dj.gorey 1.12 // Modified By:
 31 chip     1.1  //
 32               //%/////////////////////////////////////////////////////////////////////////////
 33               
 34               #ifndef Pegasus_CMPIProviderManager_h
 35               #define Pegasus_CMPIProviderManager_h
 36               
 37               #include <Pegasus/Common/Config.h>
 38 schuur   1.3  #include <Pegasus/Common/HashTable.h>
 39               #include <Pegasus/ProviderManager2/ProviderName.h>
 40 chip     1.1  #include <Pegasus/ProviderManager2/ProviderManager.h>
 41 kumpf    1.15 #include <Pegasus/Common/OperationContextInternal.h>
 42 schuur   1.22 //#include <Pegasus/Repository/CIMRepository.h>
 43 schuur   1.7  
 44 schuur   1.3  #include <Pegasus/Config/ConfigManager.h>
 45 schuur   1.8  #include <Pegasus/ProviderManager2/OperationResponseHandler.h>
 46 chip     1.1  
 47 kumpf    1.18 #include <Pegasus/ProviderManager2/CMPI/CMPILocalProviderManager.h>
 48 schuur   1.7  #include <Pegasus/ProviderManager2/CMPI/Linkage.h>
 49               
 50 chip     1.1  PEGASUS_NAMESPACE_BEGIN
 51               
 52 schuur   1.4  struct CMPI_SelectExp;
 53 schuur   1.3  
 54 schuur   1.7  class PEGASUS_CMPIPM_LINKAGE CMPIProviderManager : public ProviderManager
 55 chip     1.1  {
 56               public:
 57 dj.gorey 1.12     enum Mode {
 58 schuur   1.3         CMPI_MODE,
 59                      CMPI_R_MODE,
 60                      CMPI_O_MODE
 61                   };
 62               
 63                   Mode getMode() { return mode; }
 64                   CMPIProviderManager(Mode=CMPI_MODE);
 65 chip     1.1      virtual ~CMPIProviderManager(void);
 66 dj.gorey 1.12 
 67                   virtual Boolean insertProvider(const ProviderName & providerName,
 68 schuur   1.3              const String &ns, const String &cn);
 69 dj.gorey 1.12 
 70 dj.gorey 1.14     virtual Message * processMessage(Message * request);
 71 chip     1.1  
 72 kumpf    1.18     virtual Boolean hasActiveProviders();
 73                   virtual void unloadIdleProviders();
 74 dj.gorey 1.12 
 75 schuur   1.21     virtual Boolean supportsRemoteNameSpaces() { return true; }
 76               
 77 schuur   1.3     struct indProvRecord {
 78                     indProvRecord() : enabled(false), count(1), handler(NULL) {}
 79                     Boolean enabled;
 80                     int count;
 81                     EnableIndicationsResponseHandler* handler;
 82                  };
 83               
 84                  struct indSelectRecord {
 85                     indSelectRecord() : eSelx(NULL) {}
 86                     CMPI_SelectExp *eSelx;
 87                  };
 88               
 89                  typedef HashTable<String,indProvRecord*,  EqualFunc<String>,HashFunc<String> > IndProvTab;
 90                  typedef HashTable<String,indSelectRecord*,EqualFunc<String>,HashFunc<String> > IndSelectTab;
 91                  typedef HashTable<String,ProviderName,EqualFunc<String>,HashFunc<String> > ProvRegistrar;
 92               
 93                  static IndProvTab provTab;
 94                  static IndSelectTab selxTab;
 95                  static ProvRegistrar provReg;
 96 dj.gorey 1.12 
 97 schuur   1.3  protected:
 98 kumpf    1.18     CMPILocalProviderManager providerManager;
 99               
100 schuur   1.3      Mode mode;
101 schuur   1.22 //    CIMRepository *_repository;
102 schuur   1.3  
103 dj.gorey 1.14     Message * handleUnsupportedRequest(const Message * message);
104 schuur   1.3  
105 dj.gorey 1.14     Message * handleGetInstanceRequest(const Message * message);
106                   Message * handleEnumerateInstancesRequest(const Message * message);
107                   Message * handleEnumerateInstanceNamesRequest(const Message * message);
108                   Message * handleCreateInstanceRequest(const Message * message);
109                   Message * handleModifyInstanceRequest(const Message * message);
110                   Message * handleDeleteInstanceRequest(const Message * message);
111               
112                   Message * handleExecQueryRequest(const Message * message);
113               
114                   Message * handleAssociatorsRequest(const Message * message);
115                   Message * handleAssociatorNamesRequest(const Message * message);
116                   Message * handleReferencesRequest(const Message * message);
117                   Message * handleReferenceNamesRequest(const Message * message);
118 schuur   1.3  /*
119 dj.gorey 1.14     Message * handleGetPropertyRequest(const Message * message);
120                   Message * handleSetPropertyRequest(const Message * message);
121 schuur   1.3  */
122 dj.gorey 1.14     Message * handleInvokeMethodRequest(const Message * message);
123 schuur   1.3  
124 dj.gorey 1.14     Message * handleCreateSubscriptionRequest(const Message * message);
125               //    Message * handleModifySubscriptionRequest(const Message * message);
126                   Message * handleDeleteSubscriptionRequest(const Message * message);
127                   Message * handleEnableIndicationsRequest(const Message * message);
128                   Message * handleDisableIndicationsRequest(const Message * message);
129 schuur   1.3  
130               //  Not supported by CMPI
131 kumpf    1.19 //    Message * handleExportIndicationRequest(const Message * message);
132 schuur   1.3  
133 dj.gorey 1.14     Message * handleDisableModuleRequest(const Message * message);
134                   Message * handleEnableModuleRequest(const Message * message);
135                   Message * handleStopAllProvidersRequest(const Message * message);
136 kumpf    1.16     Message * handleInitializeProviderRequest(const Message * message);
137 chip     1.1  
138 kumpf    1.15     ProviderName _resolveProviderName(const ProviderIdContainer & providerId);
139 chip     1.1  };
140               
141               PEGASUS_NAMESPACE_END
142               
143               #endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2