static void inf_adopted_session_schedule_noop_timer(InfAdoptedSession* session) { InfAdoptedSessionPrivate* priv; time_t current; time_t sched; priv = INF_ADOPTED_SESSION_PRIVATE(session); if(priv->noop_timeout != NULL) { inf_io_remove_timeout(priv->io, priv->noop_timeout); priv->noop_timeout = NULL; } if(priv->next_noop_user != NULL) { current = time(NULL); sched = priv->next_noop_user->noop_time + INF_ADOPTED_SESSION_NOOP_INTERVAL; if(sched >= current) sched -= current; else sched = 0; priv->noop_timeout = inf_io_add_timeout( priv->io, sched * 1000, inf_adopted_session_noop_timeout_func, session, NULL ); } }
static void infinoted_directory_sync_session_start(InfinotedDirectorySync* dsync, InfinotedDirectorySyncSession* session) { InfIo* io; io = infd_directory_get_io(dsync->directory); g_assert(session->timeout == NULL); session->timeout = inf_io_add_timeout( io, dsync->sync_interval * 1000, infinoted_directory_sync_session_timeout_cb, session, NULL ); }
static void infinoted_autosave_session_start(InfinotedAutosave* autosave, InfinotedAutosaveSession* session) { InfIo* io; io = infd_directory_get_io(autosave->directory); g_assert(session->timeout_handle == NULL); session->timeout_handle = inf_io_add_timeout( io, autosave->autosave_interval * 1000, infinoted_autosave_session_timeout_cb, session, NULL ); }
static void infinoted_plugin_autosave_start(InfinotedPluginAutosaveSessionInfo* info) { InfIo* io; io = infd_directory_get_io( infinoted_plugin_manager_get_directory(info->plugin->manager) ); g_assert(info->timeout == NULL); info->timeout = inf_io_add_timeout( io, info->plugin->interval * 1000, infinoted_plugin_autosave_timeout_cb, info, NULL ); }