00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MIDGARD_COLLECTOR_H
00020 #define MIDGARD_COLLECTOR_H
00021
00039 #include "midgard/midgard_connection.h"
00040 #include <midgard/query_builder.h>
00041
00042
00043 #define MIDGARD_TYPE_COLLECTOR (midgard_collector_get_type())
00044 #define MIDGARD_COLLECTOR(object) \
00045 (G_TYPE_CHECK_INSTANCE_CAST ((object),MIDGARD_TYPE_COLLECTOR, MidgardCollector))
00046 #define MIDGARD_COLLECTOR_CLASS(klass) \
00047 (G_TYPE_CHECK_CLASS_CAST ((klass), MIDGARD_TYPE_COLLECTOR, MidgardCollectorClass))
00048 #define MIDGARD_IS_COLLECTOR(object) \
00049 (G_TYPE_CHECK_INSTANCE_TYPE ((object), MIDGARD_TYPE_COLLECTOR))
00050 #define MIDGARD_IS_COLLECTOR_CLASS(klass) \
00051 (G_TYPE_CHECK_CLASS_TYPE ((klass), MIDGARD_TYPE_COLLECTOR))
00052 #define MIDGARD_COLLECTOR_GET_CLASS(obj) \
00053 (G_TYPE_INSTANCE_GET_CLASS ((obj), MIDGARD_TYPE_COLLECTOR, MidgardCollectorClass))
00054
00055 typedef struct _MidgardCollectorPrivate MidgardCollectorPrivate;
00056
00061 typedef struct MidgardCollector MidgardCollector;
00062
00063 struct MidgardCollector{
00064 MidgardQueryBuilder parent;
00065
00066
00067 MidgardCollectorPrivate *private;
00068 };
00069
00074 typedef struct MidgardCollectorClass MidgardCollectorClass;
00075
00076 struct MidgardCollectorClass{
00077 MidgardQueryBuilderClass parent;
00078
00079
00080 gboolean (*set_key_property) (
00081 MidgardCollector *collector, const gchar *key, GValue *value);
00082
00083 gboolean (*add_value_property) (
00084 MidgardCollector *collector, const gchar *value);
00085
00086 gboolean (*set) (
00087 MidgardCollector *collector, const gchar *key,
00088 const gchar *subkey, GValue *value);
00089
00090 GHashTable *(*get) (
00091 MidgardCollector *collector, const gchar *key);
00092
00093 GValue *(*get_subkey) (
00094 MidgardCollector *collector, const gchar *key, const gchar *subkey);
00095
00096 gboolean (*merge) (
00097 MidgardCollector *collector, MidgardCollector *mc, gboolean overwrite);
00098
00099 const gchar **(*list_keys)(
00100 MidgardCollector *collector);
00101
00102 gboolean (*remove_key) (
00103 MidgardCollector *collector, const gchar *key);
00104
00105 void (*destroy) (
00106 MidgardCollector *collector);
00107
00108 gboolean (*add_constraint) (
00109 MidgardCollector *self, const gchar *name,
00110 const gchar *op, const GValue *value);
00111
00112 gboolean (*begin_group) (
00113 MidgardCollector *self, const gchar *type);
00114
00115 gboolean (*end_group) (
00116 MidgardCollector *self);
00117
00118 gboolean (*add_order) (
00119 MidgardCollector *self,
00120 const gchar *name, const gchar *dir);
00121
00122 void (*set_offset) (
00123 MidgardCollector *self, guint offset);
00124
00125 void (*set_limit) (
00126 MidgardCollector *self, guint limit);
00127
00128 void (*unset_languages) (
00129 MidgardCollector *self);
00130
00131 void (*count) (
00132 MidgardCollector *self);
00133
00134 gboolean (*execute) (
00135 MidgardCollector *self);
00136 };
00137
00144 extern GType midgard_collector_get_type(void);
00145
00170 extern MidgardCollector *midgard_collector_new(
00171 MidgardConnection *mgd, const gchar *classname, const gchar *domain, GValue *value);
00172
00200 extern gboolean midgard_collector_set_key_property(
00201 MidgardCollector *collector, const gchar *key, GValue *value);
00202
00223 extern gboolean midgard_collector_add_value_property(
00224 MidgardCollector *collector, const gchar *value);
00225
00256 extern gboolean midgard_collector_set(
00257 MidgardCollector *collector, const gchar *key, const gchar *subkey, GValue *value);
00258
00274 extern GHashTable *midgard_collector_get(
00275 MidgardCollector *collector, const gchar *key);
00276
00288 extern GValue *midgard_collector_get_subkey(
00289 MidgardCollector *collector, const gchar *key, const gchar *subkey);
00290
00305 extern const gchar **midgard_collector_list_keys(
00306 MidgardCollector *self);
00307
00308
00330 extern gboolean midgard_collector_merge(
00331 MidgardCollector *self, MidgardCollector *mc, gboolean overwrite);
00332
00345 extern gboolean midgard_collector_remove_key(
00346 MidgardCollector *collector, const gchar *key);
00347
00359 extern void midgard_collector_destroy(
00360 MidgardCollector *collector);
00368 extern gboolean midgard_collector_add_constraint(
00369 MidgardCollector *self, const gchar *name,
00370 const gchar *op, const GValue *value);
00371
00379 extern gboolean midgard_collector_begin_group(
00380 MidgardCollector *self, const gchar *type);
00381
00389 extern gboolean midgard_collector_end_group(
00390 MidgardCollector *self);
00391
00399 extern gboolean midgard_collector_add_order(
00400 MidgardCollector *self,
00401 const gchar *name, const gchar *dir);
00402
00410 extern void midgard_collector_set_offset(
00411 MidgardCollector *self, guint offset);
00412
00420 extern void midgard_collector_set_limit(
00421 MidgardCollector *self, guint limit);
00422
00429 extern void midgard_collector_unset_languages(
00430 MidgardCollector *self);
00431
00437 extern void midgard_collector_count(
00438 MidgardCollector *self);
00439
00462 extern gboolean midgard_collector_execute(
00463 MidgardCollector *self);
00464
00465 #endif