mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-12 21:30:45 +01:00
Make MessageHandler be a pure virtual interface.
Bug: webrtc:11908 Change-Id: I35d3c4005d970082bff8c5ff24186aab54205c37 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185340 Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Commit-Queue: Tommi <tommi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#32194}
This commit is contained in:
parent
ad148272b8
commit
77baeee99e
12 changed files with 20 additions and 55 deletions
|
@ -31,8 +31,7 @@ constexpr size_t kNumSamples = kSamplesPerSecond / 100; // 10ms of samples
|
|||
} // namespace
|
||||
|
||||
NullAudioPoller::NullAudioPoller(AudioTransport* audio_transport)
|
||||
: MessageHandler(false),
|
||||
audio_transport_(audio_transport),
|
||||
: audio_transport_(audio_transport),
|
||||
reschedule_at_(rtc::TimeMillis() + kPollDelayMs) {
|
||||
RTC_DCHECK(audio_transport);
|
||||
OnMessage(nullptr); // Start the poll loop.
|
||||
|
|
|
@ -43,11 +43,7 @@ rtc::AsyncSocket* CreateClientSocket(int family) {
|
|||
} // namespace
|
||||
|
||||
PeerConnectionClient::PeerConnectionClient()
|
||||
: MessageHandler(false),
|
||||
callback_(NULL),
|
||||
resolver_(NULL),
|
||||
state_(NOT_CONNECTED),
|
||||
my_id_(-1) {}
|
||||
: callback_(NULL), resolver_(NULL), state_(NOT_CONNECTED), my_id_(-1) {}
|
||||
|
||||
PeerConnectionClient::~PeerConnectionClient() {
|
||||
rtc::Thread::Current()->Clear(this);
|
||||
|
|
|
@ -174,8 +174,7 @@ bool StunRequestManager::CheckResponse(const char* data, size_t size) {
|
|||
}
|
||||
|
||||
StunRequest::StunRequest()
|
||||
: rtc::MessageHandler(false),
|
||||
count_(0),
|
||||
: count_(0),
|
||||
timeout_(false),
|
||||
manager_(0),
|
||||
msg_(new StunMessage()),
|
||||
|
@ -184,12 +183,7 @@ StunRequest::StunRequest()
|
|||
}
|
||||
|
||||
StunRequest::StunRequest(StunMessage* request)
|
||||
: rtc::MessageHandler(false),
|
||||
count_(0),
|
||||
timeout_(false),
|
||||
manager_(0),
|
||||
msg_(request),
|
||||
tstamp_(0) {
|
||||
: count_(0), timeout_(false), manager_(0), msg_(request), tstamp_(0) {
|
||||
msg_->SetTransactionID(rtc::CreateRandomString(kStunTransactionIdLength));
|
||||
}
|
||||
|
||||
|
|
|
@ -1026,8 +1026,7 @@ void ExtractSharedMediaSessionOptions(
|
|||
PeerConnection::PeerConnection(PeerConnectionFactory* factory,
|
||||
std::unique_ptr<RtcEventLog> event_log,
|
||||
std::unique_ptr<Call> call)
|
||||
: MessageHandler(false),
|
||||
factory_(factory),
|
||||
: factory_(factory),
|
||||
event_log_(std::move(event_log)),
|
||||
event_log_ptr_(event_log_.get()),
|
||||
operations_chain_(rtc::OperationsChain::Create()),
|
||||
|
|
|
@ -50,8 +50,7 @@ class RemoteAudioSource::AudioDataProxy : public AudioSinkInterface {
|
|||
};
|
||||
|
||||
RemoteAudioSource::RemoteAudioSource(rtc::Thread* worker_thread)
|
||||
: MessageHandler(false),
|
||||
main_thread_(rtc::Thread::Current()),
|
||||
: main_thread_(rtc::Thread::Current()),
|
||||
worker_thread_(worker_thread),
|
||||
state_(MediaSourceInterface::kLive) {
|
||||
RTC_DCHECK(main_thread_);
|
||||
|
|
|
@ -130,8 +130,7 @@ WebRtcSessionDescriptionFactory::WebRtcSessionDescriptionFactory(
|
|||
std::unique_ptr<rtc::RTCCertificateGeneratorInterface> cert_generator,
|
||||
const rtc::scoped_refptr<rtc::RTCCertificate>& certificate,
|
||||
UniqueRandomIdGenerator* ssrc_generator)
|
||||
: MessageHandler(false),
|
||||
signaling_thread_(signaling_thread),
|
||||
: signaling_thread_(signaling_thread),
|
||||
session_desc_factory_(channel_manager,
|
||||
&transport_desc_factory_,
|
||||
ssrc_generator),
|
||||
|
|
|
@ -14,14 +14,7 @@
|
|||
|
||||
namespace rtc {
|
||||
|
||||
MessageHandler::MessageHandler(bool auto_cleanup) {
|
||||
RTC_DCHECK(!auto_cleanup) << "Use MessageHandlerAutoCleanup";
|
||||
}
|
||||
|
||||
MessageHandler::~MessageHandler() {}
|
||||
|
||||
MessageHandlerAutoCleanup::MessageHandlerAutoCleanup()
|
||||
: MessageHandler(false) {}
|
||||
MessageHandlerAutoCleanup::MessageHandlerAutoCleanup() {}
|
||||
|
||||
MessageHandlerAutoCleanup::~MessageHandlerAutoCleanup() {
|
||||
// Note that even though this clears currently pending messages for the
|
||||
|
|
|
@ -21,29 +21,18 @@ namespace rtc {
|
|||
|
||||
struct Message;
|
||||
|
||||
// MessageQueue/Thread Messages get dispatched to a MessageHandler via the
|
||||
// |OnMessage()| callback method.
|
||||
//
|
||||
// Note: Besides being an interface, the class can perform automatic cleanup
|
||||
// in the destructor.
|
||||
// TODO(bugs.webrtc.org/11908): The |auto_cleanup| parameter and associated
|
||||
// logic is a temporary step while changing the MessageHandler class to be
|
||||
// a pure virtual interface. The automatic cleanup step involves a number of
|
||||
// complex operations and as part of this interface, can easily go by unnoticed
|
||||
// and bundled into situations where it's not needed.
|
||||
// MessageQueue/Thread Messages get dispatched via the MessageHandler interface.
|
||||
class RTC_EXPORT MessageHandler {
|
||||
public:
|
||||
virtual ~MessageHandler();
|
||||
virtual ~MessageHandler() {}
|
||||
virtual void OnMessage(Message* msg) = 0;
|
||||
|
||||
protected:
|
||||
// TODO(bugs.webrtc.org/11908): Remove this ctor.
|
||||
explicit MessageHandler(bool auto_cleanup);
|
||||
|
||||
private:
|
||||
RTC_DISALLOW_COPY_AND_ASSIGN(MessageHandler);
|
||||
};
|
||||
|
||||
// Warning: Provided for backwards compatibility.
|
||||
//
|
||||
// This class performs expensive cleanup in the dtor that will affect all
|
||||
// instances of Thread (and their pending message queues) and will block the
|
||||
// current thread as well as all other threads.
|
||||
class RTC_EXPORT MessageHandlerAutoCleanup : public MessageHandler {
|
||||
public:
|
||||
~MessageHandlerAutoCleanup() override;
|
||||
|
|
|
@ -74,7 +74,7 @@ const int kSlowDispatchLoggingThreshold = 50; // 50 ms
|
|||
|
||||
class MessageHandlerWithTask final : public MessageHandler {
|
||||
public:
|
||||
MessageHandlerWithTask() : MessageHandler(false) {}
|
||||
MessageHandlerWithTask() {}
|
||||
|
||||
void OnMessage(Message* msg) override {
|
||||
static_cast<rtc_thread_internal::MessageLikeTask*>(msg->pdata)->Run();
|
||||
|
@ -961,7 +961,7 @@ void Thread::InvokeInternal(const Location& posted_from,
|
|||
class FunctorMessageHandler : public MessageHandler {
|
||||
public:
|
||||
explicit FunctorMessageHandler(rtc::FunctionView<void()> functor)
|
||||
: MessageHandler(false), functor_(functor) {}
|
||||
: functor_(functor) {}
|
||||
void OnMessage(Message* msg) override { functor_(); }
|
||||
|
||||
private:
|
||||
|
|
|
@ -534,7 +534,7 @@ class RTC_LOCKABLE RTC_EXPORT Thread : public webrtc::TaskQueueBase {
|
|||
private:
|
||||
class QueuedTaskHandler final : public MessageHandler {
|
||||
public:
|
||||
QueuedTaskHandler() : MessageHandler(false) {}
|
||||
QueuedTaskHandler() {}
|
||||
void OnMessage(Message* msg) override;
|
||||
};
|
||||
|
||||
|
|
|
@ -82,9 +82,7 @@ void PostJavaCallback(JNIEnv* env,
|
|||
JavaAsyncCallback(JNIEnv* env,
|
||||
const JavaRef<jobject>& j_object,
|
||||
JavaMethodPointer java_method_pointer)
|
||||
: rtc::MessageHandler(false),
|
||||
j_object_(env, j_object),
|
||||
java_method_pointer_(java_method_pointer) {}
|
||||
: j_object_(env, j_object), java_method_pointer_(java_method_pointer) {}
|
||||
|
||||
void OnMessage(rtc::Message*) override {
|
||||
java_method_pointer_(AttachCurrentThreadIfNeeded(), j_object_);
|
||||
|
|
|
@ -101,8 +101,7 @@ static void LogDeviceInfo() {
|
|||
#endif // !defined(NDEBUG)
|
||||
|
||||
AudioDeviceIOS::AudioDeviceIOS()
|
||||
: MessageHandler(false),
|
||||
audio_device_buffer_(nullptr),
|
||||
: audio_device_buffer_(nullptr),
|
||||
audio_unit_(nullptr),
|
||||
recording_(0),
|
||||
playing_(0),
|
||||
|
|
Loading…
Reference in a new issue