blob: be04e8d6d920d8cfacb1a09317b068583986015f [file] [log] [blame]
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/media_router/browser/presentation/presentation_service_delegate_observers.h"
#include "base/containers/contains.h"
namespace media_router {
PresentationServiceDelegateObservers::PresentationServiceDelegateObservers() =
default;
PresentationServiceDelegateObservers::~PresentationServiceDelegateObservers() {
for (auto& observer_pair : observers_) {
observer_pair.second->OnDelegateDestroyed();
}
}
void PresentationServiceDelegateObservers::AddObserver(
int render_process_id,
int render_frame_id,
content::PresentationServiceDelegate::Observer* observer) {
DCHECK(observer);
content::GlobalRenderFrameHostId rfh_id(render_process_id, render_frame_id);
DCHECK(!base::Contains(observers_, rfh_id));
observers_[rfh_id] = observer;
}
void PresentationServiceDelegateObservers::RemoveObserver(int render_process_id,
int render_frame_id) {
observers_.erase(
content::GlobalRenderFrameHostId(render_process_id, render_frame_id));
}
} // namespace media_router