Simplify fs::file::get_handle

Via fs::file_base::get_native_handle method
This commit is contained in:
Nekotekina 2019-04-07 23:46:00 +03:00
parent 9736773c04
commit a54d9c527f
2 changed files with 16 additions and 12 deletions

View file

@ -192,6 +192,15 @@ namespace fs
// Do notning
}
native_handle file_base::get_native_handle()
{
#ifdef _WIN32
return INVALID_HANDLE_VALUE;
#else
return -1;
#endif
}
dir_base::~dir_base()
{
}
@ -884,7 +893,7 @@ fs::file::file(const std::string& path, bs_t<open_mode> mode)
return;
}
class windows_file final : public file_base, public get_native_handle
class windows_file final : public file_base
{
const HANDLE m_handle;
@ -987,7 +996,7 @@ fs::file::file(const std::string& path, bs_t<open_mode> mode)
return size.QuadPart;
}
native_handle get() override
native_handle get_native_handle() override
{
return m_handle;
}
@ -1034,7 +1043,7 @@ fs::file::file(const std::string& path, bs_t<open_mode> mode)
::ftruncate(fd, 0);
}
class unix_file final : public file_base, public get_native_handle
class unix_file final : public file_base
{
const int m_fd;
@ -1127,7 +1136,7 @@ fs::file::file(const std::string& path, bs_t<open_mode> mode)
return file_info.st_size;
}
native_handle get() override
native_handle get_native_handle() override
{
return m_fd;
}
@ -1208,9 +1217,9 @@ fs::file::file(const void* ptr, std::size_t size)
fs::native_handle fs::file::get_handle() const
{
if (auto getter = dynamic_cast<get_native_handle*>(m_file.get()))
if (m_file)
{
return getter->get();
return m_file->get_native_handle();
}
#ifdef _WIN32