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

Diff for /pegasus/src/Pegasus/ProviderManager2/JMPI/JMPIProviderManager.h between version 1.9 and 1.24

version 1.9, 2004/10/17 20:40:04 version 1.24, 2006/09/20 20:47:44
Line 1 
Line 1 
 //%2004////////////////////////////////////////////////////////////////////////  //%2006////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
Line 6 
Line 6 
 // IBM Corp.; EMC Corporation, The Open Group. // IBM Corp.; EMC Corporation, The Open Group.
 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; Symantec Corporation; The Open Group.
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
Line 25 
Line 29 
 // //
 //============================================================================== //==============================================================================
 // //
 // Author:      Adrian Schuur, schuur@de.ibm.com  
 //  
 // Modified By:  
 //  
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
 #ifndef Pegasus_JMPIProviderManager_h #ifndef Pegasus_JMPIProviderManager_h
Line 36 
Line 36 
  
 #include <Pegasus/Common/Config.h> #include <Pegasus/Common/Config.h>
 #include <Pegasus/Common/HashTable.h> #include <Pegasus/Common/HashTable.h>
 #include <Pegasus/ProviderManager2/ProviderRegistrarInitializer.h>  
 #include <Pegasus/ProviderManager2/ProviderName.h> #include <Pegasus/ProviderManager2/ProviderName.h>
 #include <Pegasus/ProviderManager2/ProviderManager.h> #include <Pegasus/ProviderManager2/ProviderManager.h>
 #include <Pegasus/Server/Linkage.h> #include <Pegasus/Server/Linkage.h>
 #include <Pegasus/Config/ConfigManager.h> #include <Pegasus/Config/ConfigManager.h>
 #include <Pegasus/ProviderManager2/OperationResponseHandler.h> #include <Pegasus/ProviderManager2/OperationResponseHandler.h>
 #include <Pegasus/Common/OperationContextInternal.h> #include <Pegasus/Common/OperationContextInternal.h>
   #include <Pegasus/ProviderManager2/JMPI/Linkage.h>
   #include <Pegasus/ProviderManager2/JMPI/JMPIProvider.h>
 #include <Pegasus/ProviderManager2/JMPI/JMPILocalProviderManager.h> #include <Pegasus/ProviderManager2/JMPI/JMPILocalProviderManager.h>
   #include <Pegasus/Provider/CIMOMHandleQueryContext.h>
   #include <Pegasus/WQL/WQLSelectStatement.h>
   #include <Pegasus/WQL/WQLParser.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 class CMPI_SelectExp;  class PEGASUS_JMPIPM_LINKAGE JMPIProviderManager : public ProviderManager
   
 class PEGASUS_SERVER_LINKAGE JMPIProviderManager : public ProviderManager  
 { {
 public: public:
     enum Mode {      JMPIProviderManager();
        CMPI_MODE,  
        CMPI_R_MODE,  
        CMPI_O_MODE  
     };  
   
     Mode getMode() { return mode; }  
     JMPIProviderManager(Mode=CMPI_MODE);  
     virtual ~JMPIProviderManager(void);     virtual ~JMPIProviderManager(void);
  
     virtual Boolean insertProvider(const ProviderName & providerName,     virtual Boolean insertProvider(const ProviderName & providerName,
Line 72 
Line 67 
     virtual Boolean hasActiveProviders();     virtual Boolean hasActiveProviders();
     virtual void unloadIdleProviders();     virtual void unloadIdleProviders();
  
    struct indProvRecord {      class indProvRecord
       indProvRecord() : enabled(false), count(1), handler(NULL), ctx(NULL) {}      {
       public:
           indProvRecord ()
           {
              enabled   = false;
              count     = 0;
              ctx       = NULL;
              handler   = NULL;
           }
   
           mutable Mutex                     mutex;
       Boolean enabled;       Boolean enabled;
       int count;       int count;
       EnableIndicationsResponseHandler* handler;  
       OperationContext* ctx;       OperationContext* ctx;
           EnableIndicationsResponseHandler *handler;
    };    };
  
       class indSelectRecord
       {
       public:
           indSelectRecord ()
           {
               qContext = NULL;
           }
  
    struct indSelectRecord {               CIMOMHandleQueryContext *qContext;
       indSelectRecord() : eSelx(NULL) {}          String                   query;
       CMPI_SelectExp *eSelx;          String                   queryLanguage;
           CIMPropertyList          propertyList;
    };    };
  
    typedef HashTable<String,indProvRecord*,  EqualFunc<String>,HashFunc<String> > IndProvTab;    typedef HashTable<String,indProvRecord*,  EqualFunc<String>,HashFunc<String> > IndProvTab;
    typedef HashTable<String,indSelectRecord*,EqualFunc<String>,HashFunc<String> > IndSelectTab;    typedef HashTable<String,indSelectRecord*,EqualFunc<String>,HashFunc<String> > IndSelectTab;
    typedef HashTable<String,ProviderName,EqualFunc<String>,HashFunc<String> > ProvRegistrar;    typedef HashTable<String,ProviderName,EqualFunc<String>,HashFunc<String> > ProvRegistrar;
  
       static Mutex         mutexProvTab;
    static IndProvTab provTab;    static IndProvTab provTab;
       static Mutex         mutexSelxTab;
    static IndSelectTab selxTab;    static IndSelectTab selxTab;
       static Mutex         mutexProvReg;
    static ProvRegistrar provReg;    static ProvRegistrar provReg;
  
 protected: protected:
     JMPILocalProviderManager providerManager;     JMPILocalProviderManager providerManager;
     Mode mode;  
  
     Message * handleUnsupportedRequest(const Message * message) throw();     Message * handleUnsupportedRequest(const Message * message) throw();
  
Line 107 
Line 122 
     Message * handleModifyInstanceRequest(const Message * message) throw();     Message * handleModifyInstanceRequest(const Message * message) throw();
     Message * handleDeleteInstanceRequest(const Message * message) throw();     Message * handleDeleteInstanceRequest(const Message * message) throw();
  
 /*    Message * handleExecuteQueryRequest(const Message * message) throw();      Message * handleExecQueryRequest(const Message * message) throw();
  
 */    Message * handleAssociatorsRequest(const Message * message) throw();      Message * handleAssociatorsRequest(const Message * message) throw();
     Message * handleAssociatorNamesRequest(const Message * message) throw();     Message * handleAssociatorNamesRequest(const Message * message) throw();
     Message * handleReferencesRequest(const Message * message) throw();     Message * handleReferencesRequest(const Message * message) throw();
     Message * handleReferenceNamesRequest(const Message * message) throw();     Message * handleReferenceNamesRequest(const Message * message) throw();
 /*  
     Message * handleGetPropertyRequest(const Message * message) throw();     Message * handleGetPropertyRequest(const Message * message) throw();
     Message * handleSetPropertyRequest(const Message * message) throw();     Message * handleSetPropertyRequest(const Message * message) throw();
 */  
     Message * handleInvokeMethodRequest(const Message * message) throw();     Message * handleInvokeMethodRequest(const Message * message) throw();
  
     Message * handleCreateSubscriptionRequest(const Message * message) throw();     Message * handleCreateSubscriptionRequest(const Message * message) throw();
 //    Message * handleModifySubscriptionRequest(const Message * message) throw();  ////Message * handleModifySubscriptionRequest(const Message * message) throw();
     Message * handleDeleteSubscriptionRequest(const Message * message) throw();     Message * handleDeleteSubscriptionRequest(const Message * message) throw();
     Message * handleEnableIndicationsRequest(const Message * message) throw();  
     Message * handleDisableIndicationsRequest(const Message * message) throw();  
  
 //  Not supported by CMPI  ////Not supported by JMPI
 //    Message * handleExportIndicationRequest(const Message * message) throw();  ////Message * handleExportIndicationRequest(const Message * message) throw();
  
     Message * handleDisableModuleRequest(const Message * message) throw();     Message * handleDisableModuleRequest(const Message * message) throw();
     Message * handleEnableModuleRequest(const Message * message) throw();     Message * handleEnableModuleRequest(const Message * message) throw();
     Message * handleStopAllProvidersRequest(const Message * message) throw();     Message * handleStopAllProvidersRequest(const Message * message) throw();
     Message * handleInitializeProviderRequest(const Message * message);     Message * handleInitializeProviderRequest(const Message * message);
       Message * handleSubscriptionInitCompleteRequest (const Message * message);
  
     ProviderName _resolveProviderName(const ProviderIdContainer & providerId);     ProviderName _resolveProviderName(const ProviderIdContainer & providerId);
   
   private:
       void debugPrintMethodPointers (JNIEnv *env, jclass jc);
       bool getInterfaceType         (ProviderIdContainer pidc,
                                      String&             interfaceType,
                                      String&             interfaceVersion);
       bool interfaceIsUsed          (JNIEnv             *env,
                                      jobject             jObject,
                                      String              searchInterfaceName);
   
       static int trace;
 }; };
  
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


Legend:
Removed from v.1.9  
changed lines
  Added in v.1.24

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2