libzypp: zypp/base/WatchFile.h Source File

libzypp 17.25.10

WatchFile.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_BASE_WATCHFILE_H
13 #define ZYPP_BASE_WATCHFILE_H
14
15 #include <iosfwd>
16
17 #include <zypp/PathInfo.h>
18
20 namespace zypp
21 {
22
24 //
25 // CLASS NAME : WatchFile
26 //
49 class WatchFile
50 {
51 public:
52 enum Initial { NO_INIT, INIT };
53
54 public:
56 WatchFile( const Pathname & path_r = Pathname(),
57 Initial mode = INIT )
58 : _path( path_r )
59 {
60 PathInfo pi( mode == INIT ? path_r : Pathname() );
61 _size = pi.size();
62 _mtime = pi.mtime();
63 }
64
65 const Pathname & path() const
66 { return _path; }
67
68 off_t lastSize() const
69 { return _size;}
70
71 time_t lastMtime() const
72 { return _mtime; }
73
74 bool isDirty() const
75 {
76 PathInfo pi( _path );
77 return( _size != pi.size() || _mtime != pi.mtime() );
78 }
79
80 bool hasChanged()
81 {
82 PathInfo pi( _path );
83 if ( _size != pi.size() || _mtime != pi.mtime() )
84 {
85 _size = pi.size();
86 _mtime = pi.mtime();
87 return true;
88 }
89 return false;
90 }
91
92 private:
93 Pathname _path;
94 off_t _size;
95 time_t _mtime;
96 };
98
100 } // namespace zypp
102 #endif // ZYPP_BASE_WATCHFILE_H
PathInfo.h
zypp::WatchFile
Remember a files attributes to detect content changes.
Definition: WatchFile.h:50
zypp::WatchFile::WatchFile
WatchFile(const Pathname &path_r=Pathname(), Initial mode=INIT)
Definition: WatchFile.h:56
zypp::WatchFile::_mtime
time_t _mtime
Definition: WatchFile.h:95
zypp::WatchFile::path
const Pathname & path() const
Definition: WatchFile.h:65
zypp::WatchFile::hasChanged
bool hasChanged()
Definition: WatchFile.h:80
zypp::WatchFile::isDirty
bool isDirty() const
Definition: WatchFile.h:74
zypp::WatchFile::lastSize
off_t lastSize() const
Definition: WatchFile.h:68
zypp::WatchFile::_size
off_t _size
Definition: WatchFile.h:94
zypp::WatchFile::Initial
Initial
Definition: WatchFile.h:52
zypp::WatchFile::NO_INIT
@ NO_INIT
Definition: WatchFile.h:52
zypp::WatchFile::INIT
@ INIT
Definition: WatchFile.h:52
zypp::WatchFile::_path
Pathname _path
Definition: WatchFile.h:93
zypp::WatchFile::lastMtime
time_t lastMtime() const
Definition: WatchFile.h:71
zypp::filesystem::PathInfo
Wrapper class for ::stat/::lstat.
Definition: PathInfo.h:221
zypp::filesystem::PathInfo::mtime
time_t mtime() const
Definition: PathInfo.h:376
zypp::filesystem::PathInfo::size
off_t size() const
Definition: PathInfo.h:368
zypp::filesystem::Pathname
Pathname.
Definition: Pathname.h:45
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2