GApplication: Plug a memory leak
[platform/upstream/glib.git] / gio / gsettingsbackend.h
index 7fdd4e4..fbec206 100644 (file)
@@ -13,9 +13,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  *
  * Authors: Ryan Lortie <desrt@desrt.ca>
  *          Matthias Clasen <mclasen@redhat.com>
@@ -60,39 +58,30 @@ G_BEGIN_DECLS
  **/
 typedef struct _GSettingsBackendPrivate                     GSettingsBackendPrivate;
 typedef struct _GSettingsBackendClass                       GSettingsBackendClass;
-typedef struct _GSettingsBackend                            GSettingsBackend;
-
 
 struct _GSettingsBackendClass
 {
   GObjectClass parent_class;
 
-  gboolean      (*supports_context) (const gchar         *context);
-
   GVariant *    (*read)             (GSettingsBackend    *backend,
                                      const gchar         *key,
                                      const GVariantType  *expected_type,
                                      gboolean             default_value);
-  gchar **      (*list)             (GSettingsBackend    *backend,
-                                     const gchar         *path,
-                                     gchar              **resets,
-                                     gsize                n_resets,
-                                     gsize               *length);
+
+  gboolean      (*get_writable)     (GSettingsBackend    *backend,
+                                     const gchar         *key);
+
   gboolean      (*write)            (GSettingsBackend    *backend,
                                      const gchar         *key,
                                      GVariant            *value,
                                      gpointer             origin_tag);
-  gboolean      (*write_keys)       (GSettingsBackend    *backend,
+  gboolean      (*write_tree)       (GSettingsBackend    *backend,
                                      GTree               *tree,
                                      gpointer             origin_tag);
   void          (*reset)            (GSettingsBackend    *backend,
                                      const gchar         *key,
                                      gpointer             origin_tag);
-  void          (*reset_path)       (GSettingsBackend    *backend,
-                                     const gchar         *path,
-                                     gpointer             origin_tag);
-  gboolean      (*get_writable)     (GSettingsBackend    *backend,
-                                     const gchar         *key);
+
   void          (*subscribe)        (GSettingsBackend    *backend,
                                      const gchar         *name);
   void          (*unsubscribe)      (GSettingsBackend    *backend,
@@ -102,7 +91,11 @@ struct _GSettingsBackendClass
   GPermission * (*get_permission)   (GSettingsBackend    *backend,
                                      const gchar         *path);
 
-  gpointer padding[7];
+  GVariant *    (*read_user_value)  (GSettingsBackend    *backend,
+                                     const gchar         *key,
+                                     const GVariantType  *expected_type);
+
+  gpointer padding[23];
 };
 
 struct _GSettingsBackend
@@ -113,36 +106,53 @@ struct _GSettingsBackend
   GSettingsBackendPrivate *priv;
 };
 
-GType                           g_settings_backend_get_type             (void);
-
-void                            g_settings_backend_setup                (const gchar         *context,
-                                                                         GSettingsBackend    *backend);
-void                            g_settings_backend_setup_keyfile        (const gchar         *context,
-                                                                         const gchar         *filename);
+GLIB_AVAILABLE_IN_ALL
+GType                   g_settings_backend_get_type                     (void);
 
-void                            g_settings_backend_changed              (GSettingsBackend    *backend,
+GLIB_AVAILABLE_IN_ALL
+void                    g_settings_backend_changed                      (GSettingsBackend    *backend,
                                                                          const gchar         *key,
                                                                          gpointer             origin_tag);
-void                            g_settings_backend_path_changed         (GSettingsBackend    *backend,
+GLIB_AVAILABLE_IN_ALL
+void                    g_settings_backend_path_changed                 (GSettingsBackend    *backend,
                                                                          const gchar         *path,
                                                                          gpointer             origin_tag);
-void                            g_settings_backend_flatten_tree         (GTree               *tree,
+GLIB_AVAILABLE_IN_ALL
+void                    g_settings_backend_flatten_tree                 (GTree               *tree,
                                                                          gchar              **path,
                                                                          const gchar       ***keys,
                                                                          GVariant          ***values);
-void                            g_settings_backend_keys_changed         (GSettingsBackend    *backend,
+GLIB_AVAILABLE_IN_ALL
+void                    g_settings_backend_keys_changed                 (GSettingsBackend    *backend,
                                                                          const gchar         *path,
                                                                          gchar const * const *items,
                                                                          gpointer             origin_tag);
 
-void                            g_settings_backend_path_writable_changed(GSettingsBackend    *backend,
+GLIB_AVAILABLE_IN_ALL
+void                    g_settings_backend_path_writable_changed        (GSettingsBackend    *backend,
                                                                          const gchar         *path);
-void                            g_settings_backend_writable_changed     (GSettingsBackend    *backend,
+GLIB_AVAILABLE_IN_ALL
+void                    g_settings_backend_writable_changed             (GSettingsBackend    *backend,
                                                                          const gchar         *key);
-void                            g_settings_backend_changed_tree         (GSettingsBackend    *backend,
+GLIB_AVAILABLE_IN_ALL
+void                    g_settings_backend_changed_tree                 (GSettingsBackend    *backend,
                                                                          GTree               *tree,
                                                                          gpointer             origin_tag);
 
+GLIB_AVAILABLE_IN_ALL
+GSettingsBackend *      g_settings_backend_get_default                  (void);
+
+GLIB_AVAILABLE_IN_ALL
+GSettingsBackend *      g_keyfile_settings_backend_new                  (const gchar         *filename,
+                                                                         const gchar         *root_path,
+                                                                         const gchar         *root_group);
+
+GLIB_AVAILABLE_IN_ALL
+GSettingsBackend *      g_null_settings_backend_new                     (void);
+
+GLIB_AVAILABLE_IN_ALL
+GSettingsBackend *      g_memory_settings_backend_new                   (void);
+
 G_END_DECLS
 
 #endif /* __G_SETTINGS_BACKEND_H__ */