GObject
| 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é
- Vala je programovací jazyk založený na GObject se syntaxí C# . Transpiler do C
- Genie je alternativní syntaktický analyzátor pro kompilátor Vala ve stylu Pythonu
Poznámky
- ↑ Referenční příručka GObject (anglicky) (HTML). Získáno 12. srpna 2010. Archivováno z originálu dne 24. února 2011.
Odkazy
- Referenční příručka GObject (a výukový program) (angličtina) (HTML). Staženo: 12. srpna 2010.
- GObject Tutorial srpen 2004 (anglicky) (HTML) (odkaz není dostupný) . Získáno 12. srpna 2010. Archivováno z originálu 2. února 2017.
- GOB2 - GObject Builder (anglicky) (HTML). Staženo: 12. srpna 2010.
- Domovská stránka Vala (anglicky) (HTML). Staženo: 12. srpna 2010.
- Referenční popis GObject (ruština)