Пример #1
0
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
  );
}
Пример #3
0
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
  );
}
Пример #4
0
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
  );
}