1 | /* libsecret - GLib wrapper for Secret Service |
2 | * |
3 | * Copyright 2012 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: Stef Walter <stefw@gnome.org> |
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_ITEM_H__ |
20 | #define __SECRET_ITEM_H__ |
21 | |
22 | #include <gio/gio.h> |
23 | |
24 | #include "secret-collection.h" |
25 | #include "secret-item.h" |
26 | #include "secret-service.h" |
27 | #include "secret-value.h" |
28 | |
29 | G_BEGIN_DECLS |
30 | |
31 | typedef enum { |
32 | SECRET_ITEM_NONE, |
33 | SECRET_ITEM_LOAD_SECRET = 1 << 1 |
34 | } SecretItemFlags; |
35 | |
36 | typedef enum { |
37 | SECRET_ITEM_CREATE_NONE = 0, |
38 | SECRET_ITEM_CREATE_REPLACE = 1 << 1 |
39 | } SecretItemCreateFlags; |
40 | |
41 | #define SECRET_TYPE_ITEM (secret_item_get_type ()) |
42 | #define SECRET_ITEM(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), SECRET_TYPE_ITEM, SecretItem)) |
43 | #define SECRET_ITEM_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), SECRET_TYPE_ITEM, SecretItemClass)) |
44 | #define SECRET_IS_ITEM(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), SECRET_TYPE_ITEM)) |
45 | #define SECRET_IS_ITEM_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), SECRET_TYPE_ITEM)) |
46 | #define SECRET_ITEM_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), SECRET_TYPE_ITEM, SecretItemClass)) |
47 | |
48 | typedef struct _SecretItemClass SecretItemClass; |
49 | typedef struct _SecretItemPrivate SecretItemPrivate; |
50 | |
51 | struct _SecretItem { |
52 | GDBusProxy parent_instance; |
53 | |
54 | /*< private >*/ |
55 | SecretItemPrivate *pv; |
56 | }; |
57 | |
58 | struct _SecretItemClass { |
59 | GDBusProxyClass parent_class; |
60 | |
61 | /*< private >*/ |
62 | gpointer padding[4]; |
63 | }; |
64 | |
65 | GType secret_item_get_type (void) G_GNUC_CONST; |
66 | |
67 | void secret_item_refresh (SecretItem *self); |
68 | |
69 | void secret_item_create (SecretCollection *collection, |
70 | const SecretSchema *schema, |
71 | GHashTable *attributes, |
72 | const gchar *label, |
73 | SecretValue *value, |
74 | SecretItemCreateFlags flags, |
75 | GCancellable *cancellable, |
76 | GAsyncReadyCallback callback, |
77 | gpointer user_data); |
78 | |
79 | SecretItem * secret_item_create_finish (GAsyncResult *result, |
80 | GError **error); |
81 | |
82 | SecretItem * secret_item_create_sync (SecretCollection *collection, |
83 | const SecretSchema *schema, |
84 | GHashTable *attributes, |
85 | const gchar *label, |
86 | SecretValue *value, |
87 | SecretItemCreateFlags flags, |
88 | GCancellable *cancellable, |
89 | GError **error); |
90 | |
91 | void secret_item_delete (SecretItem *self, |
92 | GCancellable *cancellable, |
93 | GAsyncReadyCallback callback, |
94 | gpointer user_data); |
95 | |
96 | gboolean secret_item_delete_finish (SecretItem *self, |
97 | GAsyncResult *result, |
98 | GError **error); |
99 | |
100 | gboolean secret_item_delete_sync (SecretItem *self, |
101 | GCancellable *cancellable, |
102 | GError **error); |
103 | |
104 | SecretItemFlags secret_item_get_flags (SecretItem *self); |
105 | |
106 | SecretService * secret_item_get_service (SecretItem *self); |
107 | |
108 | SecretValue * secret_item_get_secret (SecretItem *self); |
109 | |
110 | void secret_item_load_secret (SecretItem *self, |
111 | GCancellable *cancellable, |
112 | GAsyncReadyCallback callback, |
113 | gpointer user_data); |
114 | |
115 | gboolean secret_item_load_secret_finish (SecretItem *self, |
116 | GAsyncResult *result, |
117 | GError **error); |
118 | |
119 | gboolean secret_item_load_secret_sync (SecretItem *self, |
120 | GCancellable *cancellable, |
121 | GError **error); |
122 | |
123 | void secret_item_load_secrets (GList *items, |
124 | GCancellable *cancellable, |
125 | GAsyncReadyCallback callback, |
126 | gpointer user_data); |
127 | |
128 | gboolean secret_item_load_secrets_finish (GAsyncResult *result, |
129 | GError **error); |
130 | |
131 | gboolean secret_item_load_secrets_sync (GList *items, |
132 | GCancellable *cancellable, |
133 | GError **error); |
134 | |
135 | void secret_item_set_secret (SecretItem *self, |
136 | SecretValue *value, |
137 | GCancellable *cancellable, |
138 | GAsyncReadyCallback callback, |
139 | gpointer user_data); |
140 | |
141 | gboolean secret_item_set_secret_finish (SecretItem *self, |
142 | GAsyncResult *result, |
143 | GError **error); |
144 | |
145 | gboolean secret_item_set_secret_sync (SecretItem *self, |
146 | SecretValue *value, |
147 | GCancellable *cancellable, |
148 | GError **error); |
149 | |
150 | gchar * secret_item_get_schema_name (SecretItem *self); |
151 | |
152 | GHashTable* secret_item_get_attributes (SecretItem *self); |
153 | |
154 | void secret_item_set_attributes (SecretItem *self, |
155 | const SecretSchema *schema, |
156 | GHashTable *attributes, |
157 | GCancellable *cancellable, |
158 | GAsyncReadyCallback callback, |
159 | gpointer user_data); |
160 | |
161 | gboolean secret_item_set_attributes_finish (SecretItem *self, |
162 | GAsyncResult *result, |
163 | GError **error); |
164 | |
165 | gboolean secret_item_set_attributes_sync (SecretItem *self, |
166 | const SecretSchema *schema, |
167 | GHashTable *attributes, |
168 | GCancellable *cancellable, |
169 | GError **error); |
170 | |
171 | gchar * secret_item_get_label (SecretItem *self); |
172 | |
173 | void secret_item_set_label (SecretItem *self, |
174 | const gchar *label, |
175 | GCancellable *cancellable, |
176 | GAsyncReadyCallback callback, |
177 | gpointer user_data); |
178 | |
179 | gboolean secret_item_set_label_finish (SecretItem *self, |
180 | GAsyncResult *result, |
181 | GError **error); |
182 | |
183 | gboolean secret_item_set_label_sync (SecretItem *self, |
184 | const gchar *label, |
185 | GCancellable *cancellable, |
186 | GError **error); |
187 | |
188 | gboolean secret_item_get_locked (SecretItem *self); |
189 | |
190 | guint64 secret_item_get_created (SecretItem *self); |
191 | |
192 | guint64 secret_item_get_modified (SecretItem *self); |
193 | |
194 | G_END_DECLS |
195 | |
196 | #endif /* __SECRET_ITEM_H___ */ |
197 | |