2
* Copyright (C) 2011, Nokia <ivan.frade@nokia.com>
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.
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.
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.
19
* Author: Carlos Garnacho <carlos@lanedo.com>
22
#ifndef __LIBTRACKER_MINER_SPARQL_BUFFER_H__
23
#define __LIBTRACKER_MINER_SPARQL_BUFFER_H__
25
#include <glib-object.h>
28
#include <libtracker-sparql/tracker-sparql.h>
30
#include "tracker-task-pool.h"
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))
42
typedef struct _TrackerSparqlBuffer TrackerSparqlBuffer;
43
typedef struct _TrackerSparqlBufferClass TrackerSparqlBufferClass;
46
TRACKER_BULK_MATCH_EQUALS = 1 << 0,
47
TRACKER_BULK_MATCH_CHILDREN = 1 << 1
48
} TrackerBulkTaskFlags;
50
struct _TrackerSparqlBuffer
52
TrackerTaskPool parent_instance;
56
struct _TrackerSparqlBufferClass
58
TrackerTaskPoolClass parent_class;
61
GType tracker_sparql_buffer_get_type (void) G_GNUC_CONST;
63
TrackerSparqlBuffer *tracker_sparql_buffer_new (TrackerSparqlConnection *connection,
66
gboolean tracker_sparql_buffer_flush (TrackerSparqlBuffer *buffer,
69
void tracker_sparql_buffer_push (TrackerSparqlBuffer *buffer,
72
GAsyncReadyCallback cb,
75
TrackerTask * tracker_sparql_task_new_take_sparql_str (GFile *file,
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);
87
#endif /* __LIBTRACKER_MINER_SPARQL_BUFFER_H__ */