exposed mode value.
authorReinhard Pfau <Reinhard.Pfau@gmx.de>
Sun, 19 Apr 2009 17:29:36 +0000 (19:29 +0200)
committerReinhard Pfau <Reinhard.Pfau@gmx.de>
Sun, 19 Apr 2009 17:29:36 +0000 (19:29 +0200)
optimized storage of type flags.

utils/asyncio_system_tools.cpp
utils/asyncio_system_tools.hpp

index 277304c..649cd84 100644 (file)
@@ -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);
index 1cf01a2..5a4fb81 100644 (file)
@@ -30,6 +30,7 @@ on this file might be covered by the GNU General Public License.
 #define _ASYNCIO_SYSTEM_TOOLS_HPP_
 
 #include <string>
+#include <sys/types.h>
 
 
 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