static void AddNewIceStreamForRestart_s(RefPtr<PeerConnectionMedia> aPCMedia, RefPtr<TransportFlow> aFlow, size_t aLevel, bool aIsRtcp) { TransportLayerIce* ice = static_cast<TransportLayerIce*>(aFlow->GetLayer("ice")); ice->SetParameters(aPCMedia->ice_media_stream(aLevel), aIsRtcp ? 2 : 1); }
// Accessing the PCMedia should be safe here because we shouldn't // have enqueued this function unless it was still active and // the ICE data is destroyed on the STS. static void FinalizeTransportFlow_s(RefPtr<PeerConnectionMedia> aPCMedia, RefPtr<TransportFlow> aFlow, size_t aLevel, bool aIsRtcp, nsAutoPtr<PtrVector<TransportLayer> > aLayerList) { TransportLayerIce* ice = static_cast<TransportLayerIce*>(aLayerList->values.front()); ice->SetParameters(aPCMedia->ice_media_stream(aLevel), aIsRtcp ? 2 : 1); nsAutoPtr<std::queue<TransportLayer*> > layerQueue( new std::queue<TransportLayer*>); for (auto& value : aLayerList->values) { layerQueue->push(value); } aLayerList->values.clear(); (void)aFlow->PushLayers(layerQueue); // TODO(bug 854518): Process errors. }