added class FileStat to utils (wrapper for file stat)
[libasyncio] / utils / asyncio_system_tools.hpp
CommitLineData
8c15b8c7
TJ
1/*
2The software in this package is distributed under the GNU General
3Public License version 2 (with a special exception described below).
4
5A copy of GNU General Public License (GPL) is included in this distribution,
6in the file COPYING.GPL.
7
8As a special exception, if other files instantiate templates or use macros
9or inline functions from this file, or you compile this file and link it
10with other works to produce a work based on this file, this file
11does not by itself cause the resulting work to be covered
12by the GNU General Public License.
13
14However the source code for this file must still be made available
15in accordance with section (3) of the GNU General Public License.
16
17This exception does not invalidate any other reasons why a work based
18on this file might be covered by the GNU General Public License.
19*/
ef51ea7e
RP
20/**
21 * @file
22 * @brief some functions to wrap some system functions
23 *
24 * @author Reinhard Pfau \<Reinhard.Pfau@gmx.de\>
25 * @copyright &copy; Copyright 2009 by Intra2net AG
ef51ea7e
RP
26 */
27
28
29#ifndef _ASYNCIO_SYSTEM_TOOLS_HPP_
30#define _ASYNCIO_SYSTEM_TOOLS_HPP_
31
32#include <string>
33
34
35namespace AsyncIo
36{
37namespace Utils
38{
39
85108f09
RP
40bool unlink( const std::string& path );
41
42
43class FileStat
44{
45 public:
46 FileStat( const std::string& path);
47 ~FileStat();
48
49 void refresh();
50
51 bool is_valid() const { return m_is_valid; }
52
53 operator bool() const { return m_is_valid; }
54
55 bool is_regular_file() const { return m_is_regular_file; }
56 bool is_directory() const { return m_is_directory; }
57
58 private:
59 std::string m_path;
60
61 bool m_is_valid;
62
63 bool m_is_regular_file;
64 bool m_is_directory;
65
66}; // end of FileStat
67
ef51ea7e
RP
68
69} // end of namespace Utils
70}// end of namespace AsyncIo
71
72
73#endif