Skip to content

Developers guide : short class and structure description

Lezh1k edited this page Nov 23, 2017 · 2 revisions

How to document tray

We use doxygen in tray. There is tray_doxyfile in root folder. So you can easily generate some documentation with doxygen tray_doxyfile. Documentation will be placed in docs/html .

Folders desctiption

commons

Contains common function and classes used in whole project. There are logger, synchronization primitives, language controller and constants related to OS and branch.

vbox

Contains everything related to VirtualBox management. It uses vboxmanage command (as base). But vboxmanage could be easily replaced with vagrant without changing those interfaces

libssh2

Contains functions and class related to libssh2 (NOT EZSSH) . Tray uses it for getting RH version, Management version etc.

hub/updater

Contains everything related to update sub system. P2P, SubutaiTray, RH, Management . Everything is there.

hub

Contains most functions related to HUB . There are containers, ssh keys management, system calls wrapper, ssdp controller etc.

Most important classes

SystemCallWrapper

Wraps everything related to external applications. Creates processes, pipes etc. Can read process output and handle timeouts. Doesn't lock main thread.

RestWorker

Works with HUB REST-point .

Ssh-keys controller

Contains ssh-keys/environments table.

RhController/SsdpController

Looks for RH in LAN.

IUpdaterComponent

See description above (hub/updater).

NotificationsObserver

Controls user notification messages