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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2