Chris@16
|
1 //////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
2 //
|
Chris@16
|
3 // (C) Copyright Ion Gaztanaga 2011-2012. Distributed under the Boost
|
Chris@16
|
4 // Software License, Version 1.0. (See accompanying file
|
Chris@16
|
5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
6 //
|
Chris@16
|
7 // See http://www.boost.org/libs/interprocess for documentation.
|
Chris@16
|
8 //
|
Chris@16
|
9 //////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
10 #ifndef BOOST_INTERPROCESS_WINDOWS_RECURSIVE_NAMED_MUTEX_HPP
|
Chris@16
|
11 #define BOOST_INTERPROCESS_WINDOWS_RECURSIVE_NAMED_MUTEX_HPP
|
Chris@16
|
12
|
Chris@101
|
13 #ifndef BOOST_CONFIG_HPP
|
Chris@101
|
14 # include <boost/config.hpp>
|
Chris@101
|
15 #endif
|
Chris@101
|
16 #
|
Chris@101
|
17 #if defined(BOOST_HAS_PRAGMA_ONCE)
|
Chris@16
|
18 # pragma once
|
Chris@16
|
19 #endif
|
Chris@16
|
20
|
Chris@16
|
21 #include <boost/interprocess/detail/config_begin.hpp>
|
Chris@16
|
22 #include <boost/interprocess/detail/workaround.hpp>
|
Chris@16
|
23 #include <boost/interprocess/sync/windows/named_mutex.hpp>
|
Chris@16
|
24
|
Chris@16
|
25 namespace boost {
|
Chris@16
|
26 namespace interprocess {
|
Chris@16
|
27 namespace ipcdetail {
|
Chris@16
|
28
|
Chris@16
|
29
|
Chris@16
|
30 class windows_named_recursive_mutex
|
Chris@16
|
31 //Windows mutexes based on CreateMutex are already recursive...
|
Chris@16
|
32 : public windows_named_mutex
|
Chris@16
|
33 {
|
Chris@101
|
34 #if !defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED)
|
Chris@16
|
35
|
Chris@16
|
36 //Non-copyable
|
Chris@16
|
37 windows_named_recursive_mutex();
|
Chris@16
|
38 windows_named_recursive_mutex(const windows_named_mutex &);
|
Chris@16
|
39 windows_named_recursive_mutex &operator=(const windows_named_mutex &);
|
Chris@101
|
40 #endif //#ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
|
Chris@16
|
41
|
Chris@16
|
42 public:
|
Chris@16
|
43 windows_named_recursive_mutex(create_only_t, const char *name, const permissions &perm = permissions())
|
Chris@16
|
44 : windows_named_mutex(create_only_t(), name, perm)
|
Chris@16
|
45 {}
|
Chris@16
|
46
|
Chris@16
|
47 windows_named_recursive_mutex(open_or_create_t, const char *name, const permissions &perm = permissions())
|
Chris@16
|
48 : windows_named_mutex(open_or_create_t(), name, perm)
|
Chris@16
|
49 {}
|
Chris@16
|
50
|
Chris@16
|
51 windows_named_recursive_mutex(open_only_t, const char *name)
|
Chris@16
|
52 : windows_named_mutex(open_only_t(), name)
|
Chris@16
|
53 {}
|
Chris@16
|
54 };
|
Chris@16
|
55
|
Chris@16
|
56 } //namespace ipcdetail {
|
Chris@16
|
57 } //namespace interprocess {
|
Chris@16
|
58 } //namespace boost {
|
Chris@16
|
59
|
Chris@16
|
60 #include <boost/interprocess/detail/config_end.hpp>
|
Chris@16
|
61
|
Chris@16
|
62 #endif //BOOST_INTERPROCESS_WINDOWS_RECURSIVE_NAMED_MUTEX_HPP
|