1a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin/* 2a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin * 4a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin * Use of this source code is governed by a BSD-style license 5a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin * that can be found in the LICENSE file in the root of the source 6a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin * tree. An additional intellectual property rights grant can be found 7a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin * in the file PATENTS. All contributing project authors may 8a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin * be found in the AUTHORS file in the root of the source tree. 9a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin */ 10a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 11a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin#ifndef WEBRTC_SYSTEM_WRAPPERS_SOURCE_CRITICAL_SECTION_WINDOWS_H_ 12a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin#define WEBRTC_SYSTEM_WRAPPERS_SOURCE_CRITICAL_SECTION_WINDOWS_H_ 13a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 14a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin#include "typedefs.h" 15a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin#include "critical_section_wrapper.h" 16a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin#include <windows.h> 17a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 18a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkinnamespace webrtc { 19a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkinclass CriticalSectionWindows : public CriticalSectionWrapper 20a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin{ 21a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkinpublic: 22a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin CriticalSectionWindows(); 23a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 24a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin virtual ~CriticalSectionWindows(); 25a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 26a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin virtual void Enter(); 27a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin virtual void Leave(); 28a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 29a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkinprivate: 30a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin CRITICAL_SECTION crit; 31a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 32a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin friend class ConditionVariableWindows; 33a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin}; 34a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin} // namespace webrtc 35a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin 36a6451827d543eb00824bc95097e47d0aac51ae93Alexander Gutkin#endif // WEBRTC_SYSTEM_WRAPPERS_SOURCE_CRITICAL_SECTION_WINDOWS_H_ 37