version 1.15, 2008/01/18 19:58:01
|
version 1.16, 2008/01/23 09:52:59
|
|
|
#include <Pegasus/Provider/CMPI/cmpidt.h> | #include <Pegasus/Provider/CMPI/cmpidt.h> |
#include <Pegasus/Provider/CMPI/cmpift.h> | #include <Pegasus/Provider/CMPI/cmpift.h> |
| |
#include <Pegasus/Common/AutoPtr.h> |
|
#include <Pegasus/Common/String.h> | #include <Pegasus/Common/String.h> |
#include <Pegasus/Common/CIMClass.h> | #include <Pegasus/Common/CIMClass.h> |
#include <Pegasus/Common/HashTable.h> |
#include <Pegasus/ProviderManager2/CMPI/CMPIClassCache.h> |
#include <Pegasus/Common/ReadWriteSem.h> |
|
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
|
|
| |
CIMClass *mbGetClass(const CMPIBroker *mb, const CIMObjectPath &cop); | CIMClass *mbGetClass(const CMPIBroker *mb, const CIMObjectPath &cop); |
| |
typedef HashTable<String, CIMClass *, |
|
EqualFunc<String>, HashFunc<String> > ClassCache; |
|
|
|
class CMPIProvider; | class CMPIProvider; |
| |
struct delClassCacheAutoPtr |
|
{ |
|
void operator()(ClassCache* ptr) |
|
{ |
|
if (ptr) |
|
{ |
|
ClassCache::Iterator i=ptr->start(); |
|
for (; i; i++) |
|
{ |
|
delete i.value(); |
|
} |
|
delete ptr; |
|
ptr=0; |
|
} |
|
} |
|
}; |
|
|
|
struct CMPI_Broker : CMPIBroker | struct CMPI_Broker : CMPIBroker |
{ | { |
AutoPtr<ClassCache, delClassCacheAutoPtr> clsCache; |
CMPIClassCache classCache; |
ReadWriteSem rwsemClassCache; |
|
String name; | String name; |
CMPIProvider *provider; | CMPIProvider *provider; |
}; | }; |