2 * @file reverse_lock.hpp
4 * @brief C++11 style smart pointer for use by settings plug-ins.
6 * @author Ossama Othman @<ossama.othman@@intel.com@>
9 * Copyright 2013 Intel Corporation All Rights Reserved.
11 * This library is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU Lesser General Public
13 * License as published by the Free Software Foundation;
14 * version 2.1 of the License.
16 * This library is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * Lesser General Public License for more details.
21 * You should have received a copy of the GNU Lesser General Public
22 * License along with this library; if not, write to the Free Software
23 * Foundation, Inc., 51 Franklin Street, Fifth Floor,
24 * Boston, MA 02110-1301 USA
27 #ifndef IVI_SETTINGS_REVERSE_LOCK_HPP
28 #define IVI_SETTINGS_REVERSE_LOCK_HPP
36 * @typename reverse_lock
38 * @brief Mutex implementation that reverse the lock/unlock
46 constexpr reverse_lock(T & m) : mutex_(m) {}
48 /// Unlock the underlying mutex.
49 void lock() { return mutex_.unlock(); }
51 /// Lock the underlying mutex.
52 void unlock() { return mutex_.lock(); }
57 * @name Prevent copying
60 reverse_lock(reverse_lock const &) = delete;
61 reverse_lock & operator=(reverse_lock const &) = delete;
66 /// The underlying mutex.
75 #endif /* IVI_SETTINGS_REVERSE_LOCK_HPP */
81 // indent-tabs-mode: nil