Branch data Line data Source code
1 : : /* libsecret - GLib wrapper for Secret Service
2 : : *
3 : : * Copyright 2019 Red Hat, Inc.
4 : : *
5 : : * This program is free software: you can redistribute it and/or modify
6 : : * it under the terms of the GNU Lesser General Public License as published
7 : : * by the Free Software Foundation; either version 2.1 of the licence or (at
8 : : * your option) any later version.
9 : : *
10 : : * See the included COPYING file for more information.
11 : : *
12 : : * Author: Daiki Ueno
13 : : */
14 : :
15 : : #if !defined (__SECRET_INSIDE_HEADER__) && !defined (SECRET_COMPILATION)
16 : : #error "Only <libsecret/secret.h> can be included directly."
17 : : #endif
18 : :
19 : : #ifndef __SECRET_BACKEND_H__
20 : : #define __SECRET_BACKEND_H__
21 : :
22 : : #include <glib-object.h>
23 : : #include "secret-schema.h"
24 : : #include "secret-service.h"
25 : : #include "secret-value.h"
26 : :
27 : : G_BEGIN_DECLS
28 : :
29 : : typedef enum {
30 : : SECRET_BACKEND_NONE = SECRET_SERVICE_NONE,
31 : : SECRET_BACKEND_OPEN_SESSION = SECRET_SERVICE_OPEN_SESSION,
32 : : SECRET_BACKEND_LOAD_COLLECTIONS = SECRET_SERVICE_LOAD_COLLECTIONS,
33 : : } SecretBackendFlags;
34 : :
35 : : #define SECRET_TYPE_BACKEND secret_backend_get_type ()
36 : 242 : G_DECLARE_INTERFACE (SecretBackend, secret_backend, SECRET, BACKEND, GObject)
37 : :
38 : : struct _SecretBackendInterface
39 : : {
40 : : GTypeInterface parent_iface;
41 : :
42 : : void (*ensure_for_flags) (SecretBackend *self,
43 : : SecretBackendFlags flags,
44 : : GCancellable *cancellable,
45 : : GAsyncReadyCallback callback,
46 : : gpointer user_data);
47 : : gboolean (*ensure_for_flags_finish) (SecretBackend *self,
48 : : GAsyncResult *result,
49 : : GError **error);
50 : :
51 : : void (*store) (SecretBackend *self,
52 : : const SecretSchema *schema,
53 : : GHashTable *attributes,
54 : : const gchar *collection,
55 : : const gchar *label,
56 : : SecretValue *value,
57 : : GCancellable *cancellable,
58 : : GAsyncReadyCallback callback,
59 : : gpointer user_data);
60 : : gboolean (*store_finish) (SecretBackend *self,
61 : : GAsyncResult *result,
62 : : GError **error);
63 : :
64 : : void (*lookup) (SecretBackend *self,
65 : : const SecretSchema *schema,
66 : : GHashTable *attributes,
67 : : GCancellable *cancellable,
68 : : GAsyncReadyCallback callback,
69 : : gpointer user_data);
70 : : SecretValue *(*lookup_finish) (SecretBackend *self,
71 : : GAsyncResult *result,
72 : : GError **error);
73 : :
74 : : void (*clear) (SecretBackend *self,
75 : : const SecretSchema *schema,
76 : : GHashTable *attributes,
77 : : GCancellable *cancellable,
78 : : GAsyncReadyCallback callback,
79 : : gpointer user_data);
80 : : gboolean (*clear_finish) (SecretBackend *self,
81 : : GAsyncResult *result,
82 : : GError **error);
83 : :
84 : : void (*search) (SecretBackend *self,
85 : : const SecretSchema *schema,
86 : : GHashTable *attributes,
87 : : SecretSearchFlags flags,
88 : : GCancellable *cancellable,
89 : : GAsyncReadyCallback callback,
90 : : gpointer user_data);
91 : : GList * (*search_finish) (SecretBackend *self,
92 : : GAsyncResult *result,
93 : : GError **error);
94 : : };
95 : :
96 : : #define SECRET_BACKEND_EXTENSION_POINT_NAME "secret-backend"
97 : :
98 : : void _secret_backend_ensure_extension_point
99 : : (void);
100 : : void _secret_backend_uncache_instance
101 : : (void);
102 : :
103 : : void secret_backend_get (SecretBackendFlags flags,
104 : : GCancellable *cancellable,
105 : : GAsyncReadyCallback callback,
106 : : gpointer user_data);
107 : :
108 : : SecretBackend *secret_backend_get_finish (GAsyncResult *result,
109 : : GError **error);
110 : :
111 : : G_END_DECLS
112 : :
113 : : #endif /* __SECRET_BACKEND_H__ */
|