libzypp 17.37.10

SerialNumber.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#ifndef ZYPP_BASE_SERIALNUMBER_H
13#define ZYPP_BASE_SERIALNUMBER_H
14
15#include <iosfwd>
16
17#include <zypp/base/PtrTypes.h>
18
20 namespace zypp
21{
22
24 //
25 // CLASS NAME : SerialNumber
26 //
44 class SerialNumber
45 {
46 friend std::ostream & operator<<( std::ostream & str, const SerialNumber & obj );
47
48 public:
50 SerialNumber( bool dirty_r = false );
52 virtual ~SerialNumber();
53
54 public:
55 void setDirty()
56 { _dirty = true; }
57
58 public:
59 bool dirty() const
60 { return _dirty; }
61
62 bool clean() const
63 { return !_dirty; }
64
65 unsigned serial() const
66 {
67 if ( _dirty )
68 {
69 ++_serial;
70 _dirty = false;
71 }
72 return _serial;
73 }
74
75 private:
76 mutable bool _dirty;
77 mutable unsigned _serial;
78 };
79
80
82 std::ostream & operator<<( std::ostream & str, const SerialNumber & obj );
83
85 //
86 // CLASS NAME : SerialNumberWatcher
87 //
122 class SerialNumberWatcher
123 {
124 friend std::ostream & operator<<( std::ostream & str, const SerialNumberWatcher & obj );
125
126 public:
137 SerialNumberWatcher( unsigned serial_r = (unsigned)-1 );
139 SerialNumberWatcher( const SerialNumber & serial_r );
141 virtual ~SerialNumberWatcher();
142
143 public:
145 bool isDirty( unsigned serial_r ) const
146 { return( _serial != serial_r ); }
147
148 bool isDirty( const SerialNumber & serial_r ) const
149 { return( _serial != serial_r.serial() ); }
150
152 bool isClean( unsigned serial_r ) const
153 { return( _serial == serial_r ); }
154
155 bool isClean( const SerialNumber & serial_r ) const
156 { return( _serial == serial_r.serial() ); }
157
158 public:
160 bool remember( unsigned serial_r ) const
161 {
162 if ( isDirty( serial_r ) )
163 {
164 _serial = serial_r;
165 return true;
166 }
167 return false;
168 }
169
170 bool remember( const SerialNumber & serial_r ) const
171 { return remember( serial_r.serial() ); }
172
173 private:
174 mutable unsigned _serial;
175 };
176
177
179 std::ostream & operator<<( std::ostream & str, const SerialNumberWatcher & obj );
180
182} // namespace zypp
184#endif // ZYPP_BASE_SERIALNUMBER_H
zypp::SerialNumberWatcher
Simple serial number watcher.
Definition SerialNumber.h:123
zypp::SerialNumberWatcher::isClean
bool isClean(const SerialNumber &serial_r) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition SerialNumber.h:155
zypp::SerialNumberWatcher::remember
bool remember(unsigned serial_r) const
Return isDirty, storing serial_r as new value.
Definition SerialNumber.h:160
zypp::SerialNumberWatcher::isClean
bool isClean(unsigned serial_r) const
Return whether serial_r is still unchanged.
Definition SerialNumber.h:152
zypp::SerialNumberWatcher::isDirty
bool isDirty(unsigned serial_r) const
Return whether serial_r differs.
Definition SerialNumber.h:145
zypp::SerialNumberWatcher::isDirty
bool isDirty(const SerialNumber &serial_r) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition SerialNumber.h:148
zypp::SerialNumberWatcher::_serial
unsigned _serial
Definition SerialNumber.h:174
zypp::SerialNumberWatcher::SerialNumberWatcher
SerialNumberWatcher(unsigned serial_r=(unsigned) -1)
Ctor taking an initial serial value.
Definition SerialNumber.cc:68
zypp::SerialNumberWatcher::~SerialNumberWatcher
virtual ~SerialNumberWatcher()
Dtor.
Definition SerialNumber.cc:86
zypp::SerialNumberWatcher::operator<<
friend std::ostream & operator<<(std::ostream &str, const SerialNumberWatcher &obj)
Definition SerialNumber.cc:94
zypp::SerialNumberWatcher::remember
bool remember(const SerialNumber &serial_r) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition SerialNumber.h:170
zypp::SerialNumber
Simple serial number provider.
Definition SerialNumber.h:45
zypp::SerialNumber::~SerialNumber
virtual ~SerialNumber()
Dtor.
Definition SerialNumber.cc:44
zypp::SerialNumber::SerialNumber
SerialNumber(bool dirty_r=false)
Ctor taking initial dirty value.
Definition SerialNumber.cc:34
zypp::SerialNumber::operator<<
friend std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
Definition SerialNumber.cc:52
zypp::SerialNumber::clean
bool clean() const
Definition SerialNumber.h:62
zypp::SerialNumber::setDirty
void setDirty()
Definition SerialNumber.h:55
zypp::SerialNumber::serial
unsigned serial() const
Definition SerialNumber.h:65
zypp::SerialNumber::_dirty
bool _dirty
Definition SerialNumber.h:76
zypp::SerialNumber::_serial
unsigned _serial
Definition SerialNumber.h:77
zypp::SerialNumber::dirty
bool dirty() const
Definition SerialNumber.h:59
str
String related utilities and Regular expression matching.
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition Application.cc:20
zypp::operator<<
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
Definition SerialNumber.cc:52
PtrTypes.h