libzypp  17.25.1
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  //
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  };
80 
82  std::ostream & operator<<( std::ostream & str, const SerialNumber & obj );
83 
85  //
86  // CLASS NAME : SerialNumberWatcher
87  //
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 ); }
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 ); }
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  }
170  bool remember( const SerialNumber & serial_r ) const
171  { return remember( serial_r.serial() ); }
172 
173  private:
174  mutable unsigned _serial;
175  };
177 
179  std::ostream & operator<<( std::ostream & str, const SerialNumberWatcher & obj );
180 
182 } // namespace zypp
184 #endif // ZYPP_BASE_SERIALNUMBER_H
zypp::SerialNumberWatcher::_serial
unsigned _serial
Definition: SerialNumber.h:174
zypp::SerialNumber::SerialNumber
SerialNumber(bool dirty_r=false)
Ctor taking initial dirty value.
Definition: SerialNumber.cc:34
zypp::SerialNumberWatcher::remember
bool remember(unsigned serial_r) const
Return isDirty, storing serial_r as new value.
Definition: SerialNumber.h:160
zypp::SerialNumber::clean
bool clean() const
Definition: SerialNumber.h:62
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
PtrTypes.h
zypp::SerialNumber::~SerialNumber
virtual ~SerialNumber()
Dtor.
Definition: SerialNumber.cc:44
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::SerialNumber::_serial
unsigned _serial
Definition: SerialNumber.h:77
zypp::SerialNumberWatcher::isDirty
bool isDirty(unsigned serial_r) const
Return whether serial_r differs.
Definition: SerialNumber.h:145
zypp::SerialNumberWatcher::operator<<
friend std::ostream & operator<<(std::ostream &str, const SerialNumberWatcher &obj)
Definition: SerialNumber.cc:92
zypp::SerialNumber::operator<<
friend std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
Definition: SerialNumber.cc:51
zypp::SerialNumber::_dirty
bool _dirty
Definition: SerialNumber.h:76
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:1
zypp::SerialNumber::dirty
bool dirty() const
Definition: SerialNumber.h:59
zypp::SerialNumber::setDirty
void setDirty()
Definition: SerialNumber.h:55
zypp::operator<<
std::ostream & operator<<(std::ostream &str, const Exception &obj)
Definition: Exception.cc:147
zypp::SerialNumber
Simple serial number provider.
Definition: SerialNumber.h:44
zypp::SerialNumber::serial
unsigned serial() const
Definition: SerialNumber.h:65
str
String related utilities and Regular expression matching.
zypp::SerialNumberWatcher::SerialNumberWatcher
SerialNumberWatcher(unsigned serial_r=(unsigned) -1)
Ctor taking an initial serial value.
Definition: SerialNumber.cc:67
zypp::SerialNumberWatcher::isClean
bool isClean(unsigned serial_r) const
Return whether serial_r is still unchanged.
Definition: SerialNumber.h:152
zypp::SerialNumberWatcher::~SerialNumberWatcher
virtual ~SerialNumberWatcher()
Dtor.
Definition: SerialNumber.cc:85
zypp::SerialNumberWatcher
Simple serial number watcher.
Definition: SerialNumber.h:122
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