version 1.8, 2006/02/08 23:17:23
|
version 1.16, 2006/09/20 20:47:44
|
|
|
// | // |
//============================================================================== | //============================================================================== |
// | // |
// Author: Chip Vincent (cvincent@us.ibm.com) |
|
// |
|
// Modified By: Yi Zhou, Hewlett-Packard Company(yi_zhou@hp.com) |
|
// Mike Day, IBM (mdday@us.ibm.com) |
|
// Adrian Schuur, schuur@de.ibm.com |
|
// |
|
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
#ifndef Pegasus_JMPIProvider_h | #ifndef Pegasus_JMPIProvider_h |
#define Pegasus_JMPIProvider_h | #define Pegasus_JMPIProvider_h |
| |
#include "JMPIImpl.h" |
|
#include <Pegasus/Common/Config.h> | #include <Pegasus/Common/Config.h> |
#include <Pegasus/Common/IPC.h> |
|
#include <Pegasus/Provider/CIMOMHandle.h> | #include <Pegasus/Provider/CIMOMHandle.h> |
#include <Pegasus/Provider/CIMInstanceProvider.h> | #include <Pegasus/Provider/CIMInstanceProvider.h> |
#include <Pegasus/Provider/CIMAssociationProvider.h> | #include <Pegasus/Provider/CIMAssociationProvider.h> |
#include <Pegasus/Provider/CIMMethodProvider.h> | #include <Pegasus/Provider/CIMMethodProvider.h> |
|
#include <Pegasus/Common/AtomicInt.h> |
//#include <Pegasus/ProviderManager2/CMPI/CMPIResolverModule.h> |
|
| |
#include <Pegasus/Server/Linkage.h> | #include <Pegasus/Server/Linkage.h> |
|
#include <Pegasus/ProviderManager2/JMPI/Linkage.h> |
|
#include <Pegasus/ProviderManager2/JMPI/JMPIImpl.h> |
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
class JMPIProviderModule; | class JMPIProviderModule; |
class CMPIResolverModule; |
|
| |
struct ProviderVector { | struct ProviderVector { |
jclass jProviderClass; | jclass jProviderClass; |
|
|
// provider module. It is wrapped in a facade to stabalize the interface | // provider module. It is wrapped in a facade to stabalize the interface |
// and is directly tied to a module. | // and is directly tied to a module. |
| |
class PEGASUS_SERVER_LINKAGE JMPIProvider : |
class PEGASUS_JMPIPM_LINKAGE JMPIProvider : |
public virtual CIMProvider | public virtual CIMProvider |
{ | { |
public: | public: |
|
|
| |
Status getStatus(void) const; | Status getStatus(void) const; |
String getName(void) const; | String getName(void) const; |
void setResolver(CMPIResolverModule *rm) { _rm=rm; } |
|
| |
JMPIProviderModule *getModule(void) const; | JMPIProviderModule *getModule(void) const; |
| |
// << Mon Oct 14 15:42:24 2002 mdd >> for use with DQueue template |
|
// to allow conversion from using Array<> |
|
Boolean operator == (const void *key) const; |
|
Boolean operator == (const JMPIProvider & prov) const; |
|
|
|
// virtual void get_idle_timer(struct timeval *); |
|
// virtual void update_idle_timer(void); |
|
// virtual Boolean pending_operation(void); |
|
// virtual Boolean unload_ok(void); | // virtual Boolean unload_ok(void); |
| |
// force provider manager to keep in memory | // force provider manager to keep in memory |
|
|
private: | private: |
friend class JMPILocalProviderManager; | friend class JMPILocalProviderManager; |
friend class JMPIProviderManager; | friend class JMPIProviderManager; |
friend class ProviderManagerService; |
|
class OpProviderHolder; | class OpProviderHolder; |
friend class OpProviderHolder; | friend class OpProviderHolder; |
mutable Mutex _cimomMutex; | mutable Mutex _cimomMutex; |
|
|
void *jProviderClass,*jProvider; | void *jProviderClass,*jProvider; |
String _name; | String _name; |
AtomicInt _no_unload; | AtomicInt _no_unload; |
CMPIResolverModule *_rm; |
|
Uint32 _quantum; | Uint32 _quantum; |
AtomicInt _current_operations; | AtomicInt _current_operations; |
mutable Mutex _statusMutex; | mutable Mutex _statusMutex; |