1 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
2  *
3  * Copyright (C) 2016 Peter Hatina <phatina@redhat.com>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18  *
19  */
20 
21 #ifndef __UDISKS_CONFIG_MANAGER_H__
22 #define __UDISKS_CONFIG_MANAGER_H__
23 
24 #include "udisksdaemontypes.h"
25 
26 G_BEGIN_DECLS
27 
28 #define UDISKS_TYPE_CONFIG_MANAGER            (udisks_config_manager_get_type ())
29 #define UDISKS_CONFIG_MANAGER(o)              (G_TYPE_CHECK_INSTANCE_CAST  ((o), UDISKS_TYPE_CONFIG_MANAGER, UDisksConfigManager))
30 #define UDISKS_IS_CONFIG_MANAGER(o)           (G_TYPE_CHECK_INSTANCE_TYPE  ((o), UDISKS_TYPE_CONFIG_MANAGER))
31 #define UDISKS_CONFIG_MANAGER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), UDISKS_TYPE_CONFIG_MANAGER, UDisksConfigManagerClass))
32 #define UDISKS_IS_CONFIG_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UDISKS_TYPE_CONFIG_MANAGER))
33 #define UDISKS_CONFIG_MANAGER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), UDISKS_TYPE_CONFIG_MANAGER, UDisksConfigManagerClass))
34 
35 /**
36  * UDisksModuleLoadPreference:
37  * @UDISKS_MODULE_LOAD_ONDEMAND
38  * @UDISKS_MODULE_LOAD_ONSTARTUP
39  *
40  * Enumeration used to specify when to load additional modules.
41  */
42 typedef enum
43 {
44   UDISKS_MODULE_LOAD_ONDEMAND,
45   UDISKS_MODULE_LOAD_ONSTARTUP
46 } UDisksModuleLoadPreference;
47 
48 #define UDISKS_ENCRYPTION_LUKS1 "luks1"
49 #define UDISKS_ENCRYPTION_LUKS2 "luks2"
50 #define UDISKS_ENCRYPTION_DEFAULT UDISKS_ENCRYPTION_LUKS1
51 
52 GType                 udisks_config_manager_get_type        (void) G_GNUC_CONST;
53 UDisksConfigManager  *udisks_config_manager_new             (void);
54 UDisksConfigManager  *udisks_config_manager_new_uninstalled (void);
55 
56 gboolean              udisks_config_manager_get_uninstalled (UDisksConfigManager *manager);
57 
58 GList                *udisks_config_manager_get_modules     (UDisksConfigManager *manager);
59 gboolean              udisks_config_manager_get_modules_all (UDisksConfigManager *manager);
60 UDisksModuleLoadPreference
61                       udisks_config_manager_get_load_preference (UDisksConfigManager *manager);
62 const gchar          *udisks_config_manager_get_encryption (UDisksConfigManager *manager);
63 
64 const gchar          *udisks_config_manager_get_config_dir  (UDisksConfigManager *manager);
65 
66 G_END_DECLS
67 
68 #endif /* __UDISKS_CONFIG_MANAGER_H__ */
69