libzypp  13.10.6
ProvideNumericId.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_BASE_PROVIDENUMERICID_H
13 #define ZYPP_BASE_PROVIDENUMERICID_H
14 
16 namespace zypp
17 {
18  namespace base
20  {
21 
23  //
24  // CLASS NAME : ProvideNumericId
25  //
44  template<class _Derived, class _NumericIdType>
46  {
47  public:
49  _NumericIdType numericId() const
50  { return _numericId; }
51 
52  protected:
55  : _numericId( nextId() )
56  {}
59  : _numericId( nextId() )
60  {}
63  { return *this; }
66  {}
67  protected:
71  ProvideNumericId( const void *const )
72  : _numericId( 0 )
73  {}
74  private:
76  static _NumericIdType nextId()
77  {
78  static _NumericIdType _staticCounter = 0;
79  // Assert not returning 0
80  return ++_staticCounter;
81  }
83  const _NumericIdType _numericId;
84  };
86 
88  } // namespace base
91 } // namespace zypp
93 #endif // ZYPP_BASE_PROVIDENUMERICID_H
ProvideNumericId & operator=(const ProvideNumericId &)
Assign.
ProvideNumericId(const void *const )
No-Id ctor (0).
Base class for objects providing a numeric Id.
static _NumericIdType nextId()
Provide the next Id to use.
_NumericIdType numericId() const
const _NumericIdType _numericId
ProvideNumericId(const ProvideNumericId &)
Copy ctor.