GObject | |
---|---|
Type | Bibliotek |
Udvikler | GNOME Foundation |
Skrevet i | C |
Operativ system | Cross-platform software |
Interface sprog | Flersproget |
Hardware platform | Cross-platform software |
nyeste version | 2.72.3 ( 30. juni 2022 ) |
Stat | Aktiv |
Licens | GNU Lesser General Public License |
Internet side | library.gnome.org/devel/… |
GLib eller GObject Object System er et open source-bibliotek (licenseret under LGPL ), der giver et bærbart objektsystem og gennemsigtig kompatibilitet på tværs af sprog. GObject er designet til at blive brugt på både C og andre sprog ved hjælp af bindinger.
Kun afhængig af GLib og Libc , er GObject en væsentlig del af GNOME og bruges af GTK , Pango, Accessibility Toolkit og andre GNOME-biblioteker på højt niveau. Før GTK+ 2.0 var GObject en del af GTK+ (navnet "GObject" blev ikke brugt dengang - den generiske indekstype hed GtkObject).
Selvom GObject har sit eget separate sæt dokumentation [1] og normalt er kompileret i separate delte biblioteker , er kildekoden til GObject i GLib-træet og distribueret med GLib (for eksempel sender Debian GObject i pakken libglib2.0). Som et resultat bruger GObject de samme versionsnumre som GLib.
På det mest grundlæggende niveau af GObject ligger et dynamisk typesystem kaldet GType. GType-systemet er ansvarligt for at beskrive kørselstiden for alle objekter , der gør det muligt at skrive relateret kode til brug med forskellige sprogbindinger. Typesystemet kan håndtere enhver enkelt-arvsklassestruktur såvel som ikke-klassetyper såsom uigennemsigtig pointer , streng, heltal og float.
Typesystemet ved, hvordan man kopierer, videregiver og ødelægger værdier, der tilhører enhver registreret type. Dette er trivielt for simple typer som heltal, men nogle komplekse objekter bruger referencetælling, og nogle gør ikke. Hvis et komplekst objekt bruger referencetælling, vil antallet af referencer blot øges med 1, når det kopieres. Ellers vil objektet blive kopieret ved at allokere yderligere hukommelse.
Denne grundlæggende funktionalitet bruges i implementeringen af GValue, en generisk type container , der kan indeholde værdier af enhver type, som typesystemet kender. Sådanne containere er især nyttige, når de interagerer med dynamisk indtastede sprog, hvor alle native værdier er i type- taggede containere .
GNOME | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Kerneapplikationer |
| ||||||||||||||||
Ansøgninger |
| ||||||||||||||||
Komponenter | |||||||||||||||||
Platform arkitektur |
| ||||||||||||||||
Fællesskab | |||||||||||||||||
Mennesker | |||||||||||||||||
|