1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 /* 3 * SPDX-FileCopyrightText: (C) 2020 Red Hat (www.redhat.com) 4 * SPDX-License-Identifier: LGPL-2.1-or-later 5 */ 6 7 #ifndef CAMEL_M365_SETTINGS_H 8 #define CAMEL_M365_SETTINGS_H 9 10 #include <camel/camel.h> 11 12 /* Standard GObject macros */ 13 #define CAMEL_TYPE_M365_SETTINGS \ 14 (camel_m365_settings_get_type ()) 15 #define CAMEL_M365_SETTINGS(obj) \ 16 (G_TYPE_CHECK_INSTANCE_CAST \ 17 ((obj), CAMEL_TYPE_M365_SETTINGS, CamelM365Settings)) 18 #define CAMEL_M365_SETTINGS_CLASS(cls) \ 19 (G_TYPE_CHECK_CLASS_CAST \ 20 ((cls), CAMEL_TYPE_M365_SETTINGS, CamelM365SettingsClass)) 21 #define CAMEL_IS_M365_SETTINGS(obj) \ 22 (G_TYPE_CHECK_INSTANCE_TYPE \ 23 ((obj), CAMEL_TYPE_M365_SETTINGS)) 24 #define CAMEL_IS_M365_SETTINGS_CLASS(cls) \ 25 (G_TYPE_CHECK_CLASS_TYPE \ 26 ((cls), CAMEL_TYPE_M365_SETTINGS)) 27 #define CAMEL_M365_SETTINGS_GET_CLASS(obj) \ 28 (G_TYPE_INSTANCE_GET_CLASS \ 29 ((obj), CAMEL_TYPE_M365_SETTINGS)) 30 31 #define MIN_CONCURRENT_CONNECTIONS 1 32 #define MAX_CONCURRENT_CONNECTIONS 7 33 34 G_BEGIN_DECLS 35 36 /* Forward declaration, to not include libedataserver.h/libebackend.h here */ 37 struct _EBackend; 38 struct _ESourceRegistry; 39 40 typedef struct _CamelM365Settings CamelM365Settings; 41 typedef struct _CamelM365SettingsClass CamelM365SettingsClass; 42 typedef struct _CamelM365SettingsPrivate CamelM365SettingsPrivate; 43 44 struct _CamelM365Settings { 45 CamelOfflineSettings parent; 46 CamelM365SettingsPrivate *priv; 47 }; 48 49 struct _CamelM365SettingsClass { 50 CamelOfflineSettingsClass parent_class; 51 }; 52 53 GType camel_m365_settings_get_type (void) G_GNUC_CONST; 54 CamelM365Settings * 55 camel_m365_settings_get_from_backend 56 (struct _EBackend *backend, 57 struct _ESourceRegistry *registry); 58 void camel_m365_settings_lock (CamelM365Settings *settings); 59 void camel_m365_settings_unlock (CamelM365Settings *settings); 60 gboolean camel_m365_settings_get_use_impersonation 61 (CamelM365Settings *settings); 62 void camel_m365_settings_set_use_impersonation 63 (CamelM365Settings *settings, 64 gboolean use_impersonation); 65 const gchar * camel_m365_settings_get_impersonate_user 66 (CamelM365Settings *settings); 67 gchar * camel_m365_settings_dup_impersonate_user 68 (CamelM365Settings *settings); 69 void camel_m365_settings_set_impersonate_user 70 (CamelM365Settings *settings, 71 const gchar *impersonate_user); 72 gboolean camel_m365_settings_get_check_all 73 (CamelM365Settings *settings); 74 void camel_m365_settings_set_check_all 75 (CamelM365Settings *settings, 76 gboolean check_all); 77 const gchar * camel_m365_settings_get_email (CamelM365Settings *settings); 78 gchar * camel_m365_settings_dup_email (CamelM365Settings *settings); 79 void camel_m365_settings_set_email (CamelM365Settings *settings, 80 const gchar *email); 81 gboolean camel_m365_settings_get_filter_junk 82 (CamelM365Settings *settings); 83 void camel_m365_settings_set_filter_junk 84 (CamelM365Settings *settings, 85 gboolean filter_junk); 86 gboolean camel_m365_settings_get_filter_junk_inbox 87 (CamelM365Settings *settings); 88 void camel_m365_settings_set_filter_junk_inbox 89 (CamelM365Settings *settings, 90 gboolean filter_junk_inbox); 91 guint camel_m365_settings_get_timeout (CamelM365Settings *settings); 92 void camel_m365_settings_set_timeout (CamelM365Settings *settings, 93 guint timeout); 94 gboolean camel_m365_settings_get_override_oauth2 95 (CamelM365Settings *settings); 96 void camel_m365_settings_set_override_oauth2 97 (CamelM365Settings *settings, 98 gboolean override_oauth2); 99 const gchar * camel_m365_settings_get_oauth2_tenant 100 (CamelM365Settings *settings); 101 gchar * camel_m365_settings_dup_oauth2_tenant 102 (CamelM365Settings *settings); 103 void camel_m365_settings_set_oauth2_tenant 104 (CamelM365Settings *settings, 105 const gchar *tenant); 106 const gchar * camel_m365_settings_get_oauth2_client_id 107 (CamelM365Settings *settings); 108 gchar * camel_m365_settings_dup_oauth2_client_id 109 (CamelM365Settings *settings); 110 void camel_m365_settings_set_oauth2_client_id 111 (CamelM365Settings *settings, 112 const gchar *client_id); 113 const gchar * camel_m365_settings_get_oauth2_redirect_uri 114 (CamelM365Settings *settings); 115 gchar * camel_m365_settings_dup_oauth2_redirect_uri 116 (CamelM365Settings *settings); 117 void camel_m365_settings_set_oauth2_redirect_uri 118 (CamelM365Settings *settings, 119 const gchar *redirect_uri); 120 const gchar * camel_m365_settings_get_oauth2_endpoint_host 121 (CamelM365Settings *settings); 122 gchar * camel_m365_settings_dup_oauth2_endpoint_host 123 (CamelM365Settings *settings); 124 void camel_m365_settings_set_oauth2_endpoint_host 125 (CamelM365Settings *settings, 126 const gchar *endpoint_host); 127 guint camel_m365_settings_get_concurrent_connections 128 (CamelM365Settings *settings); 129 void camel_m365_settings_set_concurrent_connections 130 (CamelM365Settings *settings, 131 guint concurrent_connections); 132 133 G_END_DECLS 134 135 #endif /* CAMEL_M365_SETTINGS_H */ 136