~ubuntu-branches/ubuntu/raring/tracker/raring

« back to all changes in this revision

Viewing changes to src/libtracker-miner/tracker-sparql-buffer.h

  • Committer: Package Import Robot
  • Author(s): Michael Biebl
  • Date: 2011-08-26 00:26:14 UTC
  • mfrom: (4.3.17 sid)
  • Revision ID: package-import@ubuntu.com-20110826002614-4qjfs9jhh5gs4p13
Tags: 0.10.24-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2011, Nokia <ivan.frade@nokia.com>
 
3
 *
 
4
 * This library is free software; you can redistribute it and/or
 
5
 * modify it under the terms of the GNU Lesser General Public
 
6
 * License as published by the Free Software Foundation; either
 
7
 * version 2.1 of the License, or (at your option) any later version.
 
8
 *
 
9
 * This library is distributed in the hope that it will be useful,
 
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
12
 * Lesser General Public License for more details.
 
13
 *
 
14
 * You should have received a copy of the GNU Lesser General Public
 
15
 * License along with this library; if not, write to the
 
16
 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 
17
 * Boston, MA  02110-1301, USA.
 
18
 *
 
19
 * Author: Carlos Garnacho <carlos@lanedo.com>
 
20
 */
 
21
 
 
22
#ifndef __LIBTRACKER_MINER_SPARQL_BUFFER_H__
 
23
#define __LIBTRACKER_MINER_SPARQL_BUFFER_H__
 
24
 
 
25
#include <glib-object.h>
 
26
#include <gio/gio.h>
 
27
 
 
28
#include <libtracker-sparql/tracker-sparql.h>
 
29
 
 
30
#include "tracker-task-pool.h"
 
31
 
 
32
G_BEGIN_DECLS
 
33
 
 
34
/* Task pool */
 
35
#define TRACKER_TYPE_SPARQL_BUFFER         (tracker_sparql_buffer_get_type())
 
36
#define TRACKER_SPARQL_BUFFER(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), TRACKER_TYPE_SPARQL_BUFFER, TrackerSparqlBuffer))
 
37
#define TRACKER_SPARQL_BUFFER_CLASS(c)     (G_TYPE_CHECK_CLASS_CAST ((c),    TRACKER_TYPE_SPARQL_BUFFER, TrackerSparqlBufferClass))
 
38
#define TRACKER_IS_SPARQL_BUFFER(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), TRACKER_TYPE_SPARQL_BUFFER))
 
39
#define TRACKER_IS_SPARQL_BUFFER_CLASS(c)  (G_TYPE_CHECK_CLASS_TYPE ((c),    TRACKER_TYPE_SPARQL_BUFFER))
 
40
#define TRACKER_SPARQL_BUFFER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o),  TRACKER_TYPE_SPARQL_BUFFER, TrackerSparqlBufferClass))
 
41
 
 
42
typedef struct _TrackerSparqlBuffer TrackerSparqlBuffer;
 
43
typedef struct _TrackerSparqlBufferClass TrackerSparqlBufferClass;
 
44
 
 
45
typedef enum {
 
46
        TRACKER_BULK_MATCH_EQUALS   = 1 << 0,
 
47
        TRACKER_BULK_MATCH_CHILDREN = 1 << 1
 
48
} TrackerBulkTaskFlags;
 
49
 
 
50
struct _TrackerSparqlBuffer
 
51
{
 
52
        TrackerTaskPool parent_instance;
 
53
        gpointer priv;
 
54
};
 
55
 
 
56
struct _TrackerSparqlBufferClass
 
57
{
 
58
        TrackerTaskPoolClass parent_class;
 
59
};
 
60
 
 
61
GType                tracker_sparql_buffer_get_type (void) G_GNUC_CONST;
 
62
 
 
63
TrackerSparqlBuffer *tracker_sparql_buffer_new   (TrackerSparqlConnection *connection,
 
64
                                                  guint                    limit);
 
65
 
 
66
gboolean             tracker_sparql_buffer_flush (TrackerSparqlBuffer *buffer,
 
67
                                                  const gchar         *reason);
 
68
 
 
69
void                 tracker_sparql_buffer_push  (TrackerSparqlBuffer *buffer,
 
70
                                                  TrackerTask         *task,
 
71
                                                  gint                 priority,
 
72
                                                  GAsyncReadyCallback  cb,
 
73
                                                  gpointer             user_data);
 
74
 
 
75
TrackerTask *        tracker_sparql_task_new_take_sparql_str (GFile                *file,
 
76
                                                              gchar                *sparql_str);
 
77
TrackerTask *        tracker_sparql_task_new_with_sparql_str (GFile                *file,
 
78
                                                              const gchar          *sparql_str);
 
79
TrackerTask *        tracker_sparql_task_new_with_sparql     (GFile                *file,
 
80
                                                              TrackerSparqlBuilder *builder);
 
81
TrackerTask *        tracker_sparql_task_new_bulk            (GFile                *file,
 
82
                                                              const gchar          *sparql_str,
 
83
                                                              TrackerBulkTaskFlags  flags);
 
84
 
 
85
G_END_DECLS
 
86
 
 
87
#endif /* __LIBTRACKER_MINER_SPARQL_BUFFER_H__ */