/extlibs/SFML/src/SFML/System/Unix/MutexImpl.hpp
C++ Header | 83 lines | 21 code | 14 blank | 48 comment | 0 complexity | 64b0e8abf9c4b10bc147185338113885 MD5 | raw file
1//////////////////////////////////////////////////////////// 2// 3// SFML - Simple and Fast Multimedia Library 4// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com) 5// 6// This software is provided 'as-is', without any express or implied warranty. 7// In no event will the authors be held liable for any damages arising from the use of this software. 8// 9// Permission is granted to anyone to use this software for any purpose, 10// including commercial applications, and to alter it and redistribute it freely, 11// subject to the following restrictions: 12// 13// 1. The origin of this software must not be misrepresented; 14// you must not claim that you wrote the original software. 15// If you use this software in a product, an acknowledgment 16// in the product documentation would be appreciated but is not required. 17// 18// 2. Altered source versions must be plainly marked as such, 19// and must not be misrepresented as being the original software. 20// 21// 3. This notice may not be removed or altered from any source distribution. 22// 23//////////////////////////////////////////////////////////// 24 25#ifndef SFML_MUTEXIMPL_HPP 26#define SFML_MUTEXIMPL_HPP 27 28//////////////////////////////////////////////////////////// 29// Headers 30//////////////////////////////////////////////////////////// 31#include <SFML/System/NonCopyable.hpp> 32#include <pthread.h> 33 34 35namespace sf 36{ 37namespace priv 38{ 39//////////////////////////////////////////////////////////// 40/// \brief Unix implementation of mutexes 41//////////////////////////////////////////////////////////// 42class MutexImpl : NonCopyable 43{ 44public : 45 46 //////////////////////////////////////////////////////////// 47 /// \brief Default constructor 48 /// 49 //////////////////////////////////////////////////////////// 50 MutexImpl(); 51 52 //////////////////////////////////////////////////////////// 53 /// \brief Destructor 54 /// 55 //////////////////////////////////////////////////////////// 56 ~MutexImpl(); 57 58 //////////////////////////////////////////////////////////// 59 /// \brief Lock the mutex 60 /// 61 //////////////////////////////////////////////////////////// 62 void Lock(); 63 64 //////////////////////////////////////////////////////////// 65 /// \brief Unlock the mutex 66 /// 67 //////////////////////////////////////////////////////////// 68 void Unlock(); 69 70private : 71 72 //////////////////////////////////////////////////////////// 73 // Member data 74 //////////////////////////////////////////////////////////// 75 pthread_mutex_t myMutex; ///< pthread handle of the mutex 76}; 77 78} // namespace priv 79 80} // namespace sf 81 82 83#endif // SFML_MUTEXIMPL_HPP