Changeset 4
- Timestamp:
- 12/01/04 14:56:41 (4 years ago)
- Location:
- trunk/src
- Files:
-
- 8 modified
-
opensync_anchor.c (modified) (2 diffs)
-
opensync_db.c (modified) (3 diffs)
-
opensync_db.h (modified) (2 diffs)
-
opensync_env.c (modified) (1 diff)
-
opensync_group.c (modified) (3 diffs)
-
opensync_hashtable.c (modified) (2 diffs)
-
opensync_internals.h (modified) (1 diff)
-
opensync_mapping.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/opensync_anchor.c
r1 r4 2 2 #include "opensync_internals.h" 3 3 4 DB *osync_anchor_load_file(char *file )4 DB *osync_anchor_load_file(char *file, OSyncGroup *group) 5 5 { 6 DB *dbhandle = osync_db_open(file, "Anchor", DB_BTREE );6 DB *dbhandle = osync_db_open(file, "Anchor", DB_BTREE, group->dbenv); 7 7 return dbhandle; 8 8 } … … 12 12 g_assert(member); 13 13 char *filename = g_strdup_printf ("%s/anchor.db", member->configdir); 14 DB *dbhandle = osync_anchor_load_file(filename );14 DB *dbhandle = osync_anchor_load_file(filename, member->group); 15 15 g_free(filename); 16 16 return dbhandle; -
trunk/src/opensync_db.c
r1 r4 2 2 #include "opensync_internals.h" 3 3 4 DB *osync_db_open(char *filename, char *dbname, int type) 4 DB_ENV *osync_db_setup(char *configdir, FILE *errfp) 5 { 6 DB_ENV *dbenv; 7 int ret; 8 9 if ((ret = db_env_create(&dbenv, 0)) != 0) { 10 fprintf(errfp, "opensync: %s\n", db_strerror(ret)); 11 return (NULL); 12 } 13 dbenv->set_errfile(dbenv, errfp); 14 dbenv->set_errpfx(dbenv, "opensync"); 15 16 if ((ret = dbenv->set_cachesize(dbenv, 0, 5 * 1024 * 1024, 0)) != 0) { 17 dbenv->err(dbenv, ret, "set_cachesize"); 18 goto err; 19 } 20 21 if ((ret = dbenv->set_data_dir(dbenv, "db")) != 0) { 22 dbenv->err(dbenv, ret, "set_data_dir: db"); 23 goto err; 24 } 25 26 if ((ret = dbenv->open(dbenv, configdir, DB_CREATE | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN | DB_RECOVER | DB_PRIVATE | DB_THREAD, 0)) != 0) { 27 dbenv->err(dbenv, ret, "environment open: %s", configdir); 28 goto err; 29 } 30 31 return (dbenv); 32 33 err: 34 (void)dbenv->close(dbenv, 0); 35 return (NULL); 36 } 37 38 DB *osync_db_open(char *filename, char *dbname, int type, DB_ENV *dbenv) 5 39 { 6 40 int ret; 7 41 DB *dbp; 8 if ((ret = db_create(&dbp, NULL, 0)) != 0) {42 if ((ret = db_create(&dbp, dbenv, 0)) != 0) { 9 43 printf("db_create: %s\n", db_strerror(ret)); 10 44 return NULL; … … 63 97 } 64 98 65 DB *osync_db_open_secondary(DB *firstdb, char *filename, char *dbname, int (*callback)(DB *, const DBT *, const DBT *, DBT *) )99 DB *osync_db_open_secondary(DB *firstdb, char *filename, char *dbname, int (*callback)(DB *, const DBT *, const DBT *, DBT *), DB_ENV *dbenv) 66 100 { 67 101 DB *sdbp = NULL; … … 69 103 int (*secfunc)(DB *, const DBT *, const DBT *, DBT *); 70 104 71 if ((ret = db_create(&sdbp, NULL, 0)) != 0) {105 if ((ret = db_create(&sdbp, dbenv, 0)) != 0) { 72 106 printf("sec_db_create: %s\n", db_strerror(ret)); 73 107 return NULL; -
trunk/src/opensync_db.h
r1 r4 1 DB *osync_db_open(char *filename, char *dbname, int type );1 DB *osync_db_open(char *filename, char *dbname, int type, DB_ENV *dbenv); 2 2 osync_bool osync_db_put(DB *dbp, void *key, int keysize, void *data, int datasize); 3 3 osync_bool osync_db_del(DB *dbp, void *key, int keysize); … … 8 8 void osync_db_cursor_close(DBC *dbcp); 9 9 osync_bool osync_db_cursor_next_sec(DBC *dbcp, void **pkey, void **skey, void **data); 10 DB *osync_db_open_secondary(DB *firstdb, char *filename, char *dbname, int (*callback)(DB *, const DBT *, const DBT *, DBT *) );10 DB *osync_db_open_secondary(DB *firstdb, char *filename, char *dbname, int (*callback)(DB *, const DBT *, const DBT *, DBT *), DB_ENV *dbenv); 11 11 u_long osync_db_create_unique_id(DB *dbp); 12 12 void osync_db_sync(DB *dbp); 13 13 osync_bool osync_db_put_dbt(DB *dbp, DBT *key, DBT *data); 14 DB_ENV *osync_db_setup(char *configdir, FILE *errfp); -
trunk/src/opensync_env.c
r2 r4 21 21 os_env->groups = g_list_append(os_env->groups, group); 22 22 } 23 24 /*int osync_add_group(OSyncEnv *os_env, OSyncGroup *group)25 {26 int index;27 index = g_list_index(os_env->groups, group);28 if (index == -1) {29 index = g_list_length(os_env->groups);30 _osync_append_group(os_env, group);31 osync_debug("os_env", 3, "Appending group %s to list with index %i", osync_group_get_name(group), index);32 } else {33 osync_debug("os_env", 3, "Found group %s in list with index %i", osync_group_get_name(group), index);34 }35 return index;36 }*/37 23 38 24 osync_bool osync_init(OSyncEnv *os_env) -
trunk/src/opensync_group.c
r2 r4 9 9 10 10 filename = g_strdup_printf("%s/group%i", osync_env_get_configdir(osinfo), g_random_int_range(1, 1000000)); 11 //group->name = g_path_get_basename(filename);12 11 group->configdir = filename; 13 12 group->env = osinfo; 14 13 osync_debug("OSGRP", 3, "Generated new group:"); 15 //osync_debug("OSMEM", 3, "Name: %s", group->name);16 14 osync_debug("OSGRP", 3, "Configdirectory: %s", filename); 17 15 return group; … … 46 44 osync_debug("OSGRP", 3, "Creating configdirectory %s", group->configdir); 47 45 mkdir(group->configdir, 0777); 46 char *dbdir = g_strdup_printf("%s/db", group->configdir); 47 mkdir(dbdir, 0777); 48 g_free(dbdir); 48 49 } 49 50 … … 123 124 } 124 125 } 126 char *dbdir = g_strdup_printf("%s/db", group->configdir); 127 char *logfile = g_strdup_printf("%s/group.log", dbdir); 128 FILE *log = fopen(logfile, "rw"); 129 group->dbenv = osync_db_setup(dbdir, log); 130 g_free(dbdir); 131 g_free(logfile); 125 132 osync_env_append_group(env, group); 126 133 return group; -
trunk/src/opensync_hashtable.c
r1 r4 22 22 } 23 23 24 osync_bool osync_hashtable_load_file(OSyncHashTable *table, char *file )24 osync_bool osync_hashtable_load_file(OSyncHashTable *table, char *file, OSyncGroup *group) 25 25 { 26 table->dbhandle = osync_db_open(file, "Hash", DB_BTREE );26 table->dbhandle = osync_db_open(file, "Hash", DB_BTREE, group->dbenv); 27 27 g_assert(table->dbhandle); 28 28 return TRUE; … … 33 33 g_assert(member != NULL); 34 34 char *filename = g_strdup_printf ("%s/hash.table", member->configdir); 35 osync_hashtable_load_file(table, filename );35 osync_hashtable_load_file(table, filename, member->group); 36 36 g_free(filename); 37 37 return TRUE; //FIXME -
trunk/src/opensync_internals.h
r2 r4 54 54 gchar *configdir; 55 55 OSyncEnv *env; 56 DB_ENV *dbenv; 56 57 void *data; 57 58 }; -
trunk/src/opensync_mapping.c
r2 r4 275 275 g_assert(table->db_path != NULL); 276 276 char *filename = g_strdup_printf("%s/change.db", table->db_path); 277 table->entrytable = osync_db_open(filename, NULL, DB_BTREE );277 table->entrytable = osync_db_open(filename, NULL, DB_BTREE, table->group->dbenv); 278 278 g_free(filename); 279 279 filename = g_strdup_printf("%s/mapping.db", table->db_path); 280 table->maptable = osync_db_open_secondary(table->entrytable, filename, NULL, getmapid );280 table->maptable = osync_db_open_secondary(table->entrytable, filename, NULL, getmapid, table->group->dbenv); 281 281 g_free(filename); 282 282
