Chromium Code Reviews| Index: remoting/signaling/delegating_signal_strategy.h |
| diff --git a/remoting/client/plugin/delegating_signal_strategy.h b/remoting/signaling/delegating_signal_strategy.h |
| similarity index 60% |
| rename from remoting/client/plugin/delegating_signal_strategy.h |
| rename to remoting/signaling/delegating_signal_strategy.h |
| index 9a9096f44a5d1cb49fbeb7891a2fccb8269d5339..1c1f2bfe9b2a854e3c052e1130f9d238a301988e 100644 |
| --- a/remoting/client/plugin/delegating_signal_strategy.h |
| +++ b/remoting/signaling/delegating_signal_strategy.h |
| @@ -7,7 +7,7 @@ |
| #include "base/callback.h" |
| #include "base/macros.h" |
| -#include "base/observer_list.h" |
| +#include "base/observer_list_threadsafe.h" |
| #include "remoting/signaling/signal_strategy.h" |
| namespace base { |
| @@ -16,12 +16,24 @@ class SingleThreadTaskRunner; |
| namespace remoting { |
| +// A signaling strategy class that delegates IQ sending and receiving. |
| +// |
| +// Notes on thread safety: |
| +// 1. This object can be created on any thread. |
| +// 2. |OnIncomingMessage| and |send_iq_callback| will always be called in |
|
Sergey Ulanov
2016/10/05 21:49:07
s/|OnIncomingMessage|/OnIncomingMessage()/
Sergey Ulanov
2016/10/05 21:49:07
Also please note that |send_iq_callback| may be ca
kelvinp
2016/10/06 00:43:05
Done.
kelvinp
2016/10/06 00:43:05
Done.
|
| +// |delegate_task_runner|. |
| +// 3. The caller should invoke all methods on the |client_task_runner|. |
| +// 4. All listeners will be called on |client_task_runner| as well. |
| +// 5. The destructor should always be called on the |client_task_runner|. |
| class DelegatingSignalStrategy : public SignalStrategy { |
| public: |
| typedef base::Callback<void(const std::string&)> SendIqCallback; |
| - DelegatingSignalStrategy(std::string local_jid, |
| - const SendIqCallback& send_iq_callback); |
| + DelegatingSignalStrategy( |
| + std::string local_jid, |
| + scoped_refptr<base::SingleThreadTaskRunner> delegate_task_runner, |
|
Sergey Ulanov
2016/10/05 21:49:07
This class is always created on delegate_task_runn
kelvinp
2016/10/06 00:43:06
Done.
|
| + scoped_refptr<base::SingleThreadTaskRunner> client_task_runner, |
| + const SendIqCallback& send_iq_callback); |
| ~DelegatingSignalStrategy() override; |
| void OnIncomingMessage(const std::string& message); |
| @@ -39,8 +51,10 @@ class DelegatingSignalStrategy : public SignalStrategy { |
| private: |
| std::string local_jid_; |
| - SendIqCallback send_iq_callback_; |
| + scoped_refptr<base::SingleThreadTaskRunner> delegate_task_runner_; |
| + scoped_refptr<base::SingleThreadTaskRunner> client_task_runner_; |
| + SendIqCallback send_iq_callback_; |
| base::ObserverList<Listener> listeners_; |
| DISALLOW_COPY_AND_ASSIGN(DelegatingSignalStrategy); |