Libs-dev: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 19: Line 19:
=Libraries tests=
=Libraries tests=
There's a <tt>.test</tt> directory containing different libraries tests. They are designed to be independent and should generate (or contain pre-generated) test data which leads to same results disregarding the order tests are executed in.
There's a <tt>.test</tt> directory containing different libraries tests. They are designed to be independent and should generate (or contain pre-generated) test data which leads to same results disregarding the order tests are executed in.
[[Kiv/ru|KIV]] program is based on one of such tests (002) using libio and libimg libraries to show their capabilities in a small GUI application able to display picture at path supplied by command-line parameter.


=Coding style=
=Coding style=

Revision as of 10:32, 23 July 2010

Introduction

Libs-dev is a system libraries collection targeting different problematic programming areas.

Libraries description

Libs-dev now consists of four common-use libraries: libio (input-output programming), libini (INI-like files support), libimg (graphics files manipulation) and libgfx (drawing convenience API).

libio

Main article: Libs-dev/libio

libini

Main article: Libs-dev/libini

libimg

Main article: Libs-dev/libimg

libgfx

Main article: Libs-dev/libgfx

Libraries tests

There's a .test directory containing different libraries tests. They are designed to be independent and should generate (or contain pre-generated) test data which leads to same results disregarding the order tests are executed in.

KIV program is based on one of such tests (002) using libio and libimg libraries to show their capabilities in a small GUI application able to display picture at path supplied by command-line parameter.

Coding style

All the public functions are contained in <library name>.asm file, supporting public declarations in <library name>.inc file. All other library-specific (private and auxilary) core functions and declarations are separated into <library name>_p.asm and <library name>_p.inc files. There could also be separate files with self-describing names providing additional functionality.

Functions located in public source files use naming concention as in <function namespace name>.<function name>. Functions located in private source files use naming convention as in <library name>._.<function name>. This allows to separate libraries code when linking statically.

Specific type of function description comments is being used allowing documentation to be generated automatically in the future.