diff --git a/webrtc/base/messagequeue.h b/webrtc/base/messagequeue.h index 14cf29bb28..628ce4433b 100644 --- a/webrtc/base/messagequeue.h +++ b/webrtc/base/messagequeue.h @@ -94,6 +94,19 @@ class TypedMessageData : public MessageData { T data_; }; +// Like TypedMessageData, but for pointers that require a delete. +template +class ScopedMessageData : public MessageData { + public: + explicit ScopedMessageData(T* data) : data_(data) { } + const std::unique_ptr& data() const { return data_; } + std::unique_ptr& data() { return data_; } + + private: + std::unique_ptr data_; +}; + +// Like ScopedMessageData, but for reference counted pointers. template class ScopedRefMessageData : public MessageData { public: