|
Packit |
79f644 |
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
Packit |
79f644 |
/*
|
|
Packit |
79f644 |
* Copyright © 2013 – 2017 Red Hat, Inc.
|
|
Packit |
79f644 |
*
|
|
Packit |
79f644 |
* This library is free software; you can redistribute it and/or
|
|
Packit |
79f644 |
* modify it under the terms of the GNU Lesser General Public
|
|
Packit |
79f644 |
* License as published by the Free Software Foundation; either
|
|
Packit |
79f644 |
* version 2 of the License, or (at your option) any later version.
|
|
Packit |
79f644 |
*
|
|
Packit |
79f644 |
* This library is distributed in the hope that it will be useful,
|
|
Packit |
79f644 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
79f644 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
79f644 |
* Lesser General Public License for more details.
|
|
Packit |
79f644 |
*
|
|
Packit |
79f644 |
* You should have received a copy of the GNU Lesser General
|
|
Packit |
79f644 |
* Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
|
Packit |
79f644 |
*/
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION)
|
|
Packit |
79f644 |
#error "Only <goabackend/goabackend.h> can be included directly."
|
|
Packit |
79f644 |
#endif
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
#ifndef __GOA_PROVIDER_PRIV_H__
|
|
Packit |
79f644 |
#define __GOA_PROVIDER_PRIV_H__
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
#include <gio/gio.h>
|
|
Packit |
79f644 |
#include <goa/goa.h>
|
|
Packit |
79f644 |
#include <goabackend/goaprovider.h>
|
|
Packit |
79f644 |
#include <goabackend/goabackendenums.h>
|
|
Packit |
79f644 |
#include <gtk/gtk.h>
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
G_BEGIN_DECLS
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
/**
|
|
Packit |
79f644 |
* GoaProvider:
|
|
Packit |
79f644 |
*
|
|
Packit |
79f644 |
* The #GoaProvider structure contains only private data and should
|
|
Packit |
79f644 |
* only be accessed using the provided API.
|
|
Packit |
79f644 |
*/
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
/**
|
|
Packit |
79f644 |
* GoaProviderClass:
|
|
Packit |
79f644 |
* @parent_class: The parent class.
|
|
Packit |
79f644 |
* @get_provider_type: Virtual function for goa_provider_get_provider_type().
|
|
Packit |
79f644 |
* @get_provider_name: Virtual function for goa_provider_get_provider_name().
|
|
Packit |
79f644 |
* @get_provider_icon: Virtual function for goa_provider_get_provider_icon().
|
|
Packit |
79f644 |
* @get_provider_group: Virtual function for goa_provider_get_provider_group().
|
|
Packit |
79f644 |
* @get_provider_features: Virtual function for goa_provider_get_provider_features().
|
|
Packit |
79f644 |
* @add_account: Virtual function for goa_provider_add_account().
|
|
Packit |
79f644 |
* @refresh_account: Virtual function for goa_provider_refresh_account().
|
|
Packit |
79f644 |
* @build_object: Virtual function for goa_provider_build_object().
|
|
Packit |
79f644 |
* @ensure_credentials_sync: Virtual function for goa_provider_ensure_credentials_sync().
|
|
Packit |
79f644 |
* @show_account: Virtual function for goa_provider_show_account().
|
|
Packit |
79f644 |
* @get_credentials_generation: Virtual function for goa_provider_get_credentials_generation().
|
|
Packit |
79f644 |
* @initialize: Virtual function for goa_provider_initialize().
|
|
Packit |
79f644 |
*
|
|
Packit |
79f644 |
* Class structure for #GoaProvider.
|
|
Packit |
79f644 |
*/
|
|
Packit |
79f644 |
struct _GoaProviderClass
|
|
Packit |
79f644 |
{
|
|
Packit |
79f644 |
GObjectClass parent_class;
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
/* pure virtual */
|
|
Packit |
79f644 |
GoaObject *(*add_account) (GoaProvider *self,
|
|
Packit |
79f644 |
GoaClient *client,
|
|
Packit |
79f644 |
GtkDialog *dialog,
|
|
Packit |
79f644 |
GtkBox *vbox,
|
|
Packit |
79f644 |
GError **error);
|
|
Packit |
79f644 |
GoaProviderFeatures (*get_provider_features) (GoaProvider *self);
|
|
Packit |
79f644 |
GoaProviderGroup (*get_provider_group) (GoaProvider *self);
|
|
Packit |
79f644 |
gchar *(*get_provider_name) (GoaProvider *self,
|
|
Packit |
79f644 |
GoaObject *object);
|
|
Packit |
79f644 |
const gchar *(*get_provider_type) (GoaProvider *self);
|
|
Packit |
79f644 |
gboolean (*refresh_account) (GoaProvider *self,
|
|
Packit |
79f644 |
GoaClient *client,
|
|
Packit |
79f644 |
GoaObject *object,
|
|
Packit |
79f644 |
GtkWindow *parent,
|
|
Packit |
79f644 |
GError **error);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
/* virtual but with default implementation */
|
|
Packit |
79f644 |
gboolean (*build_object) (GoaProvider *self,
|
|
Packit |
79f644 |
GoaObjectSkeleton *object,
|
|
Packit |
79f644 |
GKeyFile *key_file,
|
|
Packit |
79f644 |
const gchar *group,
|
|
Packit |
79f644 |
GDBusConnection *connection,
|
|
Packit |
79f644 |
gboolean just_added,
|
|
Packit |
79f644 |
GError **error);
|
|
Packit |
79f644 |
gboolean (*ensure_credentials_sync) (GoaProvider *self,
|
|
Packit |
79f644 |
GoaObject *object,
|
|
Packit |
79f644 |
gint *out_expires_in,
|
|
Packit |
79f644 |
GCancellable *cancellable,
|
|
Packit |
79f644 |
GError **error);
|
|
Packit |
79f644 |
guint (*get_credentials_generation) (GoaProvider *self);
|
|
Packit |
79f644 |
GIcon *(*get_provider_icon) (GoaProvider *self,
|
|
Packit |
79f644 |
GoaObject *object);
|
|
Packit |
79f644 |
void (*initialize) (GoaProvider *self);
|
|
Packit |
79f644 |
void (*remove_account) (GoaProvider *self,
|
|
Packit |
79f644 |
GoaObject *object,
|
|
Packit |
79f644 |
GCancellable *cancellable,
|
|
Packit |
79f644 |
GAsyncReadyCallback callback,
|
|
Packit |
79f644 |
gpointer user_data);
|
|
Packit |
79f644 |
gboolean (*remove_account_finish) (GoaProvider *self,
|
|
Packit |
79f644 |
GAsyncResult *res,
|
|
Packit |
79f644 |
GError **error);
|
|
Packit |
79f644 |
void (*show_account) (GoaProvider *self,
|
|
Packit |
79f644 |
GoaClient *client,
|
|
Packit |
79f644 |
GoaObject *object,
|
|
Packit |
79f644 |
GtkBox *vbox,
|
|
Packit |
79f644 |
GtkGrid *dummy1,
|
|
Packit |
79f644 |
GtkGrid *dummy2);
|
|
Packit |
79f644 |
};
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
/**
|
|
Packit |
79f644 |
* GOA_PROVIDER_EXTENSION_POINT_NAME:
|
|
Packit |
79f644 |
*
|
|
Packit |
79f644 |
* Extension point for #GoaProvider implementations.
|
|
Packit |
79f644 |
*/
|
|
Packit |
79f644 |
#define GOA_PROVIDER_EXTENSION_POINT_NAME "goa-backend-provider"
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
/**
|
|
Packit |
79f644 |
* GOA_PROVIDER_FACTORY_EXTENSION_POINT_NAME:
|
|
Packit |
79f644 |
*
|
|
Packit |
79f644 |
* Extension point for #GoaProviderFactory implementations.
|
|
Packit |
79f644 |
*/
|
|
Packit |
79f644 |
#define GOA_PROVIDER_FACTORY_EXTENSION_POINT_NAME "goa-backend-provider-factory"
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
void goa_provider_ensure_builtins_loaded (void);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
void goa_provider_ensure_extension_points_registered (void);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
gboolean goa_provider_build_object (GoaProvider *self,
|
|
Packit |
79f644 |
GoaObjectSkeleton *object,
|
|
Packit |
79f644 |
GKeyFile *key_file,
|
|
Packit |
79f644 |
const gchar *group,
|
|
Packit |
79f644 |
GDBusConnection *connection,
|
|
Packit |
79f644 |
gboolean just_added,
|
|
Packit |
79f644 |
GError **error);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
void goa_provider_ensure_credentials (GoaProvider *self,
|
|
Packit |
79f644 |
GoaObject *object,
|
|
Packit |
79f644 |
GCancellable *cancellable,
|
|
Packit |
79f644 |
GAsyncReadyCallback callback,
|
|
Packit |
79f644 |
gpointer user_data);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
gboolean goa_provider_ensure_credentials_finish (GoaProvider *self,
|
|
Packit |
79f644 |
gint *out_expires_in,
|
|
Packit |
79f644 |
GAsyncResult *res,
|
|
Packit |
79f644 |
GError **error);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
gboolean goa_provider_ensure_credentials_sync (GoaProvider *self,
|
|
Packit |
79f644 |
GoaObject *object,
|
|
Packit |
79f644 |
gint *out_expires_in,
|
|
Packit |
79f644 |
GCancellable *cancellable,
|
|
Packit |
79f644 |
GError **error);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
void goa_provider_initialize (GoaProvider *self);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
void goa_provider_remove_account (GoaProvider *self,
|
|
Packit |
79f644 |
GoaObject *object,
|
|
Packit |
79f644 |
GCancellable *cancellable,
|
|
Packit |
79f644 |
GAsyncReadyCallback callback,
|
|
Packit |
79f644 |
gpointer user_data);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
gboolean goa_provider_remove_account_finish (GoaProvider *self,
|
|
Packit |
79f644 |
GAsyncResult *res,
|
|
Packit |
79f644 |
GError **error);
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
G_END_DECLS
|
|
Packit |
79f644 |
|
|
Packit |
79f644 |
#endif /* __GOA_PROVIDER_PRIV_H__ */
|