|
Packit Service |
de44cd |
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
|
Packit Service |
de44cd |
/*
|
|
Packit Service |
de44cd |
* Copyright (C) 2017 Red Hat, Inc. (www.redhat.com)
|
|
Packit Service |
de44cd |
*
|
|
Packit Service |
de44cd |
* This library is free software: you can redistribute it and/or modify it
|
|
Packit Service |
de44cd |
* under the terms of the GNU Lesser General Public License as published by
|
|
Packit Service |
de44cd |
* the Free Software Foundation.
|
|
Packit Service |
de44cd |
*
|
|
Packit Service |
de44cd |
* This library is distributed in the hope that it will be useful, but
|
|
Packit Service |
de44cd |
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
Packit Service |
de44cd |
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
Packit Service |
de44cd |
* for more details.
|
|
Packit Service |
de44cd |
*
|
|
Packit Service |
de44cd |
* You should have received a copy of the GNU Lesser General Public License
|
|
Packit Service |
de44cd |
* along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
Packit Service |
de44cd |
*/
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
/**
|
|
Packit Service |
de44cd |
* SECTION: e-config-lookup-worker
|
|
Packit Service |
de44cd |
* @include: e-util/e-util.h
|
|
Packit Service |
de44cd |
* @short_description: Configuration lookup worker interface
|
|
Packit Service |
de44cd |
*
|
|
Packit Service |
de44cd |
* #EConfigLookupWorker is an interface which runs the configuration look up.
|
|
Packit Service |
de44cd |
**/
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
#include "evolution-config.h"
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
#include <libedataserver/libedataserver.h>
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
#include "e-config-lookup.h"
|
|
Packit Service |
de44cd |
#include "e-util-enums.h"
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
#include "e-config-lookup-worker.h"
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
G_DEFINE_QUARK (e-config-lookup-worker-error-quark, e_config_lookup_worker_error)
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
G_DEFINE_INTERFACE (EConfigLookupWorker, e_config_lookup_worker, G_TYPE_OBJECT)
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
static void
|
|
Packit Service |
de44cd |
e_config_lookup_worker_default_init (EConfigLookupWorkerInterface *iface)
|
|
Packit Service |
de44cd |
{
|
|
Packit Service |
de44cd |
iface->get_display_name = NULL;
|
|
Packit Service |
de44cd |
iface->run = NULL;
|
|
Packit Service |
de44cd |
}
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
/**
|
|
Packit Service |
de44cd |
* e_config_lookup_worker_get_display_name:
|
|
Packit Service |
de44cd |
* @lookup_worker: an #EConfigLookupWorker
|
|
Packit Service |
de44cd |
*
|
|
Packit Service |
de44cd |
* Returns: human readable display name of this @lookup_worker
|
|
Packit Service |
de44cd |
*
|
|
Packit Service |
de44cd |
* Since: 3.28
|
|
Packit Service |
de44cd |
**/
|
|
Packit Service |
de44cd |
const gchar *
|
|
Packit Service |
de44cd |
e_config_lookup_worker_get_display_name (EConfigLookupWorker *lookup_worker)
|
|
Packit Service |
de44cd |
{
|
|
Packit Service |
de44cd |
EConfigLookupWorkerInterface *iface;
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
g_return_val_if_fail (E_IS_CONFIG_LOOKUP_WORKER (lookup_worker), NULL);
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
iface = E_CONFIG_LOOKUP_WORKER_GET_INTERFACE (lookup_worker);
|
|
Packit Service |
de44cd |
g_return_val_if_fail (iface != NULL, NULL);
|
|
Packit Service |
de44cd |
g_return_val_if_fail (iface->get_display_name != NULL, NULL);
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
return iface->get_display_name (lookup_worker);
|
|
Packit Service |
de44cd |
}
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
/**
|
|
Packit Service |
de44cd |
* e_config_lookup_worker_run:
|
|
Packit Service |
de44cd |
* @lookup_worker: an #EConfigLookupWorker
|
|
Packit Service |
de44cd |
* @config_lookup: an #EConfigLookup
|
|
Packit Service |
de44cd |
* @params: an #ENamedParameters with additional parameters
|
|
Packit Service |
de44cd |
* @out_restart_params: (out): optional #ENamedParameters, used to pass when restart is requested
|
|
Packit Service |
de44cd |
* @cancellable: optional #GCancellable object, or %NULL
|
|
Packit Service |
de44cd |
* @error: return location for a #GError, or %NULL
|
|
Packit Service |
de44cd |
*
|
|
Packit Service |
de44cd |
* Runs actual configuration look up. This method is called
|
|
Packit Service |
de44cd |
* from a dedicated thread.
|
|
Packit Service |
de44cd |
*
|
|
Packit Service |
de44cd |
* When @out_restart_params is not %NULL at the end of the call,
|
|
Packit Service |
de44cd |
* then it's saved for later re-run of the look up, in case
|
|
Packit Service |
de44cd |
* the @error indicates it can be restarted, by using appropriate
|
|
Packit Service |
de44cd |
* #EConfigLookupWorkerError.
|
|
Packit Service |
de44cd |
*
|
|
Packit Service |
de44cd |
* Since: 3.28
|
|
Packit Service |
de44cd |
**/
|
|
Packit Service |
de44cd |
void
|
|
Packit Service |
de44cd |
e_config_lookup_worker_run (EConfigLookupWorker *lookup_worker,
|
|
Packit Service |
de44cd |
EConfigLookup *config_lookup,
|
|
Packit Service |
de44cd |
const ENamedParameters *params,
|
|
Packit Service |
de44cd |
ENamedParameters **out_restart_params,
|
|
Packit Service |
de44cd |
GCancellable *cancellable,
|
|
Packit Service |
de44cd |
GError **error)
|
|
Packit Service |
de44cd |
{
|
|
Packit Service |
de44cd |
EConfigLookupWorkerInterface *iface;
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
g_return_if_fail (E_IS_CONFIG_LOOKUP_WORKER (lookup_worker));
|
|
Packit Service |
de44cd |
g_return_if_fail (E_IS_CONFIG_LOOKUP (config_lookup));
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
iface = E_CONFIG_LOOKUP_WORKER_GET_INTERFACE (lookup_worker);
|
|
Packit Service |
de44cd |
g_return_if_fail (iface != NULL);
|
|
Packit Service |
de44cd |
g_return_if_fail (iface->run != NULL);
|
|
Packit Service |
de44cd |
|
|
Packit Service |
de44cd |
iface->run (lookup_worker, config_lookup, params, out_restart_params, cancellable, error);
|
|
Packit Service |
de44cd |
}
|