GObject | |
---|---|
Sorts | Bibliotek |
Utvecklaren | GNOME Foundation |
Skrivet i | C |
Operativ system | Programvara för flera plattformar |
Gränssnittsspråk | Flerspråkig |
Hårdvaruplattform | Programvara för flera plattformar |
senaste versionen | 2.72.3 ( 30 juni 2022 ) |
stat | Aktiva |
Licens | GNU Lesser General Public License |
Hemsida | library.gnome.org/devel/… |
GLib eller GObject Object System är ett bibliotek med öppen källkod (licensierat under LGPL ) som tillhandahåller ett bärbart objektsystem och transparent kompatibilitet över flera språk. GObject är designat för att användas i både C och andra språk med bindningar.
Beroende endast på GLib och Libc , är GObject en viktig del av GNOME och används av GTK , Pango, Accessibility Toolkit och andra GNOME-bibliotek på hög nivå. Före GTK+ 2.0 var GObject en del av GTK+ (namnet "GObject" användes inte då - den generiska indextypen hette GtkObject).
Även om GObject har sin egen separata uppsättning dokumentation [1] och vanligtvis kompileras till separata delade bibliotek , finns källkoden för GObject i GLib-trädet och distribueras med GLib (till exempel, Debian skickar GObject i paketet libglib2.0). Som ett resultat använder GObject samma versionsnummer som GLib.
På den mest grundläggande nivån av GObject ligger ett dynamiskt typsystem som kallas GType. GType-systemet ansvarar för att beskriva körtiden för alla objekt som gör att relaterad kod kan skrivas för användning med olika språkbindningar. Typsystemet kan hantera vilken klassstruktur som helst med enstaka arv , såväl som icke- klasstyper som opaque pointer , string, heltal och float.
Typsystemet vet hur man kopierar, skickar och förstör värden som tillhör alla registrerade typer. Detta är trivialt för enkla typer som heltal, men vissa komplexa objekt använder referensräkning och andra inte. Om ett komplext objekt använder referensräkning ökar antalet referenser helt enkelt med 1 när det kopieras. Annars kommer objektet att kopieras genom att tilldela ytterligare minne.
Denna grundläggande funktionalitet används i implementeringen av GValue, en behållare av generisk typ som kan innehålla värden av vilken typ som helst som är kända för typsystemet. Sådana behållare är särskilt användbara när du interagerar med dynamiskt skrivna språk, där alla ursprungliga värden finns i typtaggade behållare .
GNOME | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Kärnapplikationer |
| ||||||||||||||||
Ansökningar |
| ||||||||||||||||
Komponenter | |||||||||||||||||
Plattformsarkitektur _ |
| ||||||||||||||||
gemenskap | |||||||||||||||||
människor | |||||||||||||||||
|