GObject

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 23. dubna 2015; kontroly vyžadují 14 úprav .
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.

Historie

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).

Propojení s GLib

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.

Typový systém

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 . 

Viz také

Poznámky

  1. Referenční příručka GObject  (anglicky) (HTML). Získáno 12. srpna 2010. Archivováno z originálu dne 24. února 2011.

Odkazy