59 #ifndef HEADER_TXT_DB_H
60 # define HEADER_TXT_DB_H
62 # include <openssl/opensslconf.h>
63 # ifndef OPENSSL_NO_BIO
64 # include <openssl/bio.h>
66 # include <openssl/stack.h>
67 # include <openssl/lhash.h>
69 # define DB_ERROR_OK 0
70 # define DB_ERROR_MALLOC 1
71 # define DB_ERROR_INDEX_CLASH 2
72 # define DB_ERROR_INDEX_OUT_OF_RANGE 3
73 # define DB_ERROR_NO_INDEX 4
74 # define DB_ERROR_INSERT_INDEX_CLASH 5
80 typedef OPENSSL_STRING *OPENSSL_PSTRING;
81 DECLARE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING)
85 STACK_OF(OPENSSL_PSTRING) *data;
86 LHASH_OF(OPENSSL_STRING) **index;
87 int (**qual) (OPENSSL_STRING *);
91 OPENSSL_STRING *arg_row;
94 # ifndef OPENSSL_NO_BIO
98 TXT_DB *TXT_DB_read(
char *in,
int num);
99 long TXT_DB_write(
char *out,
TXT_DB *db);
101 int TXT_DB_create_index(
TXT_DB *db,
int field,
int (*qual) (OPENSSL_STRING *),
102 LHASH_HASH_FN_TYPE hash, LHASH_COMP_FN_TYPE cmp);
103 void TXT_DB_free(
TXT_DB *db);
104 OPENSSL_STRING *TXT_DB_get_by_index(
TXT_DB *db,
int idx,
105 OPENSSL_STRING *value);
106 int TXT_DB_insert(
TXT_DB *db, OPENSSL_STRING *value);