version 1.47.2.4, 2005/04/02 00:23:25
|
version 1.48, 2004/12/15 00:00:14
|
|
|
// Author: Adrian Schuur, schuur@de.ibm.com | // Author: Adrian Schuur, schuur@de.ibm.com |
// | // |
// Modified By: Seema Gupta (gseema@in.ibm.com) for PEP135 | // Modified By: Seema Gupta (gseema@in.ibm.com) for PEP135 |
// Marek Szermutzky (mszermutzky@de.ibm.com) for Bugzilla 2320 |
// Robert Kieninger (kieningr@de.ibm.com) for Bugzilla 2320 |
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
|
|
| |
CMPIProviderManager::~CMPIProviderManager(void) | CMPIProviderManager::~CMPIProviderManager(void) |
{ | { |
indProvRecord *prec=NULL; |
|
for (IndProvTab::Iterator i = provTab.start(); i; i++) |
|
{ |
|
provTab.lookup(i.key(),prec); |
|
if (prec->handler) |
|
delete prec->handler; |
|
delete prec; |
|
provTab.remove(i.key()); |
|
prec=NULL; |
|
} |
|
indSelectRecord *selx=NULL; |
|
for (IndSelectTab::Iterator i = selxTab.start(); i; i++) |
|
{ |
|
selxTab.lookup(i.key(), selx); |
|
if (selx->eSelx) |
|
delete selx->eSelx; |
|
delete selx; |
|
selxTab.remove(i.key()); |
|
selx=NULL; |
|
} |
|
} | } |
| |
Boolean CMPIProviderManager::insertProvider(const ProviderName & name, | Boolean CMPIProviderManager::insertProvider(const ProviderName & name, |
|
|
| |
const IdentityContainer container = | const IdentityContainer container = |
request->operationContext.get(IdentityContainer::NAME); | request->operationContext.get(IdentityContainer::NAME); |
|
|
eCtx.ft->addEntry(&eCtx, | eCtx.ft->addEntry(&eCtx, |
CMPIPrincipal, | CMPIPrincipal, |
(CMPIValue*)(const char*)container.getUserName().getCString(), | (CMPIValue*)(const char*)container.getUserName().getCString(), |
|
|
selxTab.insert(sPath.toString(),srec); | selxTab.insert(sPath.toString(),srec); |
| |
// convert arguments | // convert arguments |
OperationContext context; |
OperationContext *context=new OperationContext(); |
context.insert(request->operationContext.get(IdentityContainer::NAME)); |
context->insert(request->operationContext.get(IdentityContainer::NAME)); |
context.insert(request->operationContext.get(AcceptLanguageListContainer::NAME)); |
context->insert(request->operationContext.get(AcceptLanguageListContainer::NAME)); |
context.insert(request->operationContext.get(ContentLanguageListContainer::NAME)); |
context->insert(request->operationContext.get(ContentLanguageListContainer::NAME)); |
context.insert(request->operationContext.get(SubscriptionInstanceContainer::NAME)); |
context->insert(request->operationContext.get(SubscriptionInstanceContainer::NAME)); |
context.insert(request->operationContext.get(SubscriptionLanguageListContainer::NAME)); |
context->insert(request->operationContext.get(SubscriptionLanguageListContainer::NAME)); |
context.insert(request->operationContext.get(SubscriptionFilterConditionContainer::NAME)); |
context->insert(request->operationContext.get(SubscriptionFilterConditionContainer::NAME)); |
| |
CIMObjectPath subscriptionName = request->subscriptionInstance.getPath(); | CIMObjectPath subscriptionName = request->subscriptionInstance.getPath(); |
| |
CMPIProvider & pr=ph.GetProvider(); | CMPIProvider & pr=ph.GetProvider(); |
| |
CMPIStatus rc={CMPI_RC_OK,NULL}; | CMPIStatus rc={CMPI_RC_OK,NULL}; |
CMPI_ContextOnStack eCtx(context); |
CMPI_ContextOnStack eCtx(*context); |
| |
SubscriptionFilterConditionContainer sub_cntr = request->operationContext.get | SubscriptionFilterConditionContainer sub_cntr = request->operationContext.get |
(SubscriptionFilterConditionContainer::NAME); | (SubscriptionFilterConditionContainer::NAME); |
| |
CMPI_SelectExp *eSelx=new CMPI_SelectExp(context, |
CMPI_SelectExp *eSelx=new CMPI_SelectExp(*context, |
request->query, | request->query, |
sub_cntr.getQueryLanguage()); | sub_cntr.getQueryLanguage()); |
srec->eSelx=eSelx; | srec->eSelx=eSelx; |
|
|
provTab.lookup(providerName,prec); | provTab.lookup(providerName,prec); |
if (--prec->count<=0) { | if (--prec->count<=0) { |
provTab.remove(providerName); | provTab.remove(providerName); |
delete prec; |
|
prec=NULL; | prec=NULL; |
} | } |
| |
|
|
&eRef,prec==NULL); | &eRef,prec==NULL); |
| |
delete eSelx; | delete eSelx; |
delete srec; |
|
STAT_PMS_PROVIDEREND; | STAT_PMS_PROVIDEREND; |
| |
#ifdef PEGASUS_ZOS_THREADLEVEL_SECURITY | #ifdef PEGASUS_ZOS_THREADLEVEL_SECURITY |
|
|
| |
DDD(cerr<<"--- CMPIProviderManager::enableIndicationRequest"<<endl); | DDD(cerr<<"--- CMPIProviderManager::enableIndicationRequest"<<endl); |
| |
|
const IdentityContainer container = |
|
request->operationContext.get(IdentityContainer::NAME); |
|
eCtx.ft->addEntry(&eCtx, |
|
CMPIPrincipal, |
|
(CMPIValue*)(const char*)container.getUserName().getCString(), |
|
CMPI_chars); |
|
|
CMPIProvider::pm_service_op_lock op_lock(&pr); | CMPIProvider::pm_service_op_lock op_lock(&pr); |
ph.GetProvider().protect(); | ph.GetProvider().protect(); |
| |
|
|
| |
DDD(cerr<<"--- CMPIProviderManager::disableIndicationRequest"<<endl); | DDD(cerr<<"--- CMPIProviderManager::disableIndicationRequest"<<endl); |
| |
|
const IdentityContainer container = |
|
request->operationContext.get(IdentityContainer::NAME); |
|
eCtx.ft->addEntry(&eCtx, |
|
CMPIPrincipal, |
|
(CMPIValue*)(const char*)container.getUserName().getCString(), |
|
CMPI_chars); |
|
|
CMPIProvider::pm_service_op_lock op_lock(&pr); | CMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |