PageRenderTime 73ms CodeModel.GetById 50ms app.highlight 2ms RepoModel.GetById 14ms app.codeStats 1ms

/extlibs/SFML/src/SFML/System/Unix/MutexImpl.hpp

https://bitbucket.org/hugoruscitti/pilascpp
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