Throughout this document the term “YCP
module” was
mentioned repeatedly without providing a sharp definition. In fact the
term “module” is used quite loosely in the YaST
world,
because there are several kinds of modules
involved in different contexts. The following text shall lighten
this topic.
Different kinds of YCP modules
Generic YCP
modules
In principle every YCP
file that provides a distinct functionality
can be seen as a module. Typical representatives of this kind of
module are the inst_xxx.ycp
files that are part
of the YaST
installer. Modules of this kind mostly represent
rather self-contained functionality, e.g like
inst_keyboard.ycp
that provides the user dialog
for selecting a keyboard during installation. These modules are
usually called via CallFunction()
.
Library modules
This kind of module can be seen as what is called a library in
other programming languages. Usually these modules are a collection
of functions that must be included to be used.
As with other programming languages, including
in YCP
means merely text insertion that takes place each and every
time an include
is stated. This is often
adverse with respect to speed and memory consumption.
True YCP
modules
This kind of module is the most interesting one. True modules represent an “object oriented” approach to module design. Because the mechanisms associated with them deserve some special mention, the next section will cover this topic in more detail.