void DviService::StopSubscriptions() { iLock.Wait(); for (TUint i=0; i<iSubscriptions.size(); i++) { DviSubscription* subscription = iSubscriptions[i]; subscription->Stop(); iDvStack.SubscriptionManager().RemoveSubscription(*subscription); subscription->RemoveRef(); } iSubscriptions.clear(); iLock.Signal(); }
void DviService::RemoveSubscription(const Brx& aSid) { iLock.Wait(); for (TUint i=0; i<iSubscriptions.size(); i++) { DviSubscription* subscription = iSubscriptions[i]; if (subscription->Sid() == aSid) { iDvStack.SubscriptionManager().RemoveSubscription(*subscription); iSubscriptions.erase(iSubscriptions.begin() + i); iLock.Signal(); subscription->Stop(); subscription->RemoveRef(); return; } } iLock.Signal(); }