18#include "libical_icalss_export.h"
23typedef struct icalbdbset_impl icalbdbset;
25enum icalbdbset_subdb_type
32typedef enum icalbdbset_subdb_type icalbdbset_subdb_type;
36 void (*logDbFunc)(
const DB_ENV *,
37 const char *,
const char *));
39LIBICAL_ICALSS_EXPORT icalset *icalbdbset_init(icalset *set,
const char *dsn,
void *options);
41LIBICAL_ICALSS_EXPORT
int icalbdbset_cleanup(
void);
43LIBICAL_ICALSS_EXPORT
void icalbdbset_checkpoint(
void);
45LIBICAL_ICALSS_EXPORT
void icalbdbset_rmdbLog(
void);
49LIBICAL_ICALSS_EXPORT icalset *
icalbdbset_new(
const char *database_filename,
50 icalbdbset_subdb_type subdb_type,
51 int dbtype, u_int32_t flag);
55 const char *sub_database,
56 int (*callback)(DB *db,
62LIBICAL_ICALSS_EXPORT
char *icalbdbset_parse_data(DBT *dbt,
char *(*pfunc)(
const DBT *dbt));
64LIBICAL_ICALSS_EXPORT
void icalbdbset_free(icalset *set);
67LIBICAL_ICALSS_EXPORT
int icalbdbset_acquire_cursor(DB *dbp, DB_TXN *tid, DBC **rdbcp);
69LIBICAL_ICALSS_EXPORT
int icalbdbset_cget(DBC *dbcp, DBT *key, DBT *data,
70 u_int32_t access_method);
72LIBICAL_ICALSS_EXPORT
int icalbdbset_cput(DBC *dbcp, DBT *key, DBT *data,
73 u_int32_t access_method);
75LIBICAL_ICALSS_EXPORT
int icalbdbset_get_first(DBC *dbcp, DBT *key, DBT *data);
77LIBICAL_ICALSS_EXPORT
int icalbdbset_get_next(DBC *dbcp, DBT *key, DBT *data);
79LIBICAL_ICALSS_EXPORT
int icalbdbset_get_last(DBC *dbcp, DBT *key, DBT *data);
81LIBICAL_ICALSS_EXPORT
int icalbdbset_get_key(DBC *dbcp, DBT *key, DBT *data);
83LIBICAL_ICALSS_EXPORT
int icalbdbset_delete(DB *dbp, DBT *key);
85LIBICAL_ICALSS_EXPORT
int icalbdbset_put(DB *dbp, DBT *key, DBT *data, u_int32_t access_method);
87LIBICAL_ICALSS_EXPORT
int icalbdbset_get(DB *dbp, DB_TXN *tid, DBT *key, DBT *data,
92LIBICAL_ICALSS_EXPORT
const char *icalbdbset_subdb(icalset *set);
96LIBICAL_ICALSS_EXPORT
void icalbdbset_mark(icalset *set);
100LIBICAL_ICALSS_EXPORT
icalerrorenum icalbdbset_add_component(icalset *set, icalcomponent *child);
102LIBICAL_ICALSS_EXPORT
icalerrorenum icalbdbset_remove_component(icalset *set,
103 icalcomponent *child);
105LIBICAL_ICALSS_EXPORT
int icalbdbset_count_components(icalset *set,
icalcomponent_kind kind);
114LIBICAL_ICALSS_EXPORT icalcomponent *icalbdbset_fetch(icalset *set,
117LIBICAL_ICALSS_EXPORT
int icalbdbset_has_uid(icalset *set,
const char *uid);
119LIBICAL_ICALSS_EXPORT icalcomponent *icalbdbset_fetch_match(icalset *set,
const icalcomponent *c);
121LIBICAL_ICALSS_EXPORT
icalerrorenum icalbdbset_modify(icalset *set, icalcomponent *old,
122 icalcomponent *newc);
125LIBICAL_ICALSS_EXPORT
icalerrorenum icalbdbset_set_cluster(icalset *set, icalcomponent *cluster);
127LIBICAL_ICALSS_EXPORT
icalerrorenum icalbdbset_free_cluster(icalset *set);
129LIBICAL_ICALSS_EXPORT icalcomponent *icalbdbset_get_cluster(icalset *set);
136LIBICAL_ICALSS_EXPORT icalcomponent *icalbdbset_get_first_component(icalset *set);
138LIBICAL_ICALSS_EXPORT icalcomponent *icalbdbset_get_next_component(icalset *set);
141LIBICAL_ICALSS_EXPORT
icalsetiter icalbdbset_begin_component(icalset *set,
143 icalgauge *gauge,
const char *tzid);
145LIBICAL_ICALSS_EXPORT icalcomponent *icalbdbset_form_a_matched_recurrence_component(
icalsetiter *
148LIBICAL_ICALSS_EXPORT icalcomponent *icalbdbsetiter_to_next(icalset *set,
icalsetiter *i);
150LIBICAL_ICALSS_EXPORT icalcomponent *icalbdbsetiter_to_prior(icalset *set,
icalsetiter *i);
155LIBICAL_ICALSS_EXPORT icalcomponent *icalbdbset_get_component(icalset *set);
157LIBICAL_ICALSS_EXPORT DB_ENV *icalbdbset_get_env(
void);
159LIBICAL_ICALSS_EXPORT
int icalbdbset_begin_transaction(DB_TXN *parent_id, DB_TXN **txnid);
161LIBICAL_ICALSS_EXPORT
int icalbdbset_commit_transaction(DB_TXN *txnid);
163LIBICAL_ICALSS_EXPORT DB *icalbdbset_bdb_open(
const char *path,
165 int type,
int mode, u_int32_t flag);
168typedef struct icalbdbset_options {
169 icalbdbset_subdb_type subdb;
173 char *(*pfunc)(
const DBT *dbt);
175 int (*callback)(DB *db,
177 const DBT *dbt1,
const DBT *dbt2, DBT *dbt3);
icalerrorenum icalbdbset_select(icalset *set, icalgauge *gauge)
DB * icalbdbset_bdb_open_secondary(DB *dbp, const char *database, const char *sub_database, int(*callback)(DB *db, const DBT *dbt1, const DBT *dbt2, DBT *dbt3), int type)
void icalbdbset_clear(icalset *set)
int icalbdbset_init_dbenv(char *db_env_dir, void(*logDbFunc)(const DB_ENV *, const char *, const char *))
const char * icalbdbset_path(icalset *set)
icalcomponent * icalbdbset_get_current_component(icalset *set)
icalset * icalbdbset_new(const char *database_filename, icalbdbset_subdb_type subdb_type, int dbtype, u_int32_t flag)
icalerrorenum icalbdbset_commit(icalset *set)
icalerrorenum
Represents the different types of errors that can be triggered in libical.
Icalset is the "base class" for representations of a collection of iCal components.