Accept topic changes from servers that do not send topic-set timestamps (fixes SF...
[ircu2.10.12-pk.git] / libs / dbprim / doc / latex / group__dbprim__key.tex
1 \section{Database keys}
2 \label{group__dbprim__key}\index{Database keys@{Database keys}}
3 \subsection*{Defines}
4 \begin{CompactItemize}
5 \item 
6 \#define {\bf DB\_\-KEY\_\-INIT}(key, size)
7 \begin{CompactList}\small\item\em Database key static initializer.\item\end{CompactList}\item 
8 \#define {\bf dk\_\-key}(key)
9 \begin{CompactList}\small\item\em Database key accessor macro.\item\end{CompactList}\item 
10 \#define {\bf dk\_\-len}(key)
11 \begin{CompactList}\small\item\em Database key length accessor macro.\item\end{CompactList}\end{CompactItemize}
12 \subsection*{Typedefs}
13 \begin{CompactItemize}
14 \item 
15 typedef struct \_\-db\_\-key\_\-s {\bf db\_\-key\_\-t}
16 \begin{CompactList}\small\item\em Database key.\item\end{CompactList}\end{CompactItemize}
17
18
19 \subsection{Detailed Description}
20 This module contains interfaces common to all database modules--mainly the macros concerned with manipulating database keys and the definition of the key structure.
21
22 The key may be any arbitrary pointer, including a pointer to a string. Everything that handles a key either copies the contents of the {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})} structure or passes it to a user-defined function. If required, as in the case of a string, a length may also be represented in the key structure. 
23
24 \subsection{Define Documentation}
25 \index{dbprim_key@{dbprim\_\-key}!DB_KEY_INIT@{DB\_\-KEY\_\-INIT}}
26 \index{DB_KEY_INIT@{DB\_\-KEY\_\-INIT}!dbprim_key@{dbprim\_\-key}}
27 \subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define DB\_\-KEY\_\-INIT(key, size)}\label{group__dbprim__key_a1}
28
29
30
31
32  This macro allows a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})} to be initialized statically.\begin{Desc}
33 \item[{\bf Parameters: }]\par
34 \begin{description}
35 \item[
36 {\em key}]A pointer to the key. \item[
37 {\em size}]Size of the key. \end{description}
38 \end{Desc}
39 \index{dbprim_key@{dbprim\_\-key}!dk_key@{dk\_\-key}}
40 \index{dk_key@{dk\_\-key}!dbprim_key@{dbprim\_\-key}}
41 \subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define dk\_\-key(key)}\label{group__dbprim__key_a2}
42
43
44
45
46  This macro allows access to the key field of a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})}. It may be used as an lvalue in order to assign a key to a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})}.\begin{Desc}
47 \item[{\bf Parameters: }]\par
48 \begin{description}
49 \item[
50 {\em key}]A pointer to a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})}. \end{description}
51 \end{Desc}
52 \begin{Desc}
53 \item[{\bf Returns: }]\par
54 A pointer to a key ({\tt void $\ast$}). \end{Desc}
55 \index{dbprim_key@{dbprim\_\-key}!dk_len@{dk\_\-len}}
56 \index{dk_len@{dk\_\-len}!dbprim_key@{dbprim\_\-key}}
57 \subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define dk\_\-len(key)}\label{group__dbprim__key_a3}
58
59
60
61
62  This macro allows access to the key length field of a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})}. It may be used as an lvalue in order to assign a length to a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})}.\begin{Desc}
63 \item[{\bf Parameters: }]\par
64 \begin{description}
65 \item[
66 {\em key}]A pointer to a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})}. \end{description}
67 \end{Desc}
68 \begin{Desc}
69 \item[{\bf Returns: }]\par
70 An {\tt int} describing the length of the key. \end{Desc}
71
72
73 \subsection{Typedef Documentation}
74 \index{dbprim_key@{dbprim\_\-key}!db_key_t@{db\_\-key\_\-t}}
75 \index{db_key_t@{db\_\-key\_\-t}!dbprim_key@{dbprim\_\-key}}
76 \subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct \_\-db\_\-key\_\-s db\_\-key\_\-t}\label{group__dbprim__key_a0}
77
78
79
80
81  This structure is a generic key containing a void $\ast$ pointer and a length parameter. It should be accessed with $\ast$ {\bf dk\_\-key}() {\rm (p.\,\pageref{group__dbprim__key_a2})} and {\bf dk\_\-len}() {\rm (p.\,\pageref{group__dbprim__key_a3})}.