#pragma once

#include "BaseOpen.h"

namespace ehs
{
	class EHS_LIB_IO Open : public BaseOpen
	{
	private:
		void* hdl;

	public:
		~Open();

		Open();

		Open(Str_8 filePath);

		Open(Open&& o) noexcept;

		Open(const Open& o);

		Open& operator=(Open&& o) noexcept;

		Open& operator=(const Open& o);

		void Initialize() override;

		void Release() override;

		void* Retrieve(Str_8 symbol) override;

		bool IsInitialize() const override;
	};
}