version 1.28.2.2, 2006/03/10 21:47:05
|
version 1.28.2.3, 2006/10/18 19:16:12
|
|
|
try | try |
{ | { |
// Look up the appropriate ProviderManager by InterfaceType | // Look up the appropriate ProviderManager by InterfaceType |
pm = _lookupProviderManager(interfaceType); |
pm = _getProviderManager(interfaceType); |
} | } |
catch (const CIMException& e) | catch (const CIMException& e) |
{ | { |
|
|
} | } |
| |
// ATTN: May need to add interfaceVersion parameter to further constrain lookup | // ATTN: May need to add interfaceVersion parameter to further constrain lookup |
ProviderManager* BasicProviderManagerRouter::_lookupProviderManager( |
ProviderManager* BasicProviderManagerRouter::_getProviderManager( |
const String& interfaceType) | const String& interfaceType) |
{ | { |
PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, | PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, |
"BasicProviderManagerRouter::_lookupProviderManager"); |
"BasicProviderManagerRouter::_getProviderManager"); |
| |
// | // |
// Search for this InterfaceType in the table of loaded ProviderManagers | // Search for this InterfaceType in the table of loaded ProviderManagers |
|
|
{ | { |
ReadLock tableLock(_providerManagerTableLock); | ReadLock tableLock(_providerManagerTableLock); |
| |
// find provider manager for specified provider interface type |
ProviderManager* pm = _lookupProviderManager(interfaceType); |
for(Uint32 i = 0, n = _providerManagerTable.size(); i < n; i++) |
if (pm) |
{ |
|
if (interfaceType == _providerManagerTable[i]->getInterfaceName()) |
|
{ | { |
ProviderManagerContainer* pmc=_providerManagerTable[i]; |
|
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
return pmc->getProviderManager(); |
return pm; |
} |
|
} | } |
} | } |
| |
|
|
{ | { |
WriteLock tableLock(_providerManagerTableLock); | WriteLock tableLock(_providerManagerTableLock); |
| |
|
ProviderManager* pm = _lookupProviderManager(interfaceType); |
|
if (pm) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
return pm; |
|
} |
|
|
// ATTN: this section is a temporary solution to populate the list of | // ATTN: this section is a temporary solution to populate the list of |
// enabled provider managers for a given distribution. It includes | // enabled provider managers for a given distribution. It includes |
// another temporary solution for converting a generic file name into | // another temporary solution for converting a generic file name into |
|
|
return 0; | return 0; |
} | } |
| |
|
// NOTE: The caller must lock _providerManagerTableLock before calling this |
|
// method. |
|
ProviderManager* BasicProviderManagerRouter::_lookupProviderManager( |
|
const String& interfaceType) |
|
{ |
|
PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, |
|
"BasicProviderManagerRouter::_lookupProviderManager"); |
|
|
|
// |
|
// Search for this InterfaceType in the table of loaded ProviderManagers |
|
// |
|
for (Uint32 i = 0, n = _providerManagerTable.size(); i < n; i++) |
|
{ |
|
if (interfaceType == _providerManagerTable[i]->getInterfaceName()) |
|
{ |
|
ProviderManagerContainer* pmc = _providerManagerTable[i]; |
|
PEG_METHOD_EXIT(); |
|
return pmc->getProviderManager(); |
|
} |
|
} |
|
|
|
// Not found |
|
PEG_METHOD_EXIT(); |
|
return 0; |
|
} |
|
|
Boolean BasicProviderManagerRouter::hasActiveProviders() | Boolean BasicProviderManagerRouter::hasActiveProviders() |
{ | { |
PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, | PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, |