source: lsf/trunk/fuentes/include/lsf-1.0/filesystem.hpp @ 88

Last change on this file since 88 was 88, checked in by jrpelegrina, 5 years ago

First relase to xenial

File size: 2.6 KB
Line 
1
2#ifndef _LSF_FILESYSTEM_
3#define _LSF_FILESYSTEM_
4
5#include <sys/inotify.h>
6
7#include <string>
8#include <vector>
9
10namespace net
11{
12        namespace lliurex
13        {
14                namespace filesystem
15                {
16                        /*!
17                                Check if path exists
18                        */
19                        bool Exists(std::string path);
20                       
21                        /*!
22                                Check if given path is a directory
23                        */
24                        bool IsDir(std::string path);
25                       
26                        /*!
27                                Returns a vector with the list of files and directories of the given path
28                        */
29                        std::vector<std::string> ListDir(std::string path);
30                       
31                        /*!
32                                Returns a vector with the list of files and directories  matching the glob expression
33                        */
34                        std::vector<std::string> List(std::string expression);
35                       
36                        /*!
37                                Returns current user home path
38                        */
39                        std::string Home();
40                       
41                        /*!
42                                Creates a directory
43                                \param create_path If true, all directories in the path are created (the way mkdir -p does it)
44                        */
45                        void CreateDir(std::string path,bool create_path=false);
46                       
47                        /*!
48                                Gets current working directory
49                        */
50                        std::string GetWorkingDir();
51                       
52                        /*!
53                                Basename posix wrap
54                        */
55                        std::string BaseName(std::string path);
56                       
57                        /*!
58                                Dirname posix wrap
59                        */
60                        std::string DirName(std::string path);
61                       
62                        class NotifyHandler
63                        {
64                                protected:
65                                        std::string path;
66                                        int inotify_fd;
67                                        int wd;
68                               
69                                public:
70                                       
71                                        /*!
72                                                Constructor
73                                                \param path The path to watch
74                                        */
75                                        NotifyHandler(std::string path);
76                                        ~NotifyHandler();
77                               
78                                        /*!
79                                                Periodic calls to this method are needed if you want to update notifications
80                                        */
81                                        void Push();
82                                       
83                                        /*!
84                                                An error happened
85                                        */
86                                        virtual void OnError();
87                               
88                                        /*!
89                                                File accessed
90                                        */
91                                        virtual void OnAccess(std::string path);
92                                       
93                                        /*!
94                                                File modified
95                                        */
96                                        virtual void OnModify(std::string path);
97                                       
98                                        /*!
99                                                metadata changed
100                                        */
101                                        virtual void OnAttrib(std::string path);
102                                       
103                                        /*!
104                                                Writable file closed
105                                        */
106                                        virtual void OnCloseWrite(std::string path);
107                                       
108                                        /*!
109                                                Unwritable file closed
110                                        */
111                                        virtual void OnCloseNoWrite(std::string path);
112                                       
113                                        /*!
114                                                File opened
115                                        */
116                                        virtual void OnOpen(std::string path);
117                                       
118                                        /*!
119                                                File moved from
120                                        */
121                                        virtual void OnMovedFrom(std::string path);
122                                       
123                                        /*!
124                                                File moved to
125                                        */
126                                        virtual void OnMovedTo(std::string path);
127                                       
128                                        /*!
129                                                File created
130                                        */
131                                        virtual void OnCreate(std::string path);
132                                       
133                                        /*!
134                                                File deleted
135                                        */
136                                        virtual void OnDelete(std::string path);
137                                       
138                                        /*!
139                                                notify path deleted
140                                        */
141                                        virtual void OnDeleteSelf(std::string path);
142                               
143                                       
144                        };
145                }
146        }
147}
148#endif
Note: See TracBrowser for help on using the repository browser.