From b96b430ad15a5fa858114f6b6e6b0ba1eb1b0921 Mon Sep 17 00:00:00 2001 From: Reinhard Pfau Date: Sun, 19 Apr 2009 19:29:36 +0200 Subject: [PATCH] exposed mode value. optimized storage of type flags. --- utils/asyncio_system_tools.cpp | 2 ++ utils/asyncio_system_tools.hpp | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/utils/asyncio_system_tools.cpp b/utils/asyncio_system_tools.cpp index 277304c..649cd84 100644 --- a/utils/asyncio_system_tools.cpp +++ b/utils/asyncio_system_tools.cpp @@ -68,6 +68,8 @@ void FileStat::refresh() return; } + m_mode= file_stat->st_mode; + m_is_regular_file= S_ISREG(file_stat->st_mode); m_is_directory= S_ISDIR(file_stat->st_mode); m_is_character_device= S_ISCHR(file_stat->st_mode); diff --git a/utils/asyncio_system_tools.hpp b/utils/asyncio_system_tools.hpp index 1cf01a2..5a4fb81 100644 --- a/utils/asyncio_system_tools.hpp +++ b/utils/asyncio_system_tools.hpp @@ -30,6 +30,7 @@ on this file might be covered by the GNU General Public License. #define _ASYNCIO_SYSTEM_TOOLS_HPP_ #include +#include namespace AsyncIo @@ -69,6 +70,8 @@ class FileStat operator bool() const { return m_is_valid; } + mode_t mode() const { return m_mode; } + bool is_regular_file() const { return m_is_regular_file; } bool is_directory() const { return m_is_directory; } bool is_character_device() const { return m_is_character_device; } @@ -84,13 +87,15 @@ class FileStat bool m_is_valid; - bool m_is_regular_file; - bool m_is_directory; - bool m_is_character_device; - bool m_is_block_device; - bool m_is_fifo; - bool m_is_symbolic_link; - bool m_is_socket; + mode_t m_mode; + + bool m_is_regular_file :1; + bool m_is_directory :1; + bool m_is_character_device :1; + bool m_is_block_device :1; + bool m_is_fifo :1; + bool m_is_symbolic_link :1; + bool m_is_socket :1; }; // end of FileStat -- 1.7.1