blob: c279eaba44e00257c07f4d0ae74e4fefa856ab99 [file] [log] [blame]
tommi@webrtc.orgfe196992015-02-07 22:35:54 +00001/*
2 * Copyright (c) 2012 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_SOURCE_RW_LOCK_WIN_H_
12#define WEBRTC_SYSTEM_WRAPPERS_SOURCE_RW_LOCK_WIN_H_
13
Henrik Kjellander98f53512015-10-28 18:17:40 +010014#include "webrtc/system_wrappers/include/rw_lock_wrapper.h"
tommi@webrtc.orgfe196992015-02-07 22:35:54 +000015
16#include <Windows.h>
17
18namespace webrtc {
19
20class RWLockWin : public RWLockWrapper {
21 public:
22 static RWLockWin* Create();
23 ~RWLockWin() {}
24
25 virtual void AcquireLockExclusive();
26 virtual void ReleaseLockExclusive();
27
28 virtual void AcquireLockShared();
29 virtual void ReleaseLockShared();
30
31 private:
32 RWLockWin();
33 static bool LoadModule();
34
35 SRWLOCK lock_;
36};
37
38} // namespace webrtc
39
40#endif // WEBRTC_SYSTEM_WRAPPERS_SOURCE_RW_LOCK_WIN_H_