362c1f4c3b5ce9e3fce11167a51fbe4cdb2174de
Stefan Schuermans implement file and time for...

Stefan Schuermans authored 7 years ago

1) /* Blinker
Stefan Schuermans update copyright header

Stefan Schuermans authored 5 years ago

2)    Copyright 2011-2019 Stefan Schuermans <stefan@blinkenarea.org>
Stefan Schuermans implement file and time for...

Stefan Schuermans authored 7 years ago

3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4)    a blinkenarea.org project */
5) 
6) #include <string>
Stefan Schuermans File + Directory for Windows

Stefan Schuermans authored 7 years ago

7) #include <sys/stat.h>
8) #include <sys/types.h>
9) #include <unistd.h>
Stefan Schuermans implement file and time for...

Stefan Schuermans authored 7 years ago

10) 
11) #include "File.h"
12) #include "Time.h"
13) 
14) namespace Blinker {
15) 
16) /**
17)  * @brief constructor from path
18)  * @param[in] path path to file
19)  */
20) File::File(const std::string &path):
21)   m_path(path)
22) {
23)   // get modification time
24)   checkModified();
25) }
26) 
27) /**
28)  * @brief get path to file
29)  * @return path to file
30)  */
31) const std::string & File::getPath()
32) {
33)   return m_path;
34) }
35) 
36) /**
37)  * @brief check if file has been modified
38)  * @return if file has been modified since last check
39)  */
40) bool File::checkModified()
41) {
Stefan Schuermans File + Directory for Windows

Stefan Schuermans authored 7 years ago

42)   // get modification/change times
43)   struct stat s;
44)   if (stat(m_path.c_str(), &s))
45)     return false; // cannot stat -> silently ignore
46)   Time modifyTime(s.st_mtime);
47)   // s.st_ctime not valid for FAT filesystems, so do not use it