void WebSession::onBundleStopping(const void* pSender, BundleEvent& ev) { if (ev.bundle() == _pContext->thisBundle()) { clear(); } }
void ExtensionPointService::onBundleStopped(const void* pSender, BundleEvent& event) { handleExtensions(event.bundle(), &ExtensionPointService::removeExtension, DIR_REVERSE); FastMutex::ScopedLock lock(_mutex); BundleMap::const_iterator it = _bundleMap.find(event.bundle()); while (it != _bundleMap.end() && it->first == event.bundle()) { XPMap::iterator itxp = _xpMap.find(it->second); if (itxp != _xpMap.end()) { _logger.information(std::string("Extension point ") + itxp->first + " unregistered because the bundle that defined it (" + event.bundle()->symbolicName() + ") was stopped."); _xpMap.erase(itxp); } ++it; } }
void ExtensionPointService::onBundleStarted(const void* pSender, BundleEvent& event) { handleExtensions(event.bundle(), &ExtensionPointService::handleExtension, DIR_FORWARD); }