version 1.56, 2005/11/29 23:12:59
|
version 1.57, 2006/01/11 20:44:29
|
|
|
| |
// tell the provider manager to shutdown all the providers | // tell the provider manager to shutdown all the providers |
providerManager.shutdownAllProviders(); | providerManager.shutdownAllProviders(); |
// And remove all of the response handlers that might have not been |
|
// explicitly stopped. |
try |
try { |
{ |
for (IndicationResponseTable::Iterator i = _responseTable.start(); i != 0; i++) |
// Delete the response handlers that were not explicitly disabled. |
|
AutoMutex lock(_responseTableMutex); |
|
|
|
for (IndicationResponseTable::Iterator i = _responseTable.start(); |
|
i != 0; i++) |
{ | { |
EnableIndicationsResponseHandler *handler = i.value(); | EnableIndicationsResponseHandler *handler = i.value(); |
delete handler; | delete handler; |
} | } |
} catch (... ) { } |
|
|
_responseTable.clear(); |
|
} |
|
catch (...) { } |
| |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
| |
|
|
| |
void DefaultProviderManager::_insertEntry ( | void DefaultProviderManager::_insertEntry ( |
const Provider & provider, | const Provider & provider, |
const EnableIndicationsResponseHandler *handler) |
EnableIndicationsResponseHandler* handler) |
{ | { |
PEG_METHOD_ENTER (TRC_PROVIDERMANAGER, | PEG_METHOD_ENTER (TRC_PROVIDERMANAGER, |
"DefaultProviderManager::_insertEntry"); | "DefaultProviderManager::_insertEntry"); |
| |
String tableKey = _generateKey |
String tableKey = _generateKey(provider); |
(provider); |
|
| |
_responseTable.insert (tableKey, const_cast<EnableIndicationsResponseHandler *>(handler)); |
AutoMutex lock(_responseTableMutex); |
|
_responseTable.insert(tableKey, handler); |
| |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
} | } |
|
|
"DefaultProviderManager::_removeEntry"); | "DefaultProviderManager::_removeEntry"); |
EnableIndicationsResponseHandler *ret = 0; | EnableIndicationsResponseHandler *ret = 0; |
| |
|
AutoMutex lock(_responseTableMutex); |
_responseTable.lookup(key, ret); | _responseTable.lookup(key, ret); |
_responseTable.remove(key); // why is this needed ? - we get killed when removed... |
_responseTable.remove(key); |
| |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
| |