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