Rezervační systém
Veřejné metody | Seznam všech členů
Dokumentace třídy CWriteJournal

třída pro zápis do žurnálu ...

#include <Journal.h>

Veřejné metody

 CWriteJournal (const char *pszPath, unsigned uiLimit, CMemoryDb *cDb)
 konstruktor ...
 
 ~CWriteJournal ()
 destruktor ...
 
void AskBackup (void)
 požadavek na vyprázdnění žurnálu ...
 
bool AddItem (unsigned uiType, unsigned uiLength, const void *pData)
 přidání položky do žurnálu ...
 

Detailní popis

třída pro zápis do žurnálu

Třída zajišťuje práci se souborem žurnálu. Pro svou práci si vytvoří pomocné vlákno (jež je po naprostou většinu času uspáno). Slouží k přidávání jednotlivých položek do žurnálu, zároveň kontroluje, zda velikost souboru nepřesáhla přednastavený limit. Pokud ano, je probuzeno pracovní vlákno, které zajistí provedení zálohy databáze a vyprázdnění žurnálu. Podrobněji zde.

Dokumentace konstruktoru a destruktoru

CWriteJournal::CWriteJournal ( const char *  pszPath,
unsigned  uiLimit,
CMemoryDb cDb 
)

konstruktor

Vytvoření třídy obnáší i vytvoření pracovního vlákna pro provádění zálohy databáze (včetně synchronizačním objektů) a vytvoření (prázdného) souboru žurnálu v požadovaném umístění.

Parametry
[in]pszPathurčení složky pro uložení interní zálohy databáze a souboru žurnálu. Konkrétní jména jsou určena vnitřními konstantami. Volající je odpovědný za to, že proces má odpovídající přístupová práva do zadané složky.
[in]uiLimitlimit velikosti žurnálového souboru. Při jeho překročení je vyvolána interní záloha databáze.
[in]cDbukazatel na instanci databáze, se kterou je žurnál spojen.
CWriteJournal::~CWriteJournal ( )

destruktor

Před zrušením třídy je legálně ukončeno pracovní vlákno a jsou uvolněny synchronizační objekty.

Dokumentace k metodám

bool CWriteJournal::AddItem ( unsigned  uiType,
unsigned  uiLength,
const void *  pData 
)

přidání položky do žurnálu

Do žurnálu je přidána další položka dle parametrů metody. V případě, že velikost žurnálu překročí přednastavenou mez, bude co nejdříve provedena kompletní záloha celé databáze a soubor žurnálu následně vymazán.

Parametry
[in]uiTypetyp položky (pro účely identifikace položky se používá výčtový typ CCommand::EQueryCmd)
[in]uiLengthvelikost dat (v bytech)
[in]pDataukazatel na data, která jsou spojena s konkrétním příkazem (velikost a struktura dat se liší podle příkazu)
Návratová hodnota
úspěch operace
void CWriteJournal::AskBackup ( void  )

požadavek na vyprázdnění žurnálu

Obsluha vnějšího požadavku na provedení interní zálohy celé databáze a tím i vyprázdnění souboru žurnálu. Požadavek je uložen a bude vyřízen pracovním vláknem co nejdříve (po získání výhradního přístupu k databázi).


Dokumentace pro tuto třídu byla generována z následujícího souboru: