| Index: chrome/browser/media/router/discovery/media_sink_service_base.cc
|
| diff --git a/chrome/browser/media/router/discovery/media_sink_service_base.cc b/chrome/browser/media/router/discovery/media_sink_service_base.cc
|
| index a1ccff11dccc786dfa4f97ed3ef1417eae112fb2..7e382a2a35994a956fa7bb828b246c84786680a6 100644
|
| --- a/chrome/browser/media/router/discovery/media_sink_service_base.cc
|
| +++ b/chrome/browser/media/router/discovery/media_sink_service_base.cc
|
| @@ -20,6 +20,15 @@ MediaSinkServiceBase::MediaSinkServiceBase(
|
|
|
| MediaSinkServiceBase::~MediaSinkServiceBase() = default;
|
|
|
| +void MediaSinkServiceBase::AddObserver(Observer* observer) {
|
| + if (!observers_.HasObserver(observer))
|
| + observers_.AddObserver(observer);
|
| +}
|
| +
|
| +void MediaSinkServiceBase::RemoveObserver(Observer* observer) {
|
| + observers_.RemoveObserver(observer);
|
| +}
|
| +
|
| void MediaSinkServiceBase::SetTimerForTest(std::unique_ptr<base::Timer> timer) {
|
| DCHECK(!finish_timer_);
|
| finish_timer_ = std::move(timer);
|
| @@ -63,4 +72,22 @@ void MediaSinkServiceBase::RestartTimer() {
|
| StartTimer();
|
| }
|
|
|
| +void MediaSinkServiceBase::AddSink(const MediaSinkInternal& sink) {
|
| + if (!current_sinks_.insert(sink).second)
|
| + return;
|
| +
|
| + for (auto& observer : observers_)
|
| + observer.OnMediaSinkAdded(sink);
|
| +}
|
| +
|
| +void MediaSinkServiceBase::RemoveSinks() {
|
| + current_sinks_.clear();
|
| + for (auto& observer : observers_)
|
| + observer.OnMediaSinksRemoved();
|
| +}
|
| +
|
| +size_t MediaSinkServiceBase::GetCurrentSinksSize() {
|
| + return current_sinks_.size();
|
| +}
|
| +
|
| } // namespace media_router
|
|
|