Mailinglist Archive: zypp-devel (92 mails)

< Previous Next >
[zypp-devel] SerialNumber for ResPool.
  • From: Michael Andres <ma@xxxxxxx>
  • Date: Thu, 2 Aug 2007 16:28:37 +0200
  • Message-id: <20070802142837.GA2079@xxxxxxx>

As we need some serial number indicating a changed ResPool content, I
added 2 simple classes SerialNumber and SerialNumberWatcher to 
zypp/base/SerialNumber.h

This should be ok for a simple polling solution.

  ///////////////////////////////////////////////////////////////////
  //
  //    CLASS NAME : SerialNumber
  //
  /** Simple serial number provider.
   *
   * \ref serial returns a serial number. The number returned stays
   * the same unless \ref setDirty was called to bring the object
   * into \c dirty state. The next call to \ref serial will increment
   * the serial number and bring the object into \c clean state.
   *
   * \code
   * SerialNumber sno;
   * sno.serial();             // SERIAL(0); () = clean
   * sno.setDirty();           // SERIAL*0*; ** = dirty
   * sno.serial();             // SERIAL(1)
   * sno.setDirty();           // SERIAL*1*
   * sno.setDirty();           // SERIAL*1*
   * sno.serial();             // SERIAL(2)
   * \endcode
   */

  ///////////////////////////////////////////////////////////////////
  //
  //    CLASS NAME : SerialNumberWatcher
  //
  /** Simple serial number watcher.
   *
   * \ref SerialNumberWatcher remembers a serial number
   * and tells whenever new numbers you feed change.
   *
   * All methods are overloaded to take an \unsigned or a
   * <tt>const SerialNumber &</tt> as argument.
   *
   * \code
   * SerialNumber sno;
   *
   * void check()
   * {
   *   static SerialNumberWatcher watcher( sno );
   *
   *   if ( watcher.remember( sno ) )
   *   {
   *     cout << "Serial number changed." << endl;
   *   }
   * }
   *
   * int main()
   * {
   *   check();          //
   *   check();          //
   *   sno.dirty();
   *   check();          // "Serial number changed."
   *   check();          //
   *   check();          //
   *   sno.dirty();
   *   check();          // "Serial number changed."
   * \endcode
   */


-- 

cu,
    Michael Andres

+------------------------------------------------------------------+
Key fingerprint = 2DFA 5D73 18B1 E7EF A862  27AC 3FB8 9E3A 27C6 B0E4
+------------------------------------------------------------------+
Michael Andres             YaST Development            ma@xxxxxxxxxx
SUSE LINUX Products GmbH, GF:  Markus Rex,  HRB 16746 (AG Nuernberg)
Maxfeldstrasse 5, D-90409 Nuernberg, Germany, ++49 (0)911 - 740 53-0
+------------------------------------------------------------------+

-- 
To unsubscribe, e-mail: zypp-devel+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-devel+help@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages