GObjeto

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 23 de abril de 2015; las comprobaciones requieren 14 ediciones .
GObjeto
Tipo de Biblioteca
Desarrollador Fundación GNOME
Escrito en C
Sistema operativo Software multiplataforma
Idiomas de la interfaz Plurilingüe
plataforma de hardware Software multiplataforma
ultima versión 2.72.3 ( 30 de junio de 2022 )
Estado Activo
Licencia Licencia pública general menor de GNU
Sitio web biblioteca.gnome.org/devel/…

El sistema de objetos GLib o GObject  es una biblioteca de código abierto (con licencia bajo la LGPL ) que proporciona un sistema de objetos portátil y compatibilidad transparente entre idiomas. GObject está diseñado para usarse tanto en C como en otros lenguajes mediante enlaces.

Historia

Dependiendo solo de GLib y Libc , GObject es una parte esencial de GNOME y es utilizado por GTK , Pango, Accessibility Toolkit y otras bibliotecas GNOME de alto nivel. Antes de GTK+ 2.0, GObject era parte de GTK+ (entonces no se usaba el nombre "GObject"; el tipo de índice genérico se llamaba GtkObject).

Vinculación a GLib

Aunque GObject tiene su propio conjunto separado de documentación [1] y generalmente se compila en bibliotecas compartidas separadas , el código fuente de GObject está en el árbol GLib y se distribuye con GLib (por ejemplo, Debian incluye GObject en el paquete libglib2.0). Como resultado, GObject usa los mismos números de versión que GLib.

El sistema de tipos

En el nivel más básico de GObject se encuentra un sistema de tipo dinámico llamado GType. El sistema GType es responsable de describir el tiempo de ejecución de todos los objetos que permiten escribir código relacionado para su uso con diferentes enlaces de lenguaje. El sistema de tipos puede manejar cualquier estructura de clase de herencia única , así como tipos que no son de clase , como puntero opaco , cadena, entero y flotante.

El sistema de tipos sabe cómo copiar, pasar y destruir valores que pertenecen a cualquier tipo registrado. Esto es trivial para tipos simples como enteros, pero algunos objetos complejos usan el conteo de referencias y otros no. Si un objeto complejo utiliza el recuento de referencias, cuando se copia, el número de referencias simplemente aumenta en 1. De lo contrario, el objeto se copiará mediante la asignación de memoria adicional.

Esta funcionalidad básica se utiliza en la implementación de GValue, un contenedor de tipo genérico que puede contener valores de cualquier tipo conocido por el sistema de tipos. Dichos contenedores son especialmente útiles cuando interactúan con lenguajes tipificados dinámicamente , donde todos los valores nativos están en contenedores con etiquetas de tipo . 

Véase también

Notas

  1. Manual de referencia de GObject  (inglés) (HTML). Consultado el 12 de agosto de 2010. Archivado desde el original el 24 de febrero de 2011.

Enlaces