BeOS API (BeOS API)

Перейти к навигации Перейти к поиску

BeOS API, часто называемый также Be API после закрытия Be Inc., представляет собой интерфейс прикладного программирования, необходимый для написания графических нативных приложений на BeOS и, следовательно, его производных, таких как Haiku и ZETA.

API разделен на несколько «наборов», которые собирают вместе связанные классы и имеют некоторое отношение к библиотеке, содержащей вспомогательный код.

Это почти полностью C++, со сторонними привязками для большинства классов в Python и крошечным подмножеством классов, в основном связанных с Storage Kit, в Perl.

Комплекты разработки

[править | править код]

Комплект разработки приложений содержит базовые классы, необходимые для запуска приложения BeOS, а также поддержку глобального буфера обмена, межприложений и внутреннего обмена сообщениями, таймеров, списков и других функций, необходимых для поддержки любого графического приложения. Классы комплектов разработки приложений находятся в библиотеке libbe.so

Комплект хранения предоставляет методы для управления файлами от создания и управления символическими ссылками до панелей открытия/сохранения файлов для графических приложений, а также работы с атрибутами Be File System. Классы комплектов хранения в основном находятся в библиотеке libtracker.so. ОС предоставляет свой собственный файловый менеджер Tracker.

Комплект для разработки интерфейсов предоставляет большую коллекцию виджетов для создания графических приложений от класса главного окна до диалоговых окон, включая управление шрифтами и управление рендерингом. В большей части этот комплект разработки содержится в библиотеке libbe.so.

Комплект ядра предоставляет потоки, семафоры и возможность доступа к системной информации. Находится он в библиотеке libbe.so

Комплект поддержки предоставляет более продвинутые функции, которые не находятся в других комплектах, такие как вспомогательное выделение памяти и поддержка списков.

Сетевой комплект обеспечивает либо элементарную (BeOS R5 и ниже), либо почти полную (BeOS Dano и выше) реализацию сокетов Berkeley и BIND, а также «родные» функции на основе сетевой библиотеки Nettle C++. libnet.so предоставляет сокеты Беркли на R5, позже замененные более распространенной номенклатурой libsocket/libbind.so; libnetapi в R5, позже замененный на libbnetapi, предоставляет модифицированную версию Nettle.

Почтовый комплект обеспечивает собственный формат электронной почты, а также способ использовать систему для доставки и получения электронной почты с использованием стандартных протоколов (POP3 и SMTP). Почтовый комплект находится в библиотеке libmail.so

Комплект перевода предоставляет метод, с помощью которого как изображения, так и форматы обычного текста обрабатываются дополнениями, позволяя приложениям поддерживать только один формат, собственный промежуточный, и сохранять/загружать в любой поддерживаемый дополнением формат. API также позволяет переводить видео и аудио через библиотеку, хотя это было заменено BeOS R4 и немедленно отключено. Комплект перевода поддерживается библиотекой libtranslation.so

Комплект для работы с медиа файлами обеспечивает уровень абстракции аудио и видео ввода/вывода на основе подключаемых дополнений, а также обработку микширования звука, трансляцию аудио и видео форматов и другие функции, связанные с медиа. Функции данного комплекта поддерживаются библиотекой libmedia.so

Комплект MIDI обеспечивает аппаратную абстракцию ввода и вывода MIDI, а также программный синтезатор (предоставленный Headspace в BeOS R5). Библиотека libmidi.so предоставляет старый MIDI API эпохи BeOS R3, libmidi2.so предоставляет R4+ API.

Комплект разработки игр предоставляет несколько звуковых форматов, используемых для вывода звука компьютерных игр, а также возможность запускать полноэкранные приложения и использовать наложения видео.

Комплект OpenGL предоставляет реализацию OpenGL, а также вспомогательные классы, позволяющие использовать его в собственных приложениях. В BeOS R5 поддерживаемая версия OpenGL была 1.1 и имела программное ускорение. Этот комплект не зависел от оборудования и фактически превосходил многие аппаратные реализации, которые работали на конкурирующих платформах и которые не могли обеспечить аналогичную производительность задержки/пропускной способности из-за неэффективности в их дизайне или реализации[1].

Комплект для работы с устройствами обеспечивает абстрагированный от платформы прямой аппаратный доступ к последовательным и параллельным портам, а также к печально известному GeekPort BeBox.

Комплект локализации предоставляет классы для локализации приложений на разные языки, часовые пояса, соглашения о форматировании чисел и т. д. Этот набор можно найти только в Haiku реализации BeOS API.

Комплект служб обеспечивает легкое прямое подключение к веб-службам. Этот комплект можно найти только в Haiku реализации BeOS API.

Web Kit предоставляет средства визуализации веб-страниц и является ответвлением от Apple Webkit. Этот комплект можно найти только в Haiku реализации BeOS API.

Package Kit предоставляет средства управления пакетами. Этот комплект можно найти только в Haiku реализации BeOS API.

Документация

[править | править код]

Весь API, каким он был на стадии BeOS Revision 3, был задокументирован в двух бумажных книгах - Be Developer Guide и Be Advanced Topics, выпущенных O'Reilly Media под издательством Be, Inc. в 1997/8. Кроме того, было предоставлено цифровое представление об этом, и оно обновлялось самой BeOS. В 2007 году компания ACCESS Co Ltd, владельцы интеллектуальной собственности Be, Inc., опубликовала ее текст по лицензии Creative Commons[2].

  1. Евгения Лоли. [https://web.archive.org/web/20010202233200/http://www.benews.com/story/3587 ATI Radeon/Voodoo2 OpenGL Benchmarks BeOS vs. Windows98 again! Who's faster?] (англ.). BeNews (16 октября 2001). Дата обращения: 30 января 2021. Архивировано 2 февраля 2001 года.
  2. Koki. ACCESS Co. Releases BeBook and Be Newsletters (англ.). Haiku (4 марта 2007). Дата обращения: 30 января 2021. Архивировано 3 февраля 2021 года.