Blame src/e-util/e-config-lookup-worker.c

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
}