BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bslmt_recursivemuteximpl_win32.h
Go to the documentation of this file.
1/// @file bslmt_recursivemuteximpl_win32.h
2///
3/// The content of this file has been pre-processed for Doxygen.
4///
5
6
7// bslmt_recursivemuteximpl_win32.h -*-C++-*-
8#ifndef INCLUDED_BSLMT_RECURSIVEMUTEXIMPL_WIN32
9#define INCLUDED_BSLMT_RECURSIVEMUTEXIMPL_WIN32
10
11#include <bsls_ident.h>
12BSLS_IDENT("$Id: $")
13
14/// @defgroup bslmt_recursivemuteximpl_win32 bslmt_recursivemuteximpl_win32
15/// @brief Provide a win32 implementation of `bslmt::RecursiveMutex`.
16/// @addtogroup bsl
17/// @{
18/// @addtogroup bslmt
19/// @{
20/// @addtogroup bslmt_recursivemuteximpl_win32
21/// @{
22///
23/// <h1> Outline </h1>
24/// * <a href="#bslmt_recursivemuteximpl_win32-purpose"> Purpose</a>
25/// * <a href="#bslmt_recursivemuteximpl_win32-classes"> Classes </a>
26/// * <a href="#bslmt_recursivemuteximpl_win32-description"> Description </a>
27/// * <a href="#bslmt_recursivemuteximpl_win32-usage"> Usage </a>
28///
29/// # Purpose {#bslmt_recursivemuteximpl_win32-purpose}
30/// Provide a win32 implementation of `bslmt::RecursiveMutex`.
31///
32/// # Classes {#bslmt_recursivemuteximpl_win32-classes}
33///
34/// - bslmt::RecursiveMutexImpl<Win32Threads>: win32 specialization
35///
36/// @see bslmt_recursivemutex
37///
38/// # Description {#bslmt_recursivemuteximpl_win32-description}
39/// This component provides an implementation of
40/// `bslmt::RecursiveMutex` for Windows (win32),
41/// `bslmt::RecursiveMutexImpl<Win32Threads>`, via the template specialization:
42/// @code
43/// bslmt::RecursiveMutexImpl<Platform::Win32Threads>
44/// @endcode
45/// This template class should not be used (directly) by client code. Clients
46/// should instead use `bslmt::RecursiveMutex`.
47///
48/// ## Usage {#bslmt_recursivemuteximpl_win32-usage}
49///
50///
51/// This component is an implementation detail of `bslmt` and is *not* intended
52/// for direct client use. It is subject to change without notice. As such, a
53/// usage example is not provided.
54/// @}
55/** @} */
56/** @} */
57
58/** @addtogroup bsl
59 * @{
60 */
61/** @addtogroup bslmt
62 * @{
63 */
64/** @addtogroup bslmt_recursivemuteximpl_win32
65 * @{
66 */
67
68#include <bslscm_version.h>
69
70#include <bslmt_platform.h>
71
72#ifdef BSLMT_PLATFORM_WIN32_THREADS
73
74// Platform specific implementation starts here.
75
77
78
79namespace bslmt {
80
81template <class THREAD_POLICY>
82class RecursiveMutexImpl;
83
84 // ================================================
85 // class RecursiveMutexImpl<Platform::Win32Threads>
86 // ================================================
87
88/// This class provides a full specialization of `RecursiveMutexImpl` for
89/// Windows. Since the Windows specialization of `MutexImpl` is recursive,
90/// this type is effectively an alias for that one.
91template <>
92class RecursiveMutexImpl<Platform::Win32Threads>
93: public MutexImpl<Platform::Win32Threads> {
94};
95
96} // close package namespace
97
98
99#endif // BSLMT_PLATFORM_WIN32_THREADS
100
101#endif
102
103// ----------------------------------------------------------------------------
104// Copyright 2015 Bloomberg Finance L.P.
105//
106// Licensed under the Apache License, Version 2.0 (the "License");
107// you may not use this file except in compliance with the License.
108// You may obtain a copy of the License at
109//
110// http://www.apache.org/licenses/LICENSE-2.0
111//
112// Unless required by applicable law or agreed to in writing, software
113// distributed under the License is distributed on an "AS IS" BASIS,
114// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
115// See the License for the specific language governing permissions and
116// limitations under the License.
117// ----------------------------- END-OF-FILE ----------------------------------
118
119/** @} */
120/** @} */
121/** @} */
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
Definition bslmt_barrier.h:344