#pragma once

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

namespace ehs
{
	class EHS_LIB_IO FileMonitor : public BaseFileMonitor
	{
	private:
		int hdl;
		int wd;

	public:
		~FileMonitor();

		FileMonitor();

		FileMonitor(Str_8 filePath);

		FileMonitor(FileMonitor&& fm) noexcept;

		FileMonitor(const FileMonitor& fm);

		FileMonitor& operator=(FileMonitor&& fm) noexcept;

		FileMonitor& operator=(const FileMonitor& fm);

		void Initialize() override;

		void Release() override;

		UInt_8 Poll() override;

		bool IsInitialized() const override;
	};
}