LINUX.ORG.RU

Интроспекция в системе типов GObject

 , , , ,


0

0

GNOME Project представляет поддержку интроспекции для системы GObject.

Интроспекция (англ. Introspection) - возможность определения типов и получения описаний (метаданных) типов и интерфейсов во время выполнения программы. Задачей проекта GObject Introspection, по словам авторов, является попытка собрать метаданные по всему стеку библиотек GTK+/GNOME (и не только), оформить их в универсальном, машинно-читаемом формате, и предоставить соответствующее API.

Возможные варианты использования GObject Introspection:

  • привязки к языкам (language bindings). На данный момент, как правило, для различных языков используются свои методы описания API, что зачастую приводит к дублированию информации. Проект GObject Introspection должен представить унифицированный интерфейс для получения информации об API;
  • верификация API. Нередко случаются критические изменения публичного API (в результате, например, непредусмотрительности разработчика-новичка), которые могут "сломать" некоторые программы. GObject Introspection позволит автоматизировать сравнение двух версий API и выявить изменения с предельной точностью;
  • инструменты документирования. В рамках самого проекта GObject Introspection уже используется инструмент для автоматического документирования публичных API, которым в дальнейшем планируется заменить gtk-doc в рамках всего проекта GNOME;
  • автогенерация пользовательского интерфейса (наподобие того, как сделано в системе аудиосинтеза Beast);
  • дизайнер пользовательского интерфейса;
  • сериализация, RPC (в том числе средствами DBus), компонентная система.
На данный момент GObject Introspection представляет собой:
  • схему (формат) XML для представления метаданных, называемую GIR (GObject Introspection Repository);
  • модуль на языке Python для манипуляции форматом GIR;
  • генератор GIR из файлов исходных текстов на С (.c + .h);
  • систему typelib, схожую с XPCOM/MSOLE, для сохранения метаданных в бинарном формате;
  • конвертер между GIR (XML) и typelib (бинарный формат);
  • C-библиотеку для чтения typelib.
Исходные тексты GObject Introspection доступны в Subversion-репозитории проекта GNOME в соответствующем модуле (см. "Подробности").

Проект GObject Introspection активнейшим образом используется в языке Vala.

>>> Подробности

anonymous

Проверено: Shaman007 ()

Ответ на: комментарий от anonymous

>>> Чё таблетки не пьёшь? man QMetaObject

>> Вот сиди и читай, а потом для просветления прочитай новость еще раз.

> Глупенький штоле? Ну-ка, объяснил, какой ещё тебе интроспекции не хватило в Qt, или соснул плюсца.

Функциональность аналогичная QMetaObject в GLib была всегда, а GObjectIntrospection это другого рода штука, основаная цель которой как я понял "The goal of the project is to describe the APIs we have in our stack and collect them in a uniform, machine readable format".

qewerty
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.