Index: webrtc/base/messagequeue.h |
diff --git a/webrtc/base/messagequeue.h b/webrtc/base/messagequeue.h |
index 429a56a8c1e3cd69f6dcafa1b19fbc90dfa51f03..df50f54868a214913761493f15a69c504fc02ee8 100644 |
--- a/webrtc/base/messagequeue.h |
+++ b/webrtc/base/messagequeue.h |
@@ -17,6 +17,7 @@ |
#include <list> |
#include <memory> |
#include <queue> |
+#include <utility> |
#include <vector> |
#include "webrtc/base/basictypes.h" |
@@ -98,10 +99,21 @@ class TypedMessageData : public MessageData { |
template <class T> |
class ScopedMessageData : public MessageData { |
public: |
- explicit ScopedMessageData(T* data) : data_(data) { } |
+ explicit ScopedMessageData(std::unique_ptr<T> data) |
+ : data_(std::move(data)) {} |
+ // Deprecated. |
+ // TODO(deadbeef): Remove this once downstream applications stop using it. |
+ explicit ScopedMessageData(T* data) : data_(data) {} |
+ // Deprecated. |
+ // TODO(deadbeef): Returning a reference to a unique ptr? Why. Get rid of |
+ // this once downstream applications stop using it, then rename inner_data to |
+ // just data. |
const std::unique_ptr<T>& data() const { return data_; } |
std::unique_ptr<T>& data() { return data_; } |
+ const T& inner_data() const { return *data_; } |
+ T& inner_data() { return *data_; } |
+ |
private: |
std::unique_ptr<T> data_; |
}; |