GObject | |
---|---|
Typ | Knihovna |
Vývojář | Nadace GNOME |
Zapsáno v | C |
Operační systém | Multiplatformní software |
Jazyky rozhraní | Vícejazyčný |
Hardwarová platforma | Multiplatformní software |
Nejnovější verze | 2.72.3 ( 30. června 2022 ) |
Stát | Aktivní |
Licence | GNU Lesser General Public License |
webová stránka | library.gnome.org/devel/… |
GLib nebo GObject Object System je knihovna s otevřeným zdrojovým kódem (licencovaná pod LGPL ), která poskytuje přenosný objektový systém a transparentní kompatibilitu mezi jazyky. GObject je navržen pro použití v C i dalších jazycích pomocí vazeb.
V závislosti pouze na GLib a Libc je GObject nezbytnou součástí GNOME a používají ho GTK , Pango, Accessibility Toolkit a další knihovny GNOME na vysoké úrovni. Před GTK+ 2.0 byl GObject součástí GTK+ (název "GObject" se tehdy nepoužíval - generický typ indexu se nazýval GtkObject).
Ačkoli má GObject svou vlastní samostatnou sadu dokumentace [1] a je obvykle kompilován do samostatných sdílených knihoven , zdrojový kód GObject je ve stromu GLib a distribuován s GLib (například Debian dodává GObject v balíčku libglib2.0). Výsledkem je, že GObject používá stejná čísla verzí jako GLib.
Na nejzákladnější úrovni GObject leží dynamický typový systém zvaný GType. Systém GType je zodpovědný za popis běhu všech objektů , které umožňují psát související kód pro použití s různými jazykovými vazbami. Typový systém dokáže zpracovat libovolnou strukturu tříd s jednou dědičností i netřídní typy, jako je neprůhledný ukazatel , řetězec, celé číslo a plovoucí.
Typový systém ví, jak kopírovat, předávat a ničit hodnoty, které patří k jakémukoli registrovanému typu. To je triviální pro jednoduché typy, jako jsou celá čísla, ale některé složité objekty používají počítání referencí a některé ne. Pokud komplexní objekt používá počítání odkazů, pak se při kopírování počet odkazů jednoduše zvýší o 1. Jinak bude objekt zkopírován přidělením další paměti.
Tato základní funkce se používá při implementaci GValue, kontejneru obecného typu , který může obsahovat hodnoty libovolného typu známého typovému systému. Takové kontejnery jsou užitečné zejména při interakci s dynamicky typovanými jazyky, kde jsou všechny nativní hodnoty v kontejnerech s typovými značkami .
GNOME | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Základní |
| ||||||||||||||||
Aplikace |
| ||||||||||||||||
Komponenty | |||||||||||||||||
Platformová architektura |
| ||||||||||||||||
Společenství | |||||||||||||||||
Lidé | |||||||||||||||||
|