| dee-filter-model.h | | dee-filter-model.h | |
| | | | |
| skipping to change at line 55 | | skipping to change at line 55 | |
| | | | |
| #define DEE_IS_FILTER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),
\ | | #define DEE_IS_FILTER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),
\ | |
| DEE_TYPE_FILTER_MODEL)) | | DEE_TYPE_FILTER_MODEL)) | |
| | | | |
| #define DEE_FILTER_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),
\ | | #define DEE_FILTER_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),
\ | |
| DBUS_TYPE_FILTER_MODEL, DeeFilterModelClass)) | | DBUS_TYPE_FILTER_MODEL, DeeFilterModelClass)) | |
| | | | |
| typedef struct _DeeFilterModel DeeFilterModel; | | typedef struct _DeeFilterModel DeeFilterModel; | |
| typedef struct _DeeFilterModelClass DeeFilterModelClass; | | typedef struct _DeeFilterModelClass DeeFilterModelClass; | |
| typedef struct _DeeFilterModelPrivate DeeFilterModelPrivate; | | typedef struct _DeeFilterModelPrivate DeeFilterModelPrivate; | |
|
| typedef struct _DeeFilter DeeFilter; | | | |
| | | | |
| /** | | | |
| * DeeModelMapFunc: | | | |
| * @orig_model: The model containing the original data to filter | | | |
| * @filter_model: The model that will contain the filtered results. The | | | |
| * filter func must iterate over @orig_model and add all rel | | | |
| evant | | | |
| * rows to @filter_model. This model is guaranteed to be emp | | | |
| ty | | | |
| * when the filter func is invoked | | | |
| * @user_data: User data passed together with the filter func | | | |
| * | | | |
| * Function used to collect the rows from a model that should be included i | | | |
| n | | | |
| * a #DeeFilterModel. To add rows to @filter_model use the methods | | | |
| * dee_filter_model_append_iter(), dee_filter_model_prepend_iter(), | | | |
| * dee_filter_model_insert_iter(), and dee_filter_model_insert_iter_before( | | | |
| ). | | | |
| * | | | |
| * The iteration over the original model is purposely left to the map func | | | |
| * in order to allow optimized iterations if the the caller has a priori | | | |
| * knowledge of the sorting and grouping of the data in the original model. | | | |
| */ | | | |
| typedef void (*DeeModelMapFunc) (DeeModel *orig_model, | | | |
| DeeFilterModel *filter_model, | | | |
| gpointer user_data); | | | |
| | | | |
|
| /** | | /* We need this one here to avoid circular refs */ | |
| * DeeModelMapNotify: | | typedef struct _DeeFilter DeeFilter; | |
| * @orig_model: The model containing the added row | | | |
| * @orig_iter: A #DeeModelIter pointing to the new row in @orig_model | | | |
| * @filter_model: The model that was also passed to the #DeeModelMapFunc | | | |
| * of the #DeeFilter this functions is a part of | | | |
| * @user_data: User data for the #DeeFilter | | | |
| * | | | |
| * Callback invoked when a row is added to @orig_model. To add rows to | | | |
| * @filter_model use the methods dee_filter_model_append_iter(), | | | |
| * dee_filter_model_prepend_iter(), dee_filter_model_insert_iter(), | | | |
| * and dee_filter_model_insert_iter_before(). | | | |
| */ | | | |
| typedef void (*DeeModelMapNotify) (DeeModel *orig_model, | | | |
| DeeModelIter *orig_iter, | | | |
| DeeFilterModel *filter_model, | | | |
| gpointer user_data); | | | |
| | | | |
| /** | | | |
| * DeeFilter: | | | |
| * @map_func: The #DeeModelMapFunc used to construct the initial contents o | | | |
| f | | | |
| * a #DeeFilterModel | | | |
| * @map_notify: Callback invoked when the original model changes | | | |
| * @destroy: Callback for freeing the @user_data | | | |
| * @user_data: Free form user data associated with the filter. This pointer | | | |
| will | | | |
| * be passed to @map_func and @map_notify | | | |
| * | | | |
| * Structure encapsulating the mapping logic used to construct a #DeeFilter | | | |
| Model | | | |
| */ | | | |
| struct _DeeFilter | | | |
| { | | | |
| DeeModelMapFunc map_func; | | | |
| DeeModelMapNotify map_notify; | | | |
| GDestroyNotify destroy; | | | |
| gpointer user_data; | | | |
| } ; | | | |
| | | | |
| /** | | /** | |
| * DeeFilterModel: | | * DeeFilterModel: | |
| * | | * | |
| * All fields in the DeeFilterModel structure are private and should never
be | | * All fields in the DeeFilterModel structure are private and should never
be | |
| * accessed directly | | * accessed directly | |
| */ | | */ | |
| struct _DeeFilterModel | | struct _DeeFilterModel | |
| { | | { | |
| /*< private >*/ | | /*< private >*/ | |
| | | | |
| skipping to change at line 149 | | skipping to change at line 92 | |
| void (*_dee_filter_model_4) (void); | | void (*_dee_filter_model_4) (void); | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * dee_filter_model_get_type: | | * dee_filter_model_get_type: | |
| * | | * | |
| * The GType of #DeeFilterModel | | * The GType of #DeeFilterModel | |
| * | | * | |
| * Return value: the #GType of #DeeFilterModel | | * Return value: the #GType of #DeeFilterModel | |
| **/ | | **/ | |
|
| GType dee_filter_model_get_type (void) G_GNUC_CONST; | | GType dee_filter_model_get_type (void); | |
| | | | |
|
| DeeModel* dee_filter_model_new (const DeeFilter *fi | | DeeModel* dee_filter_model_new (DeeModel *orig_mod | |
| lter, | | el, | |
| DeeModel *orig_mod | | DeeFilter *filter); | |
| el); | | | |
| | | | |
| gboolean dee_filter_model_contains (DeeFilterModel *sel
f, | | gboolean dee_filter_model_contains (DeeFilterModel *sel
f, | |
| DeeModelIter *ite
r); | | DeeModelIter *ite
r); | |
| | | | |
| DeeModelIter* dee_filter_model_append_iter (DeeFilterModel *sel
f, | | DeeModelIter* dee_filter_model_append_iter (DeeFilterModel *sel
f, | |
| DeeModelIter *ite
r); | | DeeModelIter *ite
r); | |
| | | | |
| DeeModelIter* dee_filter_model_prepend_iter (DeeFilterModel *se
lf, | | DeeModelIter* dee_filter_model_prepend_iter (DeeFilterModel *se
lf, | |
| DeeModelIter *it
er); | | DeeModelIter *it
er); | |
| | | | |
| | | | |
End of changes. 4 change blocks. |
| 71 lines changed or deleted | | 6 lines changed or added | |
|
| dee-index.h | | dee-index.h | |
| /* | | /* | |
|
| * Copyright (C) 2010 Canonical, Ltd. | | * Copyright (C) 2010-2011 Canonical, Ltd. | |
| * | | * | |
| * This library is free software; you can redistribute it and/or modify | | * This library is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU Lesser General Public License | | * it under the terms of the GNU Lesser General Public License | |
| * version 3.0 as published by the Free Software Foundation. | | * version 3.0 as published by the Free Software Foundation. | |
| * | | * | |
| * This library is distributed in the hope that it will be useful, | | * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU Lesser General Public License version 3.0 for more details. | | * GNU Lesser General Public License version 3.0 for more details. | |
| * | | * | |
| | | | |
| skipping to change at line 30 | | skipping to change at line 30 | |
| #if !defined (_DEE_H_INSIDE) && !defined (DEE_COMPILATION) | | #if !defined (_DEE_H_INSIDE) && !defined (DEE_COMPILATION) | |
| #error "Only <dee.h> can be included directly." | | #error "Only <dee.h> can be included directly." | |
| #endif | | #endif | |
| | | | |
| #ifndef _HAVE_DEE_INDEX_H | | #ifndef _HAVE_DEE_INDEX_H | |
| #define _HAVE_DEE_INDEX_H | | #define _HAVE_DEE_INDEX_H | |
| | | | |
| #include <glib.h> | | #include <glib.h> | |
| #include <glib-object.h> | | #include <glib-object.h> | |
| #include <dee-model.h> | | #include <dee-model.h> | |
|
| | | #include <dee-model-reader.h> | |
| #include <dee-term-list.h> | | #include <dee-term-list.h> | |
| #include <dee-result-set.h> | | #include <dee-result-set.h> | |
|
| | | #include <dee-analyzer.h> | |
| | | | |
| G_BEGIN_DECLS | | G_BEGIN_DECLS | |
| | | | |
| #define DEE_TYPE_INDEX (dee_index_get_type ()) | | #define DEE_TYPE_INDEX (dee_index_get_type ()) | |
| | | | |
| #define DEE_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ | | #define DEE_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ | |
| DEE_TYPE_INDEX, DeeIndex)) | | DEE_TYPE_INDEX, DeeIndex)) | |
| | | | |
| #define DEE_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ | | #define DEE_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ | |
| DEE_TYPE_INDEX, DeeIndexClass)) | | DEE_TYPE_INDEX, DeeIndexClass)) | |
| | | | |
| skipping to change at line 55 | | skipping to change at line 57 | |
| | | | |
| #define DEE_IS_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ | | #define DEE_IS_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ | |
| DEE_TYPE_INDEX)) | | DEE_TYPE_INDEX)) | |
| | | | |
| #define DEE_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ | | #define DEE_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ | |
| DBUS_TYPE_INDEX, DeeIndexClass)) | | DBUS_TYPE_INDEX, DeeIndexClass)) | |
| | | | |
| typedef struct _DeeIndexClass DeeIndexClass; | | typedef struct _DeeIndexClass DeeIndexClass; | |
| typedef struct _DeeIndex DeeIndex; | | typedef struct _DeeIndex DeeIndex; | |
| typedef struct _DeeIndexPrivate DeeIndexPrivate; | | typedef struct _DeeIndexPrivate DeeIndexPrivate; | |
|
| typedef struct _DeeAnalyzer DeeAnalyzer; | | | |
| | | | |
| /** | | /** | |
| * DeeIndexIterFunc: | | * DeeIndexIterFunc: | |
| * @key: A key in the index being traversed | | * @key: A key in the index being traversed | |
| * @rows: A #DeeResultSet. Do not free or modify. | | * @rows: A #DeeResultSet. Do not free or modify. | |
|
| * @userdata: The pointer passed to dee_index_foreach() | | * @userdata: (closure): The pointer passed to dee_index_foreach() | |
| * | | * | |
| * The signature of the function passed to dee_index_foreach(). | | * The signature of the function passed to dee_index_foreach(). | |
| * | | * | |
| * Be cautious if you plan on modifying the rows in the model via the | | * Be cautious if you plan on modifying the rows in the model via the | |
| * DeeModelIter<!-- -->s you find. Your code may have to be reentrant since | | * DeeModelIter<!-- -->s you find. Your code may have to be reentrant since | |
| * the index may change in reaction to the changes in the model. It's not | | * the index may change in reaction to the changes in the model. It's not | |
| * impossible to do this in a non-broken manner, but it may likely require | | * impossible to do this in a non-broken manner, but it may likely require | |
| * you calling dee_model_freeze_signals() and dee_model_thaw_signals() at | | * you calling dee_model_freeze_signals() and dee_model_thaw_signals() at | |
| * strategic points. | | * strategic points. | |
| * | | * | |
| * Returns: %FALSE if iteration should stop, %TRUE if it should continue | | * Returns: %FALSE if iteration should stop, %TRUE if it should continue | |
| */ | | */ | |
| typedef gboolean (*DeeIndexIterFunc) (const gchar *key, | | typedef gboolean (*DeeIndexIterFunc) (const gchar *key, | |
| DeeResultSet *rows, | | DeeResultSet *rows, | |
| gpointer userdata); | | gpointer userdata); | |
| | | | |
| /** | | /** | |
|
| * DeeAnalyzerFunc: | | | |
| * @model: The model being indexed | | | |
| * @iter: The row to extract terms for | | | |
| * @out_terms: A #DeeTermList to store the extracted terms in | | | |
| * @userdata: The @userdata member of the #DeeAnalyzer instance | | | |
| * | | | |
| * The signature of the function used to build a #DeeTermList for a given | | | |
| * row in a #DeeModel. | | | |
| */ | | | |
| typedef void (*DeeAnalyzerFunc) (DeeModel *model, | | | |
| DeeModelIter *iter, | | | |
| DeeTermList *out_terms, | | | |
| gpointer userdata); | | | |
| | | | |
| /** | | | |
| * DeeAnalyzer: | | | |
| * @analyzer: The #DeeAnalyzerFunc to call to extract terms for a | | | |
| * given row | | | |
| * @userdata: Arbitrary data to pass to @analyze | | | |
| * @destroy: If non-%NULL this function will be invoked on @userdata when | | | |
| * the #DeeIndex is finalized | | | |
| * | | | |
| * Structure encapsulating the logic used to extract terms from a model. Th | | | |
| is | | | |
| * library ships with a few simple default analyzers. See for example | | | |
| * dee_analyzer_new_for_key_column() and dee_analyzer_new_for_full_text_col | | | |
| umn(). | | | |
| * | | | |
| * You can access the analyzer used by a #DeeIndex via the | | | |
| * #DeeIndex:analyzer property. | | | |
| */ | | | |
| struct _DeeAnalyzer | | | |
| { | | | |
| DeeAnalyzerFunc analyze; | | | |
| gpointer userdata; | | | |
| GDestroyNotify destroy; | | | |
| | | | |
| /*< private >*/ | | | |
| gpointer reserved1; | | | |
| gpointer reserved2; | | | |
| gpointer reserved3; | | | |
| gpointer reserved4; | | | |
| gpointer reserved5; | | | |
| }; | | | |
| | | | |
| /** | | | |
| * DeeTermMatchFlag: | | * DeeTermMatchFlag: | |
| * @DEE_TERM_MATCH_EXACT: Match terms byte for byte as specified in the | | * @DEE_TERM_MATCH_EXACT: Match terms byte for byte as specified in the | |
| * query string | | * query string | |
| * @DEE_TERM_MATCH_PREFIX: Match if the indexed term begins with the byte s
tring | | * @DEE_TERM_MATCH_PREFIX: Match if the indexed term begins with the byte s
tring | |
| * being queried by. This is also sometimes known a
s | | * being queried by. This is also sometimes known a
s | |
| * truncated- or wildcard queries | | * truncated- or wildcard queries | |
| * | | * | |
| * Flags passed to dee_index_lookup() to control how matching is done. | | * Flags passed to dee_index_lookup() to control how matching is done. | |
| * Note that it is not required that index backends support more than just | | * Note that it is not required that index backends support more than just | |
| * #DEE_TERM_MATCH_EXACT. | | * #DEE_TERM_MATCH_EXACT. | |
| * | | * | |
| * You can query for the supported flags with | | * You can query for the supported flags with | |
| * dee_index_get_supported_term_match_flags(). | | * dee_index_get_supported_term_match_flags(). | |
| */ | | */ | |
| typedef enum | | typedef enum | |
| { | | { | |
|
| DEE_TERM_MATCH_EXACT = 0, | | DEE_TERM_MATCH_EXACT = 1 << 0, | |
| DEE_TERM_MATCH_PREFIX = 1 << 1 | | DEE_TERM_MATCH_PREFIX = 1 << 1 | |
| } DeeTermMatchFlag; | | } DeeTermMatchFlag; | |
| | | | |
| /** | | /** | |
| * DeeIndex: | | * DeeIndex: | |
| * | | * | |
| * All fields in the DeeIndex structure are private and should never be | | * All fields in the DeeIndex structure are private and should never be | |
| * accessed directly | | * accessed directly | |
| */ | | */ | |
| struct _DeeIndex | | struct _DeeIndex | |
| | | | |
| skipping to change at line 188 | | skipping to change at line 145 | |
| guint (*get_supported_term_match_flags) (DeeIndex *self); | | guint (*get_supported_term_match_flags) (DeeIndex *self); | |
| | | | |
| /*< private >*/ | | /*< private >*/ | |
| void (*_dee_index_1) (void); | | void (*_dee_index_1) (void); | |
| void (*_dee_index_2) (void); | | void (*_dee_index_2) (void); | |
| void (*_dee_index_3) (void); | | void (*_dee_index_3) (void); | |
| void (*_dee_index_4) (void); | | void (*_dee_index_4) (void); | |
| void (*_dee_index_5) (void); | | void (*_dee_index_5) (void); | |
| }; | | }; | |
| | | | |
|
| GType dee_index_get_type (void) G_GNUC_CONST; | | GType dee_index_get_type (void); | |
| | | | |
| DeeResultSet* dee_index_lookup (DeeIndex *self, | | DeeResultSet* dee_index_lookup (DeeIndex *self, | |
| const gchar *term, | | const gchar *term, | |
| DeeTermMatchFlag flags)
; | | DeeTermMatchFlag flags)
; | |
| | | | |
| DeeModelIter* dee_index_lookup_one (DeeIndex *self, | | DeeModelIter* dee_index_lookup_one (DeeIndex *self, | |
| const gchar *term); | | const gchar *term); | |
| | | | |
| void dee_index_foreach (DeeIndex *self, | | void dee_index_foreach (DeeIndex *self, | |
| const gchar *start_
term, | | const gchar *start_
term, | |
| DeeIndexIterFunc func, | | DeeIndexIterFunc func, | |
| gpointer userda
ta); | | gpointer userda
ta); | |
| | | | |
| DeeModel* dee_index_get_model (DeeIndex *self); | | DeeModel* dee_index_get_model (DeeIndex *self); | |
| | | | |
| DeeAnalyzer* dee_index_get_analyzer (DeeIndex *self); | | DeeAnalyzer* dee_index_get_analyzer (DeeIndex *self); | |
| | | | |
|
| | | DeeModelReader* dee_index_get_reader (DeeIndex *self); | |
| | | | |
| guint dee_index_get_n_terms (DeeIndex *self); | | guint dee_index_get_n_terms (DeeIndex *self); | |
| | | | |
| guint dee_index_get_n_rows (DeeIndex *self); | | guint dee_index_get_n_rows (DeeIndex *self); | |
| | | | |
| guint dee_index_get_n_rows_for_term (DeeIndex *self, | | guint dee_index_get_n_rows_for_term (DeeIndex *self, | |
| const gchar *term); | | const gchar *term); | |
| | | | |
| guint dee_index_get_supported_term_match_flags (DeeIndex *se
lf); | | guint dee_index_get_supported_term_match_flags (DeeIndex *se
lf); | |
| | | | |
| G_END_DECLS | | G_END_DECLS | |
| | | | |
End of changes. 9 change blocks. |
| 51 lines changed or deleted | | 8 lines changed or added | |
|
| dee-model.h | | dee-model.h | |
| | | | |
| skipping to change at line 63 | | skipping to change at line 63 | |
| typedef struct _DeeModelIter DeeModelIter; | | typedef struct _DeeModelIter DeeModelIter; | |
| | | | |
| /** | | /** | |
| * DeeModelTag: | | * DeeModelTag: | |
| * | | * | |
| * The DeeModelTag structure is private and should only be used with the | | * The DeeModelTag structure is private and should only be used with the | |
| * provided #DeeModel API. It is owned by DeeModel and should not be freed. | | * provided #DeeModel API. It is owned by DeeModel and should not be freed. | |
| **/ | | **/ | |
| typedef struct _DeeModelTag DeeModelTag; | | typedef struct _DeeModelTag DeeModelTag; | |
| | | | |
|
| | | /** | |
| | | * DeeCompareRowFunc: | |
| | | * @row1: The model being indexed | |
| | | * @row2: The row to extract terms for | |
| | | * @user_data: (closure): User data to pass to comparison function | |
| | | * | |
| | | * Compares @row1 and @row2. Mainly used with dee_model_insert_sorted() and | |
| | | * dee_model_find_sorted(). | |
| | | * | |
| | | * Returns: -1, 0, or 1 if @row1 is respectively less than, equal, or great | |
| | | er | |
| | | * than @row2. | |
| | | */ | |
| | | typedef gint (*DeeCompareRowFunc) (GVariant** row1, | |
| | | GVariant** row2, | |
| | | gpointer user_data); | |
| | | | |
| struct _DeeModelIface | | struct _DeeModelIface | |
| { | | { | |
| GTypeInterface g_iface; | | GTypeInterface g_iface; | |
| | | | |
| /* Signals */ | | /* Signals */ | |
| void (*row_added) (DeeModel *self, | | void (*row_added) (DeeModel *self, | |
| DeeModelIter *iter); | | DeeModelIter *iter); | |
| | | | |
| void (*row_removed) (DeeModel *self, | | void (*row_removed) (DeeModel *self, | |
| DeeModelIter *iter); | | DeeModelIter *iter); | |
| | | | |
| skipping to change at line 106 | | skipping to change at line 122 | |
| GVariant **row_members); | | GVariant **row_members); | |
| | | | |
| DeeModelIter* (*insert_row) (DeeModel *self, | | DeeModelIter* (*insert_row) (DeeModel *self, | |
| guint pos, | | guint pos, | |
| GVariant **row_members); | | GVariant **row_members); | |
| | | | |
| DeeModelIter* (*insert_row_before) (DeeModel *self, | | DeeModelIter* (*insert_row_before) (DeeModel *self, | |
| DeeModelIter *iter, | | DeeModelIter *iter, | |
| GVariant **row_members); | | GVariant **row_members); | |
| | | | |
|
| | | DeeModelIter* (*insert_row_sorted) (DeeModel *self, | |
| | | GVariant **row_members, | |
| | | DeeCompareRowFunc cmp_func, | |
| | | gpointer user_data); | |
| | | | |
| | | DeeModelIter* (*find_row_sorted) (DeeModel *self, | |
| | | GVariant **row_spec, | |
| | | DeeCompareRowFunc cmp_func, | |
| | | gpointer user_data, | |
| | | gboolean *out_was_found); | |
| | | | |
| void (*remove) (DeeModel *self, | | void (*remove) (DeeModel *self, | |
| DeeModelIter *iter); | | DeeModelIter *iter); | |
| | | | |
| void (*clear) (DeeModel *self); | | void (*clear) (DeeModel *self); | |
| | | | |
| void (*set_value) (DeeModel *self, | | void (*set_value) (DeeModel *self, | |
| DeeModelIter *iter, | | DeeModelIter *iter, | |
| guint column, | | guint column, | |
| GVariant *value); | | GVariant *value); | |
| | | | |
| | | | |
| skipping to change at line 208 | | skipping to change at line 235 | |
| void (*_dee_model_8) (void); | | void (*_dee_model_8) (void); | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * dee_model_get_type: | | * dee_model_get_type: | |
| * | | * | |
| * The GType of #DeeModel | | * The GType of #DeeModel | |
| * | | * | |
| * Return value: the #GType of #DeeModel | | * Return value: the #GType of #DeeModel | |
| **/ | | **/ | |
|
| GType dee_model_get_type (void) G_GNUC_CONST; | | GType dee_model_get_type (void); | |
| | | | |
| void dee_model_set_schema (DeeModel *self, | | void dee_model_set_schema (DeeModel *self, | |
| ...) G_GNUC_NULL_TERMINATE
D; | | ...) G_GNUC_NULL_TERMINATE
D; | |
| | | | |
|
| void dee_model_set_schema_valist (DeeModel *self, | | | |
| va_list *args); | | | |
| | | | |
| void dee_model_set_schema_full (DeeModel *self, | | void dee_model_set_schema_full (DeeModel *self, | |
| const gchar* const *column
_schemas, | | const gchar* const *column
_schemas, | |
| guint num_co
lumns); | | guint num_co
lumns); | |
| | | | |
| const gchar* const* dee_model_get_schema (DeeModel *self, | | const gchar* const* dee_model_get_schema (DeeModel *self, | |
| guint *num_columns); | | guint *num_columns); | |
| | | | |
| const gchar* dee_model_get_column_schema (DeeModel *self, | | const gchar* dee_model_get_column_schema (DeeModel *self, | |
| guint column); | | guint column); | |
| | | | |
| guint dee_model_get_n_columns (DeeModel *self); | | guint dee_model_get_n_columns (DeeModel *self); | |
| | | | |
| guint dee_model_get_n_rows (DeeModel *self); | | guint dee_model_get_n_rows (DeeModel *self); | |
| | | | |
| DeeModelIter* dee_model_append (DeeModel *self, | | DeeModelIter* dee_model_append (DeeModel *self, | |
| ...); | | ...); | |
| | | | |
|
| DeeModelIter* dee_model_append_valist (DeeModel *self, | | | |
| va_list *args); | | | |
| | | | |
| DeeModelIter* dee_model_append_row (DeeModel *self, | | DeeModelIter* dee_model_append_row (DeeModel *self, | |
| GVariant **row_members); | | GVariant **row_members); | |
| | | | |
| DeeModelIter* dee_model_prepend (DeeModel *self, | | DeeModelIter* dee_model_prepend (DeeModel *self, | |
| ...); | | ...); | |
| | | | |
|
| DeeModelIter* dee_model_prepend_valist (DeeModel *self, | | | |
| va_list *args); | | | |
| | | | |
| DeeModelIter* dee_model_prepend_row (DeeModel *self, | | DeeModelIter* dee_model_prepend_row (DeeModel *self, | |
| GVariant **row_members); | | GVariant **row_members); | |
| | | | |
| DeeModelIter* dee_model_insert (DeeModel *self, | | DeeModelIter* dee_model_insert (DeeModel *self, | |
| guint pos, | | guint pos, | |
| ...); | | ...); | |
| | | | |
|
| DeeModelIter* dee_model_insert_valist (DeeModel *self, | | | |
| guint pos, | | | |
| va_list *args); | | | |
| | | | |
| DeeModelIter* dee_model_insert_row (DeeModel *self, | | DeeModelIter* dee_model_insert_row (DeeModel *self, | |
| guint pos, | | guint pos, | |
| GVariant **row_members); | | GVariant **row_members); | |
| | | | |
| DeeModelIter* dee_model_insert_before (DeeModel *self, | | DeeModelIter* dee_model_insert_before (DeeModel *self, | |
| DeeModelIter *iter, | | DeeModelIter *iter, | |
| ...); | | ...); | |
| | | | |
|
| DeeModelIter* dee_model_insert_before_valist (DeeModel *self, | | | |
| DeeModelIter *iter, | | | |
| va_list *args); | | | |
| | | | |
| DeeModelIter* dee_model_insert_row_before (DeeModel *self, | | DeeModelIter* dee_model_insert_row_before (DeeModel *self, | |
| DeeModelIter *iter, | | DeeModelIter *iter, | |
| GVariant **row_members); | | GVariant **row_members); | |
| | | | |
|
| | | DeeModelIter* dee_model_insert_row_sorted (DeeModel *self, | |
| | | GVariant **row_member | |
| | | s, | |
| | | DeeCompareRowFunc cmp_func, | |
| | | gpointer user_data) | |
| | | ; | |
| | | | |
| | | DeeModelIter* dee_model_insert_sorted (DeeModel *self, | |
| | | DeeCompareRowFunc cmp_func, | |
| | | gpointer user_data, | |
| | | ...); | |
| | | | |
| | | DeeModelIter* dee_model_find_row_sorted (DeeModel *self, | |
| | | GVariant **row_spec, | |
| | | DeeCompareRowFunc cmp_func, | |
| | | gpointer user_data, | |
| | | gboolean *out_was_fo | |
| | | und); | |
| | | | |
| | | DeeModelIter* dee_model_find_sorted (DeeModel *self, | |
| | | DeeCompareRowFunc cmp_func, | |
| | | gpointer user_data, | |
| | | gboolean *out_was_found, | |
| | | ...); | |
| | | | |
| void dee_model_remove (DeeModel *self, | | void dee_model_remove (DeeModel *self, | |
| DeeModelIter *iter); | | DeeModelIter *iter); | |
| | | | |
| void dee_model_clear (DeeModel *self); | | void dee_model_clear (DeeModel *self); | |
| | | | |
| void dee_model_set (DeeModel *self, | | void dee_model_set (DeeModel *self, | |
| DeeModelIter *iter, | | DeeModelIter *iter, | |
| ...); | | ...); | |
| | | | |
|
| void dee_model_set_valist (DeeModel *self, | | | |
| DeeModelIter *iter, | | | |
| va_list *args); | | | |
| | | | |
| void dee_model_set_value (DeeModel *self, | | void dee_model_set_value (DeeModel *self, | |
| DeeModelIter *iter, | | DeeModelIter *iter, | |
| guint column, | | guint column, | |
| GVariant *value); | | GVariant *value); | |
| | | | |
| void dee_model_set_row (DeeModel *self, | | void dee_model_set_row (DeeModel *self, | |
| DeeModelIter *iter, | | DeeModelIter *iter, | |
| GVariant **row_members); | | GVariant **row_members); | |
| | | | |
| void dee_model_get (DeeModel *self, | | void dee_model_get (DeeModel *self, | |
| DeeModelIter *iter, | | DeeModelIter *iter, | |
| ...); | | ...); | |
| | | | |
|
| void dee_model_get_valist (DeeModel *self, | | | |
| DeeModelIter *iter, | | | |
| va_list args); | | | |
| | | | |
| GVariant** dee_model_get_row (DeeModel *self, | | GVariant** dee_model_get_row (DeeModel *self, | |
| DeeModelIter *iter, | | DeeModelIter *iter, | |
| GVariant **out_row_members); | | GVariant **out_row_members); | |
| | | | |
| GVariant* dee_model_get_value (DeeModel *self, | | GVariant* dee_model_get_value (DeeModel *self, | |
| DeeModelIter *iter, | | DeeModelIter *iter, | |
| guint column); | | guint column); | |
| | | | |
| DeeModelIter* dee_model_get_first_iter (DeeModel *self); | | DeeModelIter* dee_model_get_first_iter (DeeModel *self); | |
| | | | |
| | | | |
| skipping to change at line 384 | | skipping to change at line 408 | |
| gpointer value); | | gpointer value); | |
| | | | |
| void dee_model_clear_tag (DeeModel *self, | | void dee_model_clear_tag (DeeModel *self, | |
| DeeModelIter *iter, | | DeeModelIter *iter, | |
| DeeModelTag *tag); | | DeeModelTag *tag); | |
| | | | |
| GVariant** dee_model_build_row (DeeModel *self, | | GVariant** dee_model_build_row (DeeModel *self, | |
| GVariant **out_row_members, | | GVariant **out_row_members, | |
| ...); | | ...); | |
| | | | |
|
| GVariant** dee_model_build_row_valist (DeeModel *self, | | | |
| GVariant **out_row_members, | | | |
| va_list *args); | | | |
| | | | |
| G_END_DECLS | | G_END_DECLS | |
| | | | |
| #endif /* _HAVE_DEE_MODEL_H */ | | #endif /* _HAVE_DEE_MODEL_H */ | |
| | | | |
End of changes. 12 change blocks. |
| 30 lines changed or deleted | | 54 lines changed or added | |
|
| dee-peer.h | | dee-peer.h | |
| | | | |
| skipping to change at line 29 | | skipping to change at line 29 | |
| | | | |
| #if !defined (_DEE_H_INSIDE) && !defined (DEE_COMPILATION) | | #if !defined (_DEE_H_INSIDE) && !defined (DEE_COMPILATION) | |
| #error "Only <dee.h> can be included directly." | | #error "Only <dee.h> can be included directly." | |
| #endif | | #endif | |
| | | | |
| #ifndef _HAVE_DEE_PEER_H | | #ifndef _HAVE_DEE_PEER_H | |
| #define _HAVE_DEE_PEER_H | | #define _HAVE_DEE_PEER_H | |
| | | | |
| #include <glib.h> | | #include <glib.h> | |
| #include <glib-object.h> | | #include <glib-object.h> | |
|
| | | #include <gio/gio.h> | |
| | | | |
| G_BEGIN_DECLS | | G_BEGIN_DECLS | |
| | | | |
| #define DEE_TYPE_PEER (dee_peer_get_type ()) | | #define DEE_TYPE_PEER (dee_peer_get_type ()) | |
| | | | |
| #define DEE_PEER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ | | #define DEE_PEER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ | |
| DEE_TYPE_PEER, DeePeer)) | | DEE_TYPE_PEER, DeePeer)) | |
| | | | |
| #define DEE_PEER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ | | #define DEE_PEER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \ | |
| DEE_TYPE_PEER, DeePeerClass)) | | DEE_TYPE_PEER, DeePeerClass)) | |
| | | | |
| skipping to change at line 77 | | skipping to change at line 78 | |
| }; | | }; | |
| | | | |
| struct _DeePeerClass | | struct _DeePeerClass | |
| { | | { | |
| /*< private >*/ | | /*< private >*/ | |
| GObjectClass parent_class; | | GObjectClass parent_class; | |
| | | | |
| /*< public >*/ | | /*< public >*/ | |
| | | | |
| /*< signals >*/ | | /*< signals >*/ | |
|
| void (*connected) (DeePeer *peer, const gchar *peer_name); | | void (*peer_found) (DeePeer *peer, const gchar *name); | |
| void (*peer_found) (DeePeer *peer, const gchar *name); | | void (*peer_lost) (DeePeer *peer, const gchar *name); | |
| void (*peer_lost) (DeePeer *peer, const gchar *name); | | void (*connection_acquired) (DeePeer *peer, GDBusConnection *connection); | |
| | | void (*connection_closed) (DeePeer *peer, GDBusConnection *connection); | |
| | | | |
| /*< vtable >*/ | | /*< vtable >*/ | |
|
| | | const gchar* (*get_swarm_leader) (DeePeer *peer); | |
| | | gboolean (*is_swarm_leader) (DeePeer *peer); | |
| | | GSList* (*get_connections) (DeePeer *peer); | |
| | | gchar** (*list_peers) (DeePeer *peer); | |
| | | | |
| /*< private >*/ | | /*< private >*/ | |
| void (*_dee_peer_1) (void); | | void (*_dee_peer_1) (void); | |
| void (*_dee_peer_2) (void); | | void (*_dee_peer_2) (void); | |
| void (*_dee_peer_3) (void); | | void (*_dee_peer_3) (void); | |
|
| void (*_dee_peer_4) (void); | | | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * dee_peer_get_type: | | * dee_peer_get_type: | |
| * | | * | |
| * The GType of #DeePeer | | * The GType of #DeePeer | |
| * | | * | |
| * Return value: the #GType of #DeePeer | | * Return value: the #GType of #DeePeer | |
| **/ | | **/ | |
|
| GType dee_peer_get_type (void) G_GNUC_CONST; | | GType dee_peer_get_type (void); | |
| | | | |
| DeePeer* dee_peer_new (const gchar* swarm_name); | | DeePeer* dee_peer_new (const gchar* swarm_name); | |
| | | | |
|
| const gboolean dee_peer_is_swarm_leader (DeePeer *self); | | gboolean dee_peer_is_swarm_leader (DeePeer *self); | |
| | | | |
| const gchar* dee_peer_get_swarm_leader (DeePeer *self); | | const gchar* dee_peer_get_swarm_leader (DeePeer *self); | |
| | | | |
|
| const gchar * dee_peer_get_swarm_name (DeePeer *self); | | const gchar* dee_peer_get_swarm_name (DeePeer *self); | |
| | | | |
| | | GSList* dee_peer_get_connections (DeePeer *self); | |
| | | | |
| | | gchar** dee_peer_list_peers (DeePeer *self); | |
| | | | |
| G_END_DECLS | | G_END_DECLS | |
| | | | |
| #endif /* _HAVE_DEE_PEER_H */ | | #endif /* _HAVE_DEE_PEER_H */ | |
| | | | |
End of changes. 7 change blocks. |
| 7 lines changed or deleted | | 16 lines changed or added | |
|
| dee-serializable.h | | dee-serializable.h | |
| | | | |
| skipping to change at line 53 | | skipping to change at line 53 | |
| | | | |
| typedef struct _DeeSerializableIface DeeSerializableIface; | | typedef struct _DeeSerializableIface DeeSerializableIface; | |
| typedef struct _DeeSerializable DeeSerializable; | | typedef struct _DeeSerializable DeeSerializable; | |
| | | | |
| /** | | /** | |
| * DeeSerializableParseFunc: | | * DeeSerializableParseFunc: | |
| * @data: A #GVariant with type signature as passed to | | * @data: A #GVariant with type signature as passed to | |
| * dee_serializable_register_parser() when the parser was registered
. | | * dee_serializable_register_parser() when the parser was registered
. | |
| * The variant is not referenced. | | * The variant is not referenced. | |
| * | | * | |
|
| * Return value: A newly constructed #GObject of the #GType used when | | * Return value: (transfer full): A newly constructed #GObject of the #GTyp | |
| * registering the parser. Note that since the environment | | e | |
| * guarantees that the input data is valid according to the | | * used when registering the parser. Note that since | |
| * registration information this function can not fail. | | * the environment guarantees that the input data is valid | |
| * Thus %NULL is not a valid return value. | | * according to the registration information this function | |
| | | * can not fail. Thus %NULL is not a valid return value. | |
| */ | | */ | |
| typedef GObject* (*DeeSerializableParseFunc) (GVariant *data); | | typedef GObject* (*DeeSerializableParseFunc) (GVariant *data); | |
| | | | |
| struct _DeeSerializableIface | | struct _DeeSerializableIface | |
| { | | { | |
| GTypeInterface g_iface; | | GTypeInterface g_iface; | |
| | | | |
| /*< public >*/ | | /*< public >*/ | |
| GVariant* (*serialize) (DeeSerializable *self); | | GVariant* (*serialize) (DeeSerializable *self); | |
| | | | |
| /*< private >*/ | | /*< private >*/ | |
| void (*_dee_serializable_1) (void); | | void (*_dee_serializable_1) (void); | |
| void (*_dee_serializable_2) (void); | | void (*_dee_serializable_2) (void); | |
| void (*_dee_serializable_3) (void); | | void (*_dee_serializable_3) (void); | |
| void (*_dee_serializable_4) (void); | | void (*_dee_serializable_4) (void); | |
| void (*_dee_serializable_5) (void); | | void (*_dee_serializable_5) (void); | |
| }; | | }; | |
| | | | |
|
| GType dee_serializable_get_type (void) G_GNUC_CONST; | | GType dee_serializable_get_type (void); | |
| | | | |
| void dee_serializable_register_parser (GType
type, | | void dee_serializable_register_parser (GType
type, | |
| const GVariantType
*vtype, | | const GVariantType
*vtype, | |
| DeeSerializableParseFun
c parse_func); | | DeeSerializableParseFun
c parse_func); | |
| | | | |
| GObject* dee_serializable_parse (GVariant *data, | | GObject* dee_serializable_parse (GVariant *data, | |
| GType type); | | GType type); | |
| | | | |
| GObject* dee_serializable_parse_external (GVariant *data); | | GObject* dee_serializable_parse_external (GVariant *data); | |
| | | | |
| | | | |
End of changes. 2 change blocks. |
| 6 lines changed or deleted | | 7 lines changed or added | |
|
| dee-term-list.h | | dee-term-list.h | |
| | | | |
| skipping to change at line 75 | | skipping to change at line 75 | |
| }; | | }; | |
| | | | |
| struct _DeeTermListClass | | struct _DeeTermListClass | |
| { | | { | |
| GObjectClass parent_class; | | GObjectClass parent_class; | |
| | | | |
| /*< public >*/ | | /*< public >*/ | |
| const gchar* (* get_term) (DeeTermList *self, | | const gchar* (* get_term) (DeeTermList *self, | |
| guint n); | | guint n); | |
| | | | |
|
| void (* add_term) (DeeTermList *self, | | DeeTermList* (* add_term) (DeeTermList *self, | |
| const gchar *term); | | const gchar *term); | |
| | | | |
| guint (* num_terms) (DeeTermList *self); | | guint (* num_terms) (DeeTermList *self); | |
| | | | |
|
| void (* clear) (DeeTermList *self); | | DeeTermList* (* clear) (DeeTermList *self); | |
| | | | |
| | | DeeTermList* (* clone) (DeeTermList *self); | |
| | | | |
| /*< private >*/ | | /*< private >*/ | |
| void (*_dee_term_list_1) (void); | | void (*_dee_term_list_1) (void); | |
| void (*_dee_term_list_2) (void); | | void (*_dee_term_list_2) (void); | |
| void (*_dee_term_list_3) (void); | | void (*_dee_term_list_3) (void); | |
| void (*_dee_term_list_4) (void); | | void (*_dee_term_list_4) (void); | |
| | | | |
| }; | | }; | |
| | | | |
|
| GType dee_term_list_get_type (void) G_GNUC_CONST; | | GType dee_term_list_get_type (void); | |
| | | | |
| const gchar* dee_term_list_get_term (DeeTermList *self, | | const gchar* dee_term_list_get_term (DeeTermList *self, | |
| guint n); | | guint n); | |
| | | | |
|
| void dee_term_list_add_term (DeeTermList *self, | | DeeTermList* dee_term_list_add_term (DeeTermList *self, | |
| const gchar *term); | | const gchar *term); | |
| | | | |
| guint dee_term_list_num_terms (DeeTermList *self); | | guint dee_term_list_num_terms (DeeTermList *self); | |
| | | | |
|
| void dee_term_list_clear (DeeTermList *self); | | DeeTermList* dee_term_list_clear (DeeTermList *self); | |
| | | | |
| | | DeeTermList* dee_term_list_clone (DeeTermList *self); | |
| | | | |
| G_END_DECLS | | G_END_DECLS | |
| | | | |
| #endif /* _HAVE_DEE_TERM_LIST_H */ | | #endif /* _HAVE_DEE_TERM_LIST_H */ | |
| | | | |
End of changes. 5 change blocks. |
| 5 lines changed or deleted | | 9 lines changed or added | |
|