_cal_server_create_file();
cal_server_schema_check();
cal_server_update();
+
_cal_server_init();
cal_server_alarm_init();
cal_server_account_init();
+ cal_server_contacts_init();
guint id;
id = cal_server_dbus_init();
_cal_server_main();
cal_time_u_cleanup();
+ cal_server_contacts_deinit();
cal_server_account_deinit();
cal_server_alarm_deinit();
+
_cal_server_deinit();
cal_server_dbus_deinit(id);
cal_inotify_deinit();
static gpointer _cal_server_contacts_sync_main(gpointer user_data)
{
int ret = CALENDAR_ERROR_NONE;
- RETV_IF(NULL == user_data, NULL);
while (1) {
/*
return NULL;
}
-void cal_server_contacts_sync_start(void *user_data)
+static void cal_server_contacts_sync_start(void)
{
CAL_FN_CALL();
g_mutex_init(&_cal_server_contacts_sync_mutex);
g_cond_init(&_cal_server_contacts_sync_cond);
_cal_server_contacts_sync_thread = g_thread_new(CAL_SERVER_CONTACTS_SYNC_THREAD_NAME,
- _cal_server_contacts_sync_main, user_data);
+ _cal_server_contacts_sync_main, NULL);
}
/* don't use mutex. */
g_cond_signal(&_cal_server_contacts_sync_cond);
}
+static void _changed_cb(const char* view_uri, void *user_data)
+{
+ cal_server_contacts_sync_start();
+}
+
+int cal_server_contacts_init(void)
+{
+ int ret = 0;
+
+ ret = contacts_connect();
+ if (CONTACTS_ERROR_NONE != ret) {
+ ERR("contacts_connect() Fail(%d)", ret);
+ return ret;
+ }
+
+ ret = contacts_db_add_changed_cb(_contacts_event._uri, _changed_cb, NULL);
+ if (CONTACTS_ERROR_NONE != ret)
+ WARN("contacts_db_add_changed_cb() Fail(%d)", ret);
+
+ ret = contacts_db_add_changed_cb(_contacts_name._uri, _changed_cb, NULL);
+ if (CONTACTS_ERROR_NONE != ret)
+ WARN("contacts_db_add_changed_cb() Fail(%d)", ret);
+
+ cal_server_contacts_sync_start();
+
+ return CALENDAR_ERROR_NONE;
+}
+
+void cal_server_contacts_deinit(void)
+{
+ contacts_db_remove_changed_cb(_contacts_event._uri, _changed_cb, NULL);
+ contacts_db_remove_changed_cb(_contacts_name._uri, _changed_cb, NULL);
+
+ contacts_disconnect();
+}
#ifndef __CAL_SERVER_CONTACTS_H__
#define __CAL_SERVER_CONTACTS_H__
-int cal_server_contacts(void);
void cal_server_contacts_delete(int account_id);
-void cal_server_contacts_sync_start(void *user_data);
+int cal_server_contacts_init(void);
+void cal_server_contacts_deinit(void);
#endif /* __CAL_SERVER_CONTACTS_H__ */