Rezervační systém
|
počítadlo ...
#include <UtilClass.h>
Veřejné metody | |
CAutoIncrement (unsigned uiStart=0) | |
konstruktor ... | |
~CAutoIncrement () | |
destruktor ... | |
unsigned | Next (void) |
hodnota počítadla ... | |
Chráněné metody | |
void | Set (unsigned uiValue) |
nastavení ... | |
počítadlo
Třída zajišťuje produkování vzrůstající řady čísel typu unsigned
. Je zajištěna bezpečnost při vícevláknovém použití. Rozsah je dán použitým datovým typem. Zdá se, že pro účely jedinečného číslování zpráv při přenosu, transakcí, klientů apod. je současný rozsah více než dostatečný. V případě potřeby je možné velikost typu přímočaře zvětšit.
Třída deklaruje (ale neimplementuje!) privátní kopírovací konstruktor a operátor přiřazení. Tím brání veřejnému vytváření dalších instancí, čímž by byla narušena podmínka jedinečného číslování.
CAutoIncrement::CAutoIncrement | ( | unsigned | uiStart = 0 | ) |
konstruktor
Inicializace čítače pro vícevláknové použití (kritická sekce).
[in] | uiStart | počáteční hodnota počítadla (přednastavená hodnota 0 znamená, že první vyprodukovaná hodnota pomocí Next bude 1) |
CAutoIncrement::~CAutoIncrement | ( | ) |
destruktor
Uvolnění kritické sekce.
unsigned CAutoIncrement::Next | ( | void | ) |
hodnota počítadla
Postupným voláním této metody získáváme vzestupnou hodnotu čísel (každým vykonáním se hodnota vnitřního počítadla zvětšuje). Dokud nedojde k přetečení čítače, je hodnota jedinečná.
|
protected |
nastavení
Nastavení hodnoty počítadla by se mělo provádět pouze výjimečně, např. pokud zděděná třída tak nemůže provést již v konstruktoru. Operaci lze provést pouze směrem k větším hodnotám.
[in] | uiValue | nová hodnota počítadla |