Git init
[pkgs/e/elektra.git] / doc / api.xml
1 <!--
2 $Id$
3 -->
4 <section id="api"><title>Example C Program</title>
5         <para>Elektra's API consists of 3 classes of objects and methods to manipulate them. The main implementation of the library is written in C and is <ulink url="elektra-api/html/index.html">fully documented in Doxygen</ulink>.</para>
6         <graphic srccredit="classes" fileref="images/classes.png" label="the classes" align="center"/>
7         <para>The classes are:</para>
8         <variablelist>
9                 <varlistentry><term><type>KDB</type></term>
10                         <listitem><simpara>A class of static methods only. You can't instantiate an object of this class. All the business logic for retrieving and commiting key data to physical media is owned by this class. Example methods are <function>kdbSetKey</function>, <function>kdbGetKey</function>, <function>kdbGetValue</function>, <function>kdbGetChildKeys</function>, etc. This last is one of the most powerfull, returning a <type>KeySet</type> containing all child keys of a folder key, with the option to retrieve them recursively, sorted, dereferencing links, etc.</simpara></listitem>
11                 </varlistentry>
12                 <varlistentry><term><type>Key</type></term>
13                         <listitem><simpara>The obvious entity class. Contains key's name, data and metadata. Example of its methods are <function>keyInit</function>, <function>keySetName</function>, <function>keySetUID</function>, <function>keyGetString</function>, <function>keyIsDir</function>, etc.</simpara></listitem>
14                 </varlistentry>
15                 <varlistentry><term><type>KeySet</type></term>
16                         <listitem><simpara>A group of <type>Key</type>s. Real applications use to get and set several keys, and this class is used to store corelated keys that were retrieved together in one shot. Example of its methods are <function>ksInsert</function>, <function>ksAppend</function>, <function>ksInsertKeys</function>, etc.</simpara></listitem>
17                 </varlistentry>
18         </variablelist>
19         <para>The API is documented in manual pages <citerefentry><refentrytitle>key</refentrytitle><manvolnum>3</manvolnum></citerefentry> and <citerefentry><refentrytitle>kdb</refentrytitle><manvolnum>3</manvolnum></citerefentry> or you can <ulink url="elektra-api/html/index.html">browse</ulink> or <ulink url="elektra-api.tar.gz">download</ulink> the full API documentation.</para>
20
21         &apiexample;
22         
23 </section>