(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.7 and 1.28

version 1.7, 2004/06/25 15:23:31 version 1.28, 2008/12/01 17:50:59
Line 1 
Line 1 
 //%2003////////////////////////////////////////////////////////////////////////  //%LICENSE////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002  BMC Software, Hewlett-Packard Development  // Licensed to The Open Group (TOG) under one or more contributor license
 // Company, L. P., IBM Corp., The Open Group, Tivoli Systems.  // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.;  // this work for additional information regarding copyright ownership.
 // IBM Corp.; EMC Corporation, The Open Group.  // Each contributor licenses this file to you under the OpenPegasus Open
 //  // Source License; you may not use this file except in compliance with the
 // Permission is hereby granted, free of charge, to any person obtaining a copy  // License.
 // of this software and associated documentation files (the "Software"), to  //
 // deal in the Software without restriction, including without limitation the  // Permission is hereby granted, free of charge, to any person obtaining a
 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or  // copy of this software and associated documentation files (the "Software"),
 // sell copies of the Software, and to permit persons to whom the Software is  // to deal in the Software without restriction, including without limitation
 // furnished to do so, subject to the following conditions:  // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 //  // and/or sell copies of the Software, and to permit persons to whom the
 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN  // Software is furnished to do so, subject to the following conditions:
 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED  //
 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT  // The above copyright notice and this permission notice shall be included
 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR  // in all copies or substantial portions of the Software.
 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT  //
 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION  // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
   // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 // //
 //==============================================================================  //////////////////////////////////////////////////////////////////////////
 //  
 // Author:      Adrian Schuur, schuur@de.ibm.com  
 //  
 // Modified By:  
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 34 
Line 34 
  
 #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 70 
Line 65 
     virtual Boolean hasActiveProviders();     virtual Boolean hasActiveProviders();
     virtual void unloadIdleProviders();     virtual void unloadIdleProviders();
  
    struct indProvRecord {      class indProvRecord
       indProvRecord() : enabled(false), count(1), handler(NULL) {}      {
       public:
           indProvRecord ()
           {
              enabled   = false;
              count     = 0;
              ctx       = NULL;
              handler   = NULL;
           }
   
           mutable Mutex                     mutex;
       Boolean enabled;       Boolean enabled;
       int count;       int count;
           OperationContext                 *ctx;
       EnableIndicationsResponseHandler* handler;       EnableIndicationsResponseHandler* handler;
    };    };
  
    struct indSelectRecord {      class indSelectRecord
       indSelectRecord() : eSelx(NULL) {}      {
       CMPI_SelectExp *eSelx;      public:
           indSelectRecord ()
           {
               qContext = NULL;
           }
   
           CIMOMHandleQueryContext *qContext;
           String                   query;
           String                   queryLanguage;
           CIMPropertyList          propertyList;
    };    };
  
    typedef HashTable<String,indProvRecord*,  EqualFunc<String>,HashFunc<String> > IndProvTab;      typedef HashTable<String,indProvRecord*,EqualFunc<String>,
    typedef HashTable<String,indSelectRecord*,EqualFunc<String>,HashFunc<String> > IndSelectTab;                        HashFunc<String> > IndProvTab;
    typedef HashTable<String,ProviderName,EqualFunc<String>,HashFunc<String> > ProvRegistrar;      typedef HashTable<String,indSelectRecord*,EqualFunc<String>,
                         HashFunc<String> > IndSelectTab;
       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();
  
     Message * handleGetInstanceRequest(const Message * message) throw();     Message * handleGetInstanceRequest(const Message * message) throw();
     Message * handleEnumerateInstancesRequest(const Message * message) throw();     Message * handleEnumerateInstancesRequest(const Message * message) throw();
     Message * handleEnumerateInstanceNamesRequest(const Message * message) throw();      Message * handleEnumerateInstanceNamesRequest(
                     const Message * message) throw();
     Message * handleCreateInstanceRequest(const Message * message) throw();     Message * handleCreateInstanceRequest(const Message * message) throw();
     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 JMPI
 */  ////Message * handleExportIndicationRequest(const Message * message) throw();
 //  Not supported by CMPI  
 //    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 * 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.7  
changed lines
  Added in v.1.28

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2