GObject

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 23. april 2015; checks kræver 14 redigeringer .
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.

Historie

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

Linker til GLib

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.

Typesystemet

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 . 

Se også

Noter

  1. GObject Reference Manual  (engelsk) (HTML). Hentet 12. august 2010. Arkiveret fra originalen 24. februar 2011.

Links