# openPilotLog: Class Hierarchy

Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:

ABenchmark | Quick access to benchmarking two functions for the purpose of performance testing
ADataBaseSetup | Responsible for the inital setup of the database when the application is first launched. It creates the database in the specified default location and creates all required tables and views. It can also be used to reset the database currently used
experimental::AEntry | The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries in the database to operate on
experimental::AAircraftEntry |
experimental::AFlightEntry |
experimental::APilotEntry |
experimental::ATailEntry |
ARunGuard | The RunGuard class ensures only a single instance of the application is running simultaneously
ASettings | The Settings class is a thin wrapper for the QSettings class, simplifying reading and writing of settings

Db

Basic API for accessing the database programatically. It is used to set up the initial connection and various basic queries can be executed using a set of static functions. When interfacing with the database for the purpose of adding, deleting or updating entries, the use of the entry class and its subclasses is recommended. This clas is not supposed to be instantiated, if you need a database object, use QSqlDatabase::database("qt_sql_default_connection");

DbInfo |
Entry_deprecated | The Entry class is the base class for database entries. It can be seen as a row in a table within the database
Aircraft | The aircraft class
Flight |
Pilot |
QDialog |
FirstRunDialog |
NewFlightDialog |
NewPilotDialog |
NewTailDialog | The NewTail class is a dialog for adding a new tail to the database or editing an existing one
QObject |
ADownload |
ATimer | Easy to use performance timer
experimental::ADatabase | The DB class encapsulates the SQL database by providing fast access to hot database data
QPair |
experimental::DataPosition |
QRegularExpressionValidator |
AStrictRxValidator | Only returns Invalid or Acceptable
QSqlError |
experimental::ADatabaseError | Custom Database Error derived from QSqlError. Extends text() adding "Database Error: " before the text
QWidget |
AircraftWidget |
DebugWidget |
HomeWidget |
LogbookWidget |
PilotsWidget |
SettingsWidget |
TotalsWidget |
experimental::UserInput | The EntryData struct. Contains ALL possible data. However depending on who is constructing it, different types are initialised. FUTURE: Would it be necessary to able to change data? George: I would say no because we dont want to fuck around with the entry. Collect data from user -> Pack it up in the entry -> Consume it