blob: 748c92f637973132de2edb67a6a623b7f6baf200 [file] [log] [blame]
hellner@google.com23a80652011-08-25 21:40:11 +00001/*
niklase@google.com470e71d2011-07-07 08:21:25 +00002 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Niels Möllerd3da6b02020-03-05 15:31:10 +010011#include "modules/video_coding/event_wrapper.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000012
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020013#include "rtc_base/event.h"
Peter Boström64c03662015-04-08 11:24:19 +020014
niklase@google.com470e71d2011-07-07 08:21:25 +000015namespace webrtc {
Peter Boström64c03662015-04-08 11:24:19 +020016
17class EventWrapperImpl : public EventWrapper {
18 public:
Peter Boström64c03662015-04-08 11:24:19 +020019 ~EventWrapperImpl() override {}
20
21 bool Set() override {
22 event_.Set();
23 return true;
24 }
25
Markus Handell2cfc1af2022-08-19 08:16:48 +000026 // TODO(bugs.webrtc.org/14366): Migrate to TimeDelta.
Niels Möllerd3da6b02020-03-05 15:31:10 +010027 EventTypeWrapper Wait(int max_time_ms) override {
Markus Handell2cfc1af2022-08-19 08:16:48 +000028 return event_.Wait(TimeDelta::Millis(max_time_ms)) ? kEventSignaled
29 : kEventTimeout;
Peter Boström64c03662015-04-08 11:24:19 +020030 }
31
32 private:
33 rtc::Event event_;
34};
35
36// static
phoglund@webrtc.org5bbe0692012-12-10 10:44:37 +000037EventWrapper* EventWrapper::Create() {
Peter Boström64c03662015-04-08 11:24:19 +020038 return new EventWrapperImpl();
niklase@google.com470e71d2011-07-07 08:21:25 +000039}
Peter Boström64c03662015-04-08 11:24:19 +020040
pbos@webrtc.orgd900e8b2013-07-03 15:12:26 +000041} // namespace webrtc