Chromium Code Reviews| Index: webrtc/base/messagehandler.h |
| diff --git a/webrtc/base/messagehandler.h b/webrtc/base/messagehandler.h |
| index 6a3c2ef7402bdf9203ef350dcff740f806d1210d..33838d1a5ccc2507d5dc6010aa6b1bd9cbf9236d 100644 |
| --- a/webrtc/base/messagehandler.h |
| +++ b/webrtc/base/messagehandler.h |
| @@ -44,26 +44,13 @@ class FunctorMessageHandler : public MessageHandler { |
| result_ = functor_(); |
| } |
| const ReturnT& result() const { return result_; } |
| + ReturnT moved_result() { return std::move(result_); } |
|
pthatcher1
2017/02/08 01:33:49
Would MoveResult be a better name, since it has an
Taylor Brandstetter
2017/02/10 00:19:45
ConsumeResult could work, I've seen that naming el
|
| private: |
| FunctorT functor_; |
| ReturnT result_; |
| }; |
| -// Specialization for std::unique_ptr<ReturnT>. |
| -template <class ReturnT, class FunctorT> |
| -class FunctorMessageHandler<class std::unique_ptr<ReturnT>, FunctorT> |
| - : public MessageHandler { |
| - public: |
| - explicit FunctorMessageHandler(const FunctorT& functor) : functor_(functor) {} |
| - virtual void OnMessage(Message* msg) { result_ = std::move(functor_()); } |
| - std::unique_ptr<ReturnT> result() { return std::move(result_); } |
| - |
| - private: |
| - FunctorT functor_; |
| - std::unique_ptr<ReturnT> result_; |
| -}; |
| - |
| // Specialization for ReturnT of void. |
| template <class FunctorT> |
| class FunctorMessageHandler<void, FunctorT> : public MessageHandler { |
| @@ -74,6 +61,7 @@ class FunctorMessageHandler<void, FunctorT> : public MessageHandler { |
| functor_(); |
| } |
| void result() const {} |
| + void moved_result() {} |
| private: |
| FunctorT functor_; |