#pragma once

#include "ehs/EHS.h"
#include "BaseMutex.h"

namespace ehs
{
	class EHS_LIB_IO Mutex : public BaseMutex
	{
	private:
		HANDLE hdl;

	public:
		~Mutex() override;

		Mutex();

		Mutex(const Mutex& mutex);

		Mutex& operator=(const Mutex& mutex);

		void Initialize() override;

		void UnInitialize() override;

		void Lock() override;

		void Unlock() override;
	};
}