webrtc/call/adaptation/test/fake_resource.cc
Henrik Boström 39ab1b547c [Adaptation] Remove Resource::UsageState() and ClearUsageState().
ResourceListener::OnResourceUsageStateMeasured() now takes
ResourceUsageState as argument, making Resource::UsageState()
superfluous.

With the existing "fire-and-forget" behavior of always clearing usage
state on reacting to a signal, there is no longer a need to call
ClearUsageState() so this too is removed. (We may want to have a
callback in the future to hint to the Resource that it is a good idea
to clear internal measurement samples, i.e. because the load of the
system is about to change, but we can revisit that when we need it.)

Moving the usage state to the callback has the benefit of getting rid
of the assumption that UsageState() has to return the same value every
time it is called in the same task.

This CL is also the final nail in the coffin for Resource needing to
know about the adaptation task queue: ResourceAdaptationProcessor's
ResourceListener now takes care of posting to the adaptation task
queue. To support this, the processor's SequenceChecker is replaced
by a TaskQueueBase pointer.

Bug: webrtc:11525, webrtc:11618
Change-Id: I2277e71cc3759c85b62465020935603f03792c94
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176376
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/master@{#31416}
2020-06-03 08:27:49 +00:00

44 lines
1.2 KiB
C++

/*
* Copyright 2019 The WebRTC Project Authors. All rights reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "call/adaptation/test/fake_resource.h"
#include <algorithm>
#include <utility>
#include "rtc_base/ref_counted_object.h"
namespace webrtc {
// static
rtc::scoped_refptr<FakeResource> FakeResource::Create(std::string name) {
return new rtc::RefCountedObject<FakeResource>(name);
}
FakeResource::FakeResource(std::string name)
: Resource(), name_(std::move(name)), listener_(nullptr) {}
FakeResource::~FakeResource() {}
void FakeResource::SetUsageState(ResourceUsageState usage_state) {
if (listener_) {
listener_->OnResourceUsageStateMeasured(this, usage_state);
}
}
std::string FakeResource::Name() const {
return name_;
}
void FakeResource::SetResourceListener(ResourceListener* listener) {
listener_ = listener;
}
} // namespace webrtc