Difference between revisions of "Library/ru"

From KolibriOS wiki
Jump to navigation Jump to search
m
 
(25 intermediate revisions by 6 users not shown)
Line 1: Line 1:
Libs-dev — набор системных библиотек, нацеленных на различные проблемные области программирования.
+
{| class="wikitable" border="1"
 
+
! Имя библиотеки
=Описание библиотек=
+
! Краткое описание
Libs-dev в настоящий момент состоит из четырёх библиотек общего назначения: '''libio''' (программирование ввода-вывода), '''libini''' (поддержка INI файлов), '''libimg''' (манипуляции с графическими файлами) and '''libgfx''' (удобное API для рисования).
+
! Тема на форуме
 
+
|-
==libio==
+
| '''[[Box lib/ru|Box lib]]'''
<small>''Основная статья: [[Libs-dev/libio]]''</small>
+
| Библиотека box_lib.obj содержит разные элементы управления, которые можно использовать при написании приложений.
 
+
| http://board.kolibrios.org/viewtopic.php?f=24&t=1220
Библиотека предоставляет средства для выполнения основных операций ввода-вывода, таких как открытие, закрытие, чтение, изменение, урезание файлов, получение и установка позиции файлового указателя. Также присутствуют методы для перебора файлов в пределах определённой директории с именами, соответствующими маске.
+
|-
 +
| '''[[OpenDialog/ru|OpenDialog]]'''
 +
| Является подобием Windows компонента Microsoft Common Dialog Control или его аналогов в Linux (там их вообще несколько разных присутствует), и служит для выбор пути.
 +
|
 +
|-
 +
| '''[[Libs-dev/libio/ru|libio]]'''
 +
| Библиотека предоставляет средства для выполнения основных операций ввода-вывода, таких как открытие, закрытие, чтение, изменение, урезание файлов, получение и установка позиции файлового указателя. Также присутствуют методы для перебора файлов в пределах определённой директории с именами, соответствующими маске.
  
 
Ею должны, в общем случае, пользоваться программы, которым необходимо производить низкоуровневые файловые операции.
 
Ею должны, в общем случае, пользоваться программы, которым необходимо производить низкоуровневые файловые операции.
 
+
|
==libini==
+
|-
<small>''Основная статья: [[Libs-dev/libini]]''</small>
+
| '''[[Libs-dev/libini/ru|libini]]'''
 
+
| Библиотека предоставляет средства для работы с INI файлами, представляющими собой текстовые файлы с набором ключей и значений, которые пользователь имеет возможность изменять вручную в любом внешнем редакторе.
Библиотека предоставляет средства для работы с INI файлами, представляющими собой текстовые файлы с набором ключей и значений, которые пользователь имеет возможность изменять вручную в любом внешнем редакторе.
 
  
 
Ею должны, в общем случае, пользоваться программы, которым необходимо сохранять и загружать свои настройки платформо-независимым образом.
 
Ею должны, в общем случае, пользоваться программы, которым необходимо сохранять и загружать свои настройки платформо-независимым образом.
 
+
| http://board.kolibrios.org/viewtopic.php?f=24&t=1114
==libimg==
+
|-
<small>''Основная статья: [[Libs-dev/libimg]]''</small>
+
| '''[[Libs-dev/libimg/ru|libimg]]'''
 
+
| Библиотека предоставляет средства для работы с графическими файлами и контейнерами. Она расширяема и может прозрачным образом декодировать изображения в разных форматах, идентифицируя их по файловым сигнатурам и другими эвристическими способами.
Библиотека предоставляет средства для работы с графическими файлами и контейнерами. Она расширяема и может прозрачным образом декодировать изображения в разных форматах, идентифицируя их по файловым сигнатурам и другими эвристическими способами.
 
  
 
Ею должны, в общем случае, пользоваться программы, которым необходимо отображать картинки в их пользовательском интерфейсе (например, иконки на кнопках).
 
Ею должны, в общем случае, пользоваться программы, которым необходимо отображать картинки в их пользовательском интерфейсе (например, иконки на кнопках).
 
+
| http://board.kolibrios.org/viewtopic.php?f=24&t=1728
==libgfx==
+
|-
<small>''Основная статья: [[Libs-dev/libgfx]]''</small>
+
| '''[[Libs-dev/libgfx/ru|libgfx]]'''
 
+
| Библиотека предоставляет средства для рисования различных графических примитивов, таких как точки, линии, простые и закрашенные прямоугольники, круги и т.п. Она использует абстракцию холста, чтобы иметь возможность буферизированной отрисовки.
Библиотека предоставляет средства для рисования различных графических примитивов, таких как точки, линии, простые и закрашенные прямоугольники, круги и т.п. Она использует абстракцию холста, чтобы иметь возможность буферизированной отрисовки.
 
  
 
Ею должны, в общем случае, пользоваться программы, которым необходимо рисовать графику на экране (что, в принципе, относится ко всем существующим программам, так как Kolibri является полностью графической операционной системой).
 
Ею должны, в общем случае, пользоваться программы, которым необходимо рисовать графику на экране (что, в принципе, относится ко всем существующим программам, так как Kolibri является полностью графической операционной системой).
 +
|
 +
|-
 +
| '''[[Buf2d/ru|buf2d]]'''
 +
|  Эта библиотека создана для работы с 2d изображениями. С ее помощью можно создавать буфера с изображениями в памяти, и при необходимости выводить их на экран. Изображения можно накладывать одно на другое, поддерживается работа с прозрачными изображениями. Есть функции рисования линий, кривых Безье, прямоугольников, окружностей. Также есть функции для рисований воксельной графики.
 +
| http://board.kolibrios.org/viewtopic.php?f=24&t=1319
 +
|-
 +
| '''xml'''
 +
| Библиотека для разбора xml
 +
| http://board.kolibrios.org/viewtopic.php?f=24&t=1701
 +
|-
 +
| '''exif'''
 +
| Просмотр данных EXIF изображений
 +
| http://board.kolibrios.org/viewtopic.php?f=24&t=2757
 +
|-
 +
| '''libcrash'''
 +
| Криптографические хэш функции и проч.
 +
| http://board.kolibrios.org/viewtopic.php?f=24&t=2189
 +
|-
 +
| '''[[Console|console]]'''
 +
| Работа с консолью
 +
| http://board.kolibrios.org/viewtopic.php?f=24&t=930
 +
|-
 +
| '''[[Network_library|network]]'''
 +
| Some network functions
 +
|}
  
 
=Тестирование библиотек=
 
=Тестирование библиотек=
В исходных кодах присутствует директория <tt>.test</tt>, содержащая различные тесты библиотек. Они спроектированы независимыми друго от друга и должны генерировать (или собержать заранее сгенерированные) тестовые данные, которые приводят к одинаковым результатам независимо от порядка их выполнения.
+
В исходных кодах присутствует директория <tt>.test</tt>, содержащая различные тесты библиотек. Они спроектированы независимыми друг от друга и должны генерировать (или содержать заранее сгенерированные) тестовые данные, которые приводят к одинаковым результатам независимо от порядка их выполнения.
  
 
Программа [[Kiv/ru|KIV]] была изначально основана на одном из таких тестов (002), использующем библиотеки '''libio''' и '''libimg''', чтобы показать их возможности в небольшой графической программе, способной отображать картинку по пути, переданному в качестве параметра командной строки.
 
Программа [[Kiv/ru|KIV]] была изначально основана на одном из таких тестов (002), использующем библиотеки '''libio''' и '''libimg''', чтобы показать их возможности в небольшой графической программе, способной отображать картинку по пути, переданному в качестве параметра командной строки.
  
 
=Стиль кодирования=
 
=Стиль кодирования=
Все публичные функции содержатся в файле <tt><имя библиотеки>.asm</tt>, вспомогательные публичные определения &mdash; в файде <tt><имя библиотеки>.inc</tt>. Все остальные специфичные для библиотеки (приватные и вспомогательные) основные функции и определения отделены в файлы <tt><имя библиотеки>_p.asm</tt> и <tt><имя библиотеки>_p.inc</tt>. Также могут присутствовать отдельные файлы с говорящими именами, предоставляющие дополнительную функциональность.
+
Все публичные функции содержатся в файле <tt><имя библиотеки>.asm</tt>, вспомогательные публичные определения &mdash; в файле <tt><имя библиотеки>.inc</tt>. Все остальные специфичные для библиотеки (приватные и вспомогательные) основные функции и определения отделены в файлы <tt><имя библиотеки>_p.asm</tt> и <tt><имя библиотеки>_p.inc</tt>. Также могут присутствовать отдельные файлы с говорящими именами, предоставляющие дополнительную функциональность.
  
 
Функции, находящиеся в публичных файлах, используют соглашение об именовании <tt><имя области функции>.<имя функции></tt>. Функции, содержащиеся в приватных файлах, используют соглашение об именовании <tt><имя библиотеки>._.<имя функции></tt>. Это позволяет разделить код библиотек при статической сборке.
 
Функции, находящиеся в публичных файлах, используют соглашение об именовании <tt><имя области функции>.<имя функции></tt>. Функции, содержащиеся в приватных файлах, используют соглашение об именовании <tt><имя библиотеки>._.<имя функции></tt>. Это позволяет разделить код библиотек при статической сборке.
Line 47: Line 75:
 
* [[Libraries|Разъяснения по библиотекам KolibriOS]]
 
* [[Libraries|Разъяснения по библиотекам KolibriOS]]
  
[[Category:Coding]][[Category:Manuals]]
+
[[Category:Кодинг]][[Category:Руководства]]
 +
[[Category:Библиотеки]]

Latest revision as of 21:37, 10 June 2021

Имя библиотеки Краткое описание Тема на форуме
Box lib Библиотека box_lib.obj содержит разные элементы управления, которые можно использовать при написании приложений. http://board.kolibrios.org/viewtopic.php?f=24&t=1220
OpenDialog Является подобием Windows компонента Microsoft Common Dialog Control или его аналогов в Linux (там их вообще несколько разных присутствует), и служит для выбор пути.
libio Библиотека предоставляет средства для выполнения основных операций ввода-вывода, таких как открытие, закрытие, чтение, изменение, урезание файлов, получение и установка позиции файлового указателя. Также присутствуют методы для перебора файлов в пределах определённой директории с именами, соответствующими маске.

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

libini Библиотека предоставляет средства для работы с INI файлами, представляющими собой текстовые файлы с набором ключей и значений, которые пользователь имеет возможность изменять вручную в любом внешнем редакторе.

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

http://board.kolibrios.org/viewtopic.php?f=24&t=1114
libimg Библиотека предоставляет средства для работы с графическими файлами и контейнерами. Она расширяема и может прозрачным образом декодировать изображения в разных форматах, идентифицируя их по файловым сигнатурам и другими эвристическими способами.

Ею должны, в общем случае, пользоваться программы, которым необходимо отображать картинки в их пользовательском интерфейсе (например, иконки на кнопках).

http://board.kolibrios.org/viewtopic.php?f=24&t=1728
libgfx Библиотека предоставляет средства для рисования различных графических примитивов, таких как точки, линии, простые и закрашенные прямоугольники, круги и т.п. Она использует абстракцию холста, чтобы иметь возможность буферизированной отрисовки.

Ею должны, в общем случае, пользоваться программы, которым необходимо рисовать графику на экране (что, в принципе, относится ко всем существующим программам, так как Kolibri является полностью графической операционной системой).

buf2d Эта библиотека создана для работы с 2d изображениями. С ее помощью можно создавать буфера с изображениями в памяти, и при необходимости выводить их на экран. Изображения можно накладывать одно на другое, поддерживается работа с прозрачными изображениями. Есть функции рисования линий, кривых Безье, прямоугольников, окружностей. Также есть функции для рисований воксельной графики. http://board.kolibrios.org/viewtopic.php?f=24&t=1319
xml Библиотека для разбора xml http://board.kolibrios.org/viewtopic.php?f=24&t=1701
exif Просмотр данных EXIF изображений http://board.kolibrios.org/viewtopic.php?f=24&t=2757
libcrash Криптографические хэш функции и проч. http://board.kolibrios.org/viewtopic.php?f=24&t=2189
console Работа с консолью http://board.kolibrios.org/viewtopic.php?f=24&t=930
network Some network functions

Тестирование библиотек

В исходных кодах присутствует директория .test, содержащая различные тесты библиотек. Они спроектированы независимыми друг от друга и должны генерировать (или содержать заранее сгенерированные) тестовые данные, которые приводят к одинаковым результатам независимо от порядка их выполнения.

Программа KIV была изначально основана на одном из таких тестов (002), использующем библиотеки libio и libimg, чтобы показать их возможности в небольшой графической программе, способной отображать картинку по пути, переданному в качестве параметра командной строки.

Стиль кодирования

Все публичные функции содержатся в файле <имя библиотеки>.asm, вспомогательные публичные определения — в файле <имя библиотеки>.inc. Все остальные специфичные для библиотеки (приватные и вспомогательные) основные функции и определения отделены в файлы <имя библиотеки>_p.asm и <имя библиотеки>_p.inc. Также могут присутствовать отдельные файлы с говорящими именами, предоставляющие дополнительную функциональность.

Функции, находящиеся в публичных файлах, используют соглашение об именовании <имя области функции>.<имя функции>. Функции, содержащиеся в приватных файлах, используют соглашение об именовании <имя библиотеки>._.<имя функции>. Это позволяет разделить код библиотек при статической сборке.

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

Смотрите также