Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(273)

Side by Side Diff: webrtc/system_wrappers/interface/event_wrapper.h

Issue 1413333002: system_wrappers: rename interface -> include (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebased again! Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * 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
11 #ifndef WEBRTC_SYSTEM_WRAPPERS_INTERFACE_EVENT_WRAPPER_H_
12 #define WEBRTC_SYSTEM_WRAPPERS_INTERFACE_EVENT_WRAPPER_H_
13
14 namespace webrtc {
15 enum EventTypeWrapper {
16 kEventSignaled = 1,
17 kEventError = 2,
18 kEventTimeout = 3
19 };
20
21 #define WEBRTC_EVENT_INFINITE 0xffffffff
22
23 class EventTimerWrapper;
24
25 class EventWrapper {
26 public:
27 // Factory method. Constructor disabled.
28 static EventWrapper* Create();
29
30 virtual ~EventWrapper() {}
31
32 // Releases threads who are calling Wait() and has started waiting. Please
33 // note that a thread calling Wait() will not start waiting immediately.
34 // assumptions to the contrary is a very common source of issues in
35 // multithreaded programming.
36 // Set is sticky in the sense that it will release at least one thread
37 // either immediately or some time in the future.
38 virtual bool Set() = 0;
39
40 // Puts the calling thread into a wait state. The thread may be released
41 // by a Set() call depending on if other threads are waiting and if so on
42 // timing. The thread that was released will reset the event before leaving
43 // preventing more threads from being released. If multiple threads
44 // are waiting for the same Set(), only one (random) thread is guaranteed to
45 // be released. It is possible that multiple (random) threads are released
46 // Depending on timing.
47 //
48 // |max_time| is the maximum time to wait in milliseconds or
49 // WEBRTC_EVENT_INFINITE to wait infinitely.
50 virtual EventTypeWrapper Wait(unsigned long max_time) = 0;
51 };
52
53 class EventTimerWrapper : public EventWrapper {
54 public:
55 static EventTimerWrapper* Create();
56
57 // Starts a timer that will call a non-sticky version of Set() either once
58 // or periodically. If the timer is periodic it ensures that there is no
59 // drift over time relative to the system clock.
60 //
61 // |time| is in milliseconds.
62 virtual bool StartTimer(bool periodic, unsigned long time) = 0;
63
64 virtual bool StopTimer() = 0;
65
66 };
67
68 } // namespace webrtc
69
70 #endif // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_EVENT_WRAPPER_H_
OLDNEW
« no previous file with comments | « webrtc/system_wrappers/interface/event_tracer.h ('k') | webrtc/system_wrappers/interface/field_trial.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698