Multistaniční prohlížeč datových záznamů - bzbrowser
Aplikace bzbrowser je určená pro prohlížení datových záznamů z uložiště, Aktuálně vykresluje screenshoty, jako pás záznamů složený podle času.
Instalace
sudo apt-get install libsdl2-dev git python-numpy python-versiontools sudo easy_install pysdl2 git clone https://github.com/bolidozor/bzbrowser.git cd bzbrowser python bzbrowser.py
Interní fungování
Třída SnapshotCollection dostává požadavky na interval času, který by měl být pokryt snapshoty (metoda cover), kouká se, jaká oblast je už pokryta a pokud nějaký interval není a měl by, tak se na něj zavolá get_snapshots z bzpost a jednotlivé snapshoty se naládují do nějaké funkce (self.sink) - tohle dělá v jiném vlákně, které si k tomu vyrobí aby volání cover neblokovalo a program odpovídal třeba na scrollování a další věci. V mainu se té třídě jako sink, tedy funkce, kterou to má na každý nový snapshot zavolat, předá spuštění funkce put_up_snapshot zase v jiném vlákně (řádek 122).
put_up_snapshot ten snapshot podle url stáhne, převede na obrázek a poté se předá té knihovně SDL, aby se mohl vykreslovat - to se ale musí udělat v hlavním vlákně, jinak by to SDL nezvládla, proto se vyrobí funkce finish a předá funkci run_on_main. finish se potom spustí na řádku 143.