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>
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)
86 STACK_OF(OPENSSL_PSTRING) *data;
87 LHASH_OF(OPENSSL_STRING) **index;
88 int (**qual)(OPENSSL_STRING *);
92 OPENSSL_STRING *arg_row;
95 #ifndef OPENSSL_NO_BIO
99 TXT_DB *TXT_DB_read(
char *in,
int num);
100 long TXT_DB_write(
char *out,
TXT_DB *db);
102 int TXT_DB_create_index(
TXT_DB *db,
int field,
int (*qual)(OPENSSL_STRING *),
103 LHASH_HASH_FN_TYPE hash, LHASH_COMP_FN_TYPE cmp);
104 void TXT_DB_free(
TXT_DB *db);
105 OPENSSL_STRING *TXT_DB_get_by_index(
TXT_DB *db,
int idx, OPENSSL_STRING *value);
106 int TXT_DB_insert(
TXT_DB *db, OPENSSL_STRING *value);