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

  1 a.dunfey 1.3.16.1 //%2006////////////////////////////////////////////////////////////////////////
  2 schuur   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 schuur   1.1      // IBM Corp.; EMC Corporation, The Open Group.
  7 karl     1.2      // 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.3      // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10                   // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11 a.dunfey 1.3.16.1 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 12                   // EMC Corporation; Symantec Corporation; The Open Group.
 13 schuur   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.2      // 
 21 schuur   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: Yi Zhou, Hewlett-Packard Company(yi_zhou@hp.com)
 35                   //              Mike Day, IBM (mdday@us.ibm.com)
 36                   //              Adrian Schuur, IBM (schuur@de.ibm.com)
 37                   //
 38                   //%/////////////////////////////////////////////////////////////////////////////
 39                   
 40                   #ifndef Pegasus_JMPIProviderModule_h
 41                   #define Pegasus_JMPIProviderModule_h
 42 schuur   1.1      
 43                   #include "JMPIImpl.h"
 44                   
 45                   #include <Pegasus/Common/Config.h>
 46                   #include <Pegasus/Common/String.h>
 47                   #include <Pegasus/Common/System.h>
 48                   #include <Pegasus/Common/IPC.h>
 49                   
 50                   #include <Pegasus/Provider/CIMProvider.h>
 51                   #include <Pegasus/ProviderManager2/JMPI/JMPIProvider.h>
 52                   
 53                   #include <Pegasus/Server/Linkage.h>
 54                   
 55                   PEGASUS_NAMESPACE_BEGIN
 56                   
 57                   // The JMPIProviderModule class represents the physical module, as defined by the
 58                   // operation, that contains a provider. This class effectively encapsulates the
 59                   // "physical" portion of a provider.
 60                   
 61                   
 62                   class PEGASUS_SERVER_LINKAGE JMPIProviderModule
 63 schuur   1.1      {
 64                   
 65                       friend class JMPILocalProviderManager;
 66                   
 67                   public:
 68                       virtual ~JMPIProviderModule(void);
 69                       const String & getFileName(void) const;
 70                       ProviderVector load(const String & providerName);
 71                       void unloadModule(void);
 72                   
 73                   protected:
 74                       String _fileName;
 75                       String _className;
 76                       String _interfaceName;
 77                       AtomicInt _ref_count;
 78                       DynamicLibraryHandle _library;
 79                       Uint32 _refCount;
 80                       void *jProviderClass;
 81                       void *jProvider;
 82                   
 83                   private:
 84 schuur   1.1          JMPIProviderModule(const String & fileName, const String & interfaceName);
 85                       const String & getProviderName(void) const;
 86                       const String & getInterfaceName(void) const ;
 87                       virtual CIMProvider * getProvider(void) const;
 88                   
 89                       String _providerName;
 90                       CIMProvider * _provider;
 91                   };
 92                   
 93                   inline const String & JMPIProviderModule::getFileName(void) const
 94                   {
 95                       return(_fileName);
 96                   }
 97                   
 98                   inline const String & JMPIProviderModule::getInterfaceName(void) const
 99                   {
100                       return(_interfaceName);
101                   }
102                   
103                   inline const String & JMPIProviderModule::getProviderName(void) const
104                   {
105 schuur   1.1          return(_providerName);
106                   }
107                   
108                   inline CIMProvider * JMPIProviderModule::getProvider(void) const
109                   {
110                       return(_provider);
111                   }
112                   
113                   PEGASUS_NAMESPACE_END
114                   
115                   #endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2