ERiC API-Referenz 43.3.2.0

Lade ...
Suche ...
Keine Treffer
otto_types.h
gehe zur Dokumentation dieser Datei
1#ifndef OTTO_TYPES_H_
2#define OTTO_TYPES_H_
3
4/**
5 * @file
6 * @brief Definition von Datenstrukturen und Datentypen
7 *
8 */
9
10/**
11 * @brief Handle auf eine Otto-Instanz
12 *
13 * Jede Funktion der Otto-API ist direkt oder indirekt an eine Otto-Instanz gebunden.
14 * Die Otto-Instanz enthält sämtliche veränderlichen Zustände von Otto.
15 *
16 * Es können mehrere Instanzen gleichzeitig existieren. Jede der
17 * Instanzen ist unabhängig von allen anderen. Verfügen mehrere Threads über
18 * jeweils ihre eigene Otto-Instanz, können sie diese Instanzen
19 * parallel verwenden.
20 *
21 * Eine Otto-Instanz kann zwischen Threads ausgetauscht werden. Sie darf aber nicht
22 * in zwei Threads gleichzeitig verwendet werden.
23 *
24 * @see
25 * - OttoInstanzErzeugen()
26 * - OttoInstanzFreigeben()
27 */
28 typedef struct OttoInstanz *OttoInstanzHandle;
29
30/**
31 * @brief Handle auf ein Sicherheitstoken zur Authentifizierung des
32 * Daten-Übermittlers oder -Abholers
33 */
34 typedef struct OttoZertifikat *OttoZertifikatHandle;
35
36/** @brief Handle auf einen Otto-Rückgabepuffer
37 *
38 * Ein Otto-Rückgabepuffer dient zur Übergabe von Daten vom Otto an
39 * die Anwendung. Die Anwendung erstellt dazu einen Otto-Rückgabepuffer
40 * und übergibt dessen Handle als Parameter einer API-Funktion an den Otto.
41 * Der Otto befüllt den Otto-Rückgabepuffer dann mit Daten.
42 *
43 * @note Eventuell bereits im Otto-Rückgabepuffer befindliche Daten werden beim
44 * Aufruf von API-Funktionen gelöscht. Ausgenommen davon sind natürlich die
45 * API-Funktionen mit dem Präfix "OttoRueckgabepuffer", die einen Otto-Rückgabepuffer
46 * selbst behandeln.
47 *
48 * @see
49 * - OttoRueckgabepufferErzeugen()
50 * - OttoRueckgabepufferFreigeben()
51 * - OttoRueckgabepufferInhalt()
52 * - OttoRueckgabepufferGroesse()
53 */
54 typedef struct OttoRueckgabepuffer *OttoRueckgabepufferHandle;
55
56/**
57 * @brief Handle auf eine Otto-Prüfsumme
58 *
59 * Um die Datenintegrität sicherzustellen, ist beim Versand von Daten
60 * an den OTTER-Server eine Prüfsumme über die Daten zu übermitteln.
61 *
62 * Diese Prüfsumme ist schon beim Verbindungsaufbau an die Server zu
63 * übermitteln und kann daher nicht während der Datenübertragung
64 * implizit gebildet werden, sondern muss vorab explizit berechnet werden.
65 */
66 typedef struct OttoPruefsumme *OttoPruefsummeHandle;
67
68/**
69 * @brief Handle auf ein Otto-Versandobjekt
70 *
71 * Über ein Versandobjekt können Daten blockweise an die OTTER-Server
72 * übermittelt werden.
73 */
74 typedef struct OttoVersand *OttoVersandHandle;
75
76/**
77 * @brief Handle auf ein Otto-Empfangsobjekt
78 *
79 * Über ein Empfangsobjekt können Daten blockweise vom OTTER-Server
80 * heruntergeladen werden.
81 */
82 typedef struct OttoEmpfang *OttoEmpfangHandle;
83
84/**
85 * @brief Aufzählung der Log-Ebenen von Otto
86 *
87 * Die Log-Meldungen von Otto sind in Ebenen angeordnet:
88 * von der höchsten Ebene mit den wichtigsten Fehlermeldungen
89 * bis hin zu niedrigsten Ebene mit einfachen Meldungen, die
90 * nur bei der Suche nach Fehlerursachen interessant sind.
91 *
92 * Standardmäßig werden nur Meldungen der beiden höchsten Ebenen
93 * (Fehler und Warnungen) protokolliert.
94 *
95 * Sollen auch Meldungen der niedrigeren Ebenen protokolliert werden,
96 * so kann über die Funktion OttoInstanzErzeugen() ein Callback vom
97 * Typ ::OttoLogCallback registriert werden, in dem die Meldungen
98 * nach der Ebene gefiltert werden können.
99 *
100 * @see
101 * + OttoInstanzErzeugen()
102 */
103 typedef enum {
104 /// Fehler, die zum Abbruch der gewünschten Aktion führen.
105 OTTOLOG_FEHLERMELDUNGEN = 4,
106
107 /// Hinweise auf Zustände, die zu Fehlern führen können.
108 OTTOLOG_WARNUNGEN = 3,
109
110 /// Grobe Informationen über den Programmablauf und Werte.
111 OTTOLOG_INFORMATIONEN = 2,
112
113 /// Feingranulare Informationen über den Programmablauf und Werte.
114 OTTOLOG_DEBUGMELDUNGEN = 1
115} OttoLogEbene;
116
117/**
118 * @brief Funktionstyp für einen Log-Callback, den eine Anwendung beim Erzeugen
119 * einer Otto-Instanz angeben kann.
120 *
121 * @return
122 * - 0 wenn die Log-Meldung erfolgreich entgegengenommen werden konnte,
123 * ungleich 0 im Fehlerfall.
124 * Momentan wird der Rückgabewert vom Otto jedoch ignoriert.
125 */
126 typedef int (*OttoLogCallback)( const char *instanzId,
127 const char *logZeitpunkt,
128 OttoLogEbene logEbene,
129 const char *logNachricht,
130 void *benutzerdaten );
131
132/**
133 * @brief Der Datentyp byteChar wird immer dann verwendet, wenn an diesem Parameter
134 * keine UTF-8 codierte Daten erwartet werden. Diese Daten werden ungeprüft verwendet.
135 */
136 typedef char byteChar;
137
138/**
139 * @brief Diese Struktur enthält alle Informationen, die Otto benötigt,
140 * um die Verbindung zum OTTER-Server oder dem ELSTER-eID-Server über
141 * einen Proxy aufzubauen.
142 */
143 typedef struct {
144
145 /**
146 * @brief Die Version der Struktur.
147 *
148 * Hier ist aktuell fest der Wert 1 zu setzen.
149 */
150 int version; // Aktuell immer auf 1 zu setzen
151
152 /**
153 * @brief Die URL des Proxies einschließlich Port.
154 *
155 * IPv6-Adressen sind in eckigen Klammern anzugeben.
156 * Otto unterstützt folgende Protokolle:
157 * - http
158 * - socks4
159 * - socks5
160 * .
161 * \b Beispiele:
162 * - mein.pro.xy:1234
163 * - http://203.0.113.0:1234
164 * - socks4://mein.pro.xy:1234
165 * - socks5://[2001:0DB8:AC10:FE01::]:1234
166 * .
167 * Dieses Element darf nicht NULL sein.
168 */
169 const byteChar *url;
170
171 /**
172 * @brief Der Benutzername für eine Proxy-Authentifizierung.
173 *
174 * Dieses Element darf NULL sein.
175 */
176 const byteChar *benutzerName;
177
178 /**
179 * @brief Das Passwort für eine Proxy-Authentifizierung.
180 *
181 * Dieses Element darf NULL sein.
182 */
183 const byteChar *benutzerPasswort;
184
185 /**
186 * @brief Die Authentifizierungsmethode, mit der der Proxy arbeitet.
187 *
188 * Folgende Methoden werden unterstützt:
189 * - "Any"
190 * - "Basic"
191 * - "Digest"
192 * - "DigestIE"
193 * - "NTLM"
194 * - "SPNEGO"
195 * .
196 * Mehrere Werte sind durch Kommas getrennt anzugeben.
197 * Die Groß-, Kleinschreibung der Werte wird ignoriert.
198 * Dieses Element darf NULL sein, wenn der Proxy keine
199 * Authentifizierung erfordert.
200 */
201 const char *authentifizierungsMethode;
202} OttoProxyKonfiguration;
203
204#endif /* OTTO_TYPES_H_ */
byteChar
char byteChar
Der Datentyp byteChar wird immer dann verwendet, wenn an diesem Parameter keine UTF-8 codierte Daten ...
Definition eric_types.h:53
OttoPruefsummeHandle
struct OttoPruefsumme * OttoPruefsummeHandle
Handle auf eine Otto-Prüfsumme.
Definition otto_types.h:66
OttoLogCallback
int(* OttoLogCallback)(const char *instanzId, const char *logZeitpunkt, OttoLogEbene logEbene, const char *logNachricht, void *benutzerdaten)
Funktionstyp für einen Log-Callback, den eine Anwendung beim Erzeugen einer Otto-Instanz angeben kann...
Definition otto_types.h:126
OttoInstanzHandle
struct OttoInstanz * OttoInstanzHandle
Handle auf eine Otto-Instanz.
Definition otto_types.h:28
OttoLogEbene
OttoLogEbene
Aufzählung der Log-Ebenen von Otto.
Definition otto_types.h:103
OTTOLOG_WARNUNGEN
@ OTTOLOG_WARNUNGEN
Hinweise auf Zustände, die zu Fehlern führen können.
Definition otto_types.h:108
OTTOLOG_DEBUGMELDUNGEN
@ OTTOLOG_DEBUGMELDUNGEN
Feingranulare Informationen über den Programmablauf und Werte.
Definition otto_types.h:114
OTTOLOG_FEHLERMELDUNGEN
@ OTTOLOG_FEHLERMELDUNGEN
Fehler, die zum Abbruch der gewünschten Aktion führen.
Definition otto_types.h:105
OTTOLOG_INFORMATIONEN
@ OTTOLOG_INFORMATIONEN
Grobe Informationen über den Programmablauf und Werte.
Definition otto_types.h:111
OttoRueckgabepufferHandle
struct OttoRueckgabepuffer * OttoRueckgabepufferHandle
Handle auf einen Otto-Rückgabepuffer.
Definition otto_types.h:54
OttoEmpfangHandle
struct OttoEmpfang * OttoEmpfangHandle
Handle auf ein Otto-Empfangsobjekt.
Definition otto_types.h:82
OttoZertifikatHandle
struct OttoZertifikat * OttoZertifikatHandle
Handle auf ein Sicherheitstoken zur Authentifizierung des Daten-Übermittlers oder -Abholers.
Definition otto_types.h:34
OttoVersandHandle
struct OttoVersand * OttoVersandHandle
Handle auf ein Otto-Versandobjekt.
Definition otto_types.h:74
OttoProxyKonfiguration
Diese Struktur enthält alle Informationen, die Otto benötigt, um die Verbindung zum OTTER-Server oder...
Definition otto_types.h:143
OttoProxyKonfiguration::benutzerPasswort
const byteChar * benutzerPasswort
Das Passwort für eine Proxy-Authentifizierung.
Definition otto_types.h:183
OttoProxyKonfiguration::authentifizierungsMethode
const char * authentifizierungsMethode
Die Authentifizierungsmethode, mit der der Proxy arbeitet.
Definition otto_types.h:201
OttoProxyKonfiguration::url
const byteChar * url
Die URL des Proxies einschließlich Port.
Definition otto_types.h:169
OttoProxyKonfiguration::benutzerName
const byteChar * benutzerName
Der Benutzername für eine Proxy-Authentifizierung.
Definition otto_types.h:176
OttoProxyKonfiguration::version
int version
Die Version der Struktur.
Definition otto_types.h:150