Elektra
0.8.14
|
intensively (except for file header).
This document provides an introduction in how the source code of libelektra is organized and how and where to add functionality.
Make sure to read DESIGN together with this document.
After you downloaded and unpacked Elektra you see untypically many folders. The reason is that Elektra project consists of many activities.
The most important are:
libelektra is the ANSI/ISO C-Core which does interacts between the user and the plugins.
The plugins have all kinds of dependencies. It is the responsibility of the plugins to find and check them using CMake. The same guidelines apply for all code in the repository including the plugins.
libloader
is responsible for loading the backend modules. It works for various operating systems by using libltdl
, but has an optimized code for static linking and win32.
kdb is the commandline-tool to access and initialize the Elektra database.
It is only allowed to break a guideline if there is a good reason for it. When doing so, document the fact either in the commit message, or as comment next to the code.
Of course all rules of good software engineering apply, like to use good names, make software testable and reusable. The purpose of the guidelines is to have a consistent style, not to teach programming.
If you see broken guidelines do not hesitate to fix them. At least put a TODO marker to make the places visible.
If you see inconsistency do not hesitate to talk about it with the intent to add a new rule here.
See DESIGN document too, they complement each other.
/**/
with doxygen style for functions.//
for single line statements about the code in the next line.*
are next to the variable names.const
as much as possible.static
methods if they should not be externally visible..c
, Header files .h
.elektra
for internal usage. External API either starts with ks
, key
or kdb
.Example: src/libelektra/kdb.c
.cpp
, Header files .hpp
.static
, but anonymous namespaces.Example: src/bindings/cpp/include/kdb.hpp
doxygen
is used to document the API and to build the html and pdf output. We support also the import of markdown pages, but a minimum version of 1.8.8 of Doxygen is required for this feature (Anyways you can find the API Doc online). Links between markdown files will be converted with the Markdown Link Converter. Markdown pages are used in the pdf, therefore watch your characters and provide a proper encoding!
@
to start doxygen tags\copydetails
, @copybrief
and @copydetails
intensively (except for file header).Files should start with:
/** * @file * * @brief <short statement about the content of the file> * * @copyright BSD License (see doc/COPYING or http://www.libelektra.org) */
Note: