| Index: webrtc/base/nethelpers.h
|
| diff --git a/webrtc/base/nethelpers.h b/webrtc/base/nethelpers.h
|
| index b0727f861b6a2910b225b839447e21d02911bc74..694038965271517b33ee78425dd8e47ce78c8245 100644
|
| --- a/webrtc/base/nethelpers.h
|
| +++ b/webrtc/base/nethelpers.h
|
| @@ -19,19 +19,22 @@
|
| #endif
|
|
|
| #include <list>
|
| +#include <memory>
|
|
|
| #include "webrtc/base/asyncresolverinterface.h"
|
| -#include "webrtc/base/signalthread.h"
|
| #include "webrtc/base/sigslot.h"
|
| #include "webrtc/base/socketaddress.h"
|
|
|
| namespace rtc {
|
|
|
| -class AsyncResolverTest;
|
| +class Thread;
|
| +class TaskQueue;
|
|
|
| -// AsyncResolver will perform async DNS resolution, signaling the result on
|
| -// the SignalDone from AsyncResolverInterface when the operation completes.
|
| -class AsyncResolver : public SignalThread, public AsyncResolverInterface {
|
| +// AsyncResolver will perform async DNS resolution, signaling the result on the
|
| +// SignalDone from AsyncResolverInterface when the operation completes.
|
| +// SignalDone is fired on the same thread on which the AsyncResolver was
|
| +// constructed.
|
| +class AsyncResolver : public AsyncResolverInterface {
|
| public:
|
| AsyncResolver();
|
| ~AsyncResolver() override;
|
| @@ -44,14 +47,15 @@ class AsyncResolver : public SignalThread, public AsyncResolverInterface {
|
| const std::vector<IPAddress>& addresses() const { return addresses_; }
|
| void set_error(int error) { error_ = error; }
|
|
|
| - protected:
|
| - void DoWork() override;
|
| - void OnWorkDone() override;
|
| -
|
| private:
|
| + void ResolveDone(int error, std::vector<IPAddress> addresses);
|
| +
|
| + rtc::Thread* const construction_thread_;
|
| + // Queue used only for a single task.
|
| + std::unique_ptr<TaskQueue> resolver_queue_;
|
| SocketAddress addr_;
|
| std::vector<IPAddress> addresses_;
|
| - int error_;
|
| + int error_ = -1;
|
| };
|
|
|
| // rtc namespaced wrappers for inet_ntop and inet_pton so we can avoid
|
|
|