Chromium Code Reviews| Index: webrtc/modules/desktop_capture/shared_memory.cc |
| diff --git a/webrtc/modules/desktop_capture/shared_memory.cc b/webrtc/modules/desktop_capture/shared_memory.cc |
| index 872116eec9f86d76bf9cdab2429d74a798f089b0..48547e8c8afb8811f588a668213eac50eb746136 100644 |
| --- a/webrtc/modules/desktop_capture/shared_memory.cc |
| +++ b/webrtc/modules/desktop_capture/shared_memory.cc |
| @@ -10,6 +10,10 @@ |
| #include "webrtc/modules/desktop_capture/shared_memory.h" |
| +#include <utility> |
| + |
| +#include "webrtc/base/checks.h" |
| + |
| namespace webrtc { |
| #if defined(WEBRTC_WIN) |
| @@ -25,4 +29,29 @@ SharedMemory::SharedMemory(void* data, size_t size, Handle handle, int id) |
| id_(id) { |
| } |
| +SharedMemoryFactoryWrapper::SharedMemoryFactoryWrapper( |
| + std::unique_ptr<SharedMemoryFactory> factory) { |
| + RTC_DCHECK(factory); |
| + owned_factory_ = std::move(factory); |
| + shared_factory_ = owned_factory_.get(); |
| +} |
| + |
| +SharedMemoryFactoryWrapper::SharedMemoryFactoryWrapper( |
| + SharedMemoryFactory* factory) { |
| + RTC_DCHECK(factory); |
| + shared_factory_ = factory; |
| +} |
| + |
| +SharedMemoryFactoryWrapper::~SharedMemoryFactoryWrapper() = default; |
| + |
| +std::unique_ptr<SharedMemoryFactory> SharedMemoryFactoryWrapper::Wrap() const { |
| + return std::unique_ptr<SharedMemoryFactory>(new SharedMemoryFactoryWrapper( |
|
Sergey Ulanov
2017/02/15 23:08:43
A better solution would be use a ref-counted holde
Hzj_jie
2017/02/16 01:57:07
I have added comments for both SharedMemoryFactory
|
| + owned_factory_.get())); |
| +} |
| + |
| +std::unique_ptr<SharedMemory> SharedMemoryFactoryWrapper::CreateSharedMemory( |
| + size_t size) { |
| + return shared_factory_->CreateSharedMemory(size); |
| +} |
| + |
| } // namespace webrtc |