/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. #ifndef SFML_MUTEXIMPL_HPP
  25. #define SFML_MUTEXIMPL_HPP
  26. ////////////////////////////////////////////////////////////
  27. // Headers
  28. ////////////////////////////////////////////////////////////
  29. #include <SFML/System/NonCopyable.hpp>
  30. #include <pthread.h>
  31. namespace sf
  32. {
  33. namespace priv
  34. {
  35. ////////////////////////////////////////////////////////////
  36. /// \brief Unix implementation of mutexes
  37. ////////////////////////////////////////////////////////////
  38. class MutexImpl : NonCopyable
  39. {
  40. public :
  41. ////////////////////////////////////////////////////////////
  42. /// \brief Default constructor
  43. ///
  44. ////////////////////////////////////////////////////////////
  45. MutexImpl();
  46. ////////////////////////////////////////////////////////////
  47. /// \brief Destructor
  48. ///
  49. ////////////////////////////////////////////////////////////
  50. ~MutexImpl();
  51. ////////////////////////////////////////////////////////////
  52. /// \brief Lock the mutex
  53. ///
  54. ////////////////////////////////////////////////////////////
  55. void Lock();
  56. ////////////////////////////////////////////////////////////
  57. /// \brief Unlock the mutex
  58. ///
  59. ////////////////////////////////////////////////////////////
  60. void Unlock();
  61. private :
  62. ////////////////////////////////////////////////////////////
  63. // Member data
  64. ////////////////////////////////////////////////////////////
  65. pthread_mutex_t myMutex; ///< pthread handle of the mutex
  66. };
  67. } // namespace priv
  68. } // namespace sf
  69. #endif // SFML_MUTEXIMPL_HPP