#ifndef MUTEX_H_
#define MUTEX_H_

#pragma message("'foundation/Mutex.h', 'foundation/Locks.h', 'foundation/RecursiveMutex.h', and 'foundation/SharedMutex.h' are deprecated. Use 'foundation/mutex.hpp' instead.")

#include "foundation/mutex.hpp"

namespace Tn {
namespace Foundation {
    
using ::tn::mutex;
using ::tn::recursive_mutex;
using ::tn::lock_guard;
using ::tn::unique_lock;
using ::tn::adopt_lock_t;
using ::tn::defer_lock_t;
using ::tn::try_to_lock_t;
using ::tn::adopt_lock;
using ::tn::adopt_lock_t;
using ::tn::defer_lock;
using ::tn::try_to_lock;

// timed_mutex not available on Android
#ifndef TN_PLATFORM_ANDROID
using ::tn::timed_mutex;
#endif

} // namespace Foundation
} // namespace Tn

#if _TN_FOUNDATION_USE_STD
#  include <foundation/private/old_shared_mutex.hpp>
#else
#  include <boost/thread/locks.hpp>
#  include <boost/thread/shared_mutex.hpp>

namespace Tn {
namespace Foundation {

using ::boost::shared_lock;
using ::boost::upgrade_lock;
using ::boost::upgrade_to_unique_lock;
using ::boost::shared_mutex;

namespace Detail {

using namespace ::boost::detail;

} // namespace Detail

} // namespace Foundation
} // namespace Tn

#endif

#endif //!__MUTEX_H__
