zypp::base::ProvideNumericId< _Derived, _NumericIdType > Struct Template Reference

Base class for objects providing a numeric Id. More...

#include <ProvideNumericId.h>

List of all members.

Public Member Functions

_NumericIdType numericId () const

Protected Member Functions

 ProvideNumericId ()
 Default ctor.
 ProvideNumericId (const ProvideNumericId &)
 Copy ctor.
ProvideNumericIdoperator= (const ProvideNumericId &)
 Assign.
 ~ProvideNumericId ()
 Dtor.
 ProvideNumericId (const void *const )
 No-Id ctor (0).

Static Private Member Functions

static _NumericIdType nextId ()
 Provide the next Id to use.

Private Attributes

const _NumericIdType _numericId


Detailed Description

template<class _Derived, class _NumericIdType>
struct zypp::base::ProvideNumericId< _Derived, _NumericIdType >

Base class for objects providing a numeric Id.

The ctor creates a NumericId from some static counter.

The only assertion is that 0 is not used as an Id, unless the derived class explicitly requests this by using ProvideNumericId( const void *const ).

Why should you want to use 0 as an Id? E.g if your class provides some (singleton) No-object. Might be desirable to make the No-object have No-Id.

 struct Foo : public base::ProvideNumericId<Foo,unsigned>
 {};
 Foo foo;
 foo.numericId(); // returns foo's NumericId.

Definition at line 45 of file ProvideNumericId.h.


Constructor & Destructor Documentation

template<class _Derived, class _NumericIdType>
zypp::base::ProvideNumericId< _Derived, _NumericIdType >::ProvideNumericId  )  [inline, protected]
 

Default ctor.

Definition at line 54 of file ProvideNumericId.h.

template<class _Derived, class _NumericIdType>
zypp::base::ProvideNumericId< _Derived, _NumericIdType >::ProvideNumericId const ProvideNumericId< _Derived, _NumericIdType > &   )  [inline, protected]
 

Copy ctor.

Definition at line 58 of file ProvideNumericId.h.

template<class _Derived, class _NumericIdType>
zypp::base::ProvideNumericId< _Derived, _NumericIdType >::~ProvideNumericId  )  [inline, protected]
 

Dtor.

Definition at line 65 of file ProvideNumericId.h.

template<class _Derived, class _NumericIdType>
zypp::base::ProvideNumericId< _Derived, _NumericIdType >::ProvideNumericId const void *  const  )  [inline, protected]
 

No-Id ctor (0).

Explicitly request Id 0. Use it with care!

Definition at line 71 of file ProvideNumericId.h.


Member Function Documentation

template<class _Derived, class _NumericIdType>
_NumericIdType zypp::base::ProvideNumericId< _Derived, _NumericIdType >::numericId  )  const [inline]
 

Returns:
The objects numeric Id.

Definition at line 49 of file ProvideNumericId.h.

template<class _Derived, class _NumericIdType>
ProvideNumericId& zypp::base::ProvideNumericId< _Derived, _NumericIdType >::operator= const ProvideNumericId< _Derived, _NumericIdType > &   )  [inline, protected]
 

Assign.

Definition at line 62 of file ProvideNumericId.h.

template<class _Derived, class _NumericIdType>
static _NumericIdType zypp::base::ProvideNumericId< _Derived, _NumericIdType >::nextId  )  [inline, static, private]
 

Provide the next Id to use.

Definition at line 76 of file ProvideNumericId.h.


Member Data Documentation

template<class _Derived, class _NumericIdType>
const _NumericIdType zypp::base::ProvideNumericId< _Derived, _NumericIdType >::_numericId [private]
 

Definition at line 83 of file ProvideNumericId.h.

Referenced by zypp::base::ProvideNumericId< TraceCAD< _Tp >, unsigned long >::numericId().


The documentation for this struct was generated from the following file:
Generated on Thu Jul 6 00:07:31 2006 for zypp by  doxygen 1.4.6