- GObject
-
GObject Тип Разработчик Написана на Операционная система Языки интерфейса Multilingual
Аппаратная платформа Последняя версия Тестовая версия Состояние Active
Лицензия Сайт library.gnome.org/devel/gobject/stable//devel/gobject/stable/
Объектная система GLib или GObject — библиотека с открытым исходным кодом (лицензируется под LGPL), представляющая портируемую объектную систему и прозрачную межъязыковую совместимость. Gobject спроектирован для использования как в C, так и в других языках при помощи привязок.
Содержание
История
Находясь в зависимости только от GLib и Libc, GObject является важной частью GNOME и используется в GTK+, Pango, Accessibility Toolkit и других высокоуровневых библиотеках GNOME. До GTK+ 2.0, GObject был частью GTK+. (Название «GObject» тогда не использовалось — общий индексный тип назывался GtkObject.)
Связь с GLib
Несмотря на то, что GObject имеет свой собственный отдельный набор документации [1] и обычно компилируется в отдельные разделяемые библиотеки, исходный код для GObject находится в дереве GLib и распространяется вместе с GLib (например, Debian поставляет GObject в пакете libglib2.0). В связи с этим GObject использует те же номера версий, что и GLib.
Система типов
На самом базовом уровне GObject лежит динамическая система типов, которая называется GType. Система GType отвечает за описание времени исполнения всех объектов, позволяющих писать связанный код, для использования с разными языковыми привязками. Система типов может справиться с любой классовой структурой с единичным наследованием, а также с не-классными типами, такими, как непрозрачный указатель, строка, целое число и число с плавающей точкой.
Система типов знает, каким образом копировать, передавать, и уничтожать значения, принадлежащие к любому зарегистрированному типу. Это тривиально для простых типов, таких, как целые числа, но некоторые сложные объекты используют подсчёт ссылок, а некоторые — нет. Если сложный объект использует подсчёт ссылок, то при его копировании количество ссылок просто увеличивается на 1. Иначе, объект будет скопирован путём выделения дополнительной памяти.
Эта базовая функциональность используется в реализации GValue, общего контейнера типов, который может содержать значения любого типа, известного системе типов. Такие контейнеры особенно полезны при взаимодействии с языками с динамической типизацией, где все родные значения находятся в таких type-tagged контейнерах (контейнерах с пометкой типа).
См. также
- Vala
- Genie
Примечания
- ↑ GObject Reference Manual (англ.) (HTML). Проверено 12 августа 2010.
Ссылки
- The GObject Reference Manual (and tutorial) (англ.) (HTML). Проверено 12 августа 2010.
- GObject Tutorial Aug 2004 (англ.) (HTML). Проверено 12 августа 2010.
- GOB2 — the GObject Builder (англ.) (HTML). Проверено 12 августа 2010.
- Vala Homepage (англ.) (HTML). Проверено 12 августа 2010.
Проект GNOME Сообщество Люди Компоненты Приложения
(список)Технологии Категории:- Программное обеспечение по алфавиту
- GNOME
- GTK+
- Freedesktop.org
Wikimedia Foundation. 2010.