diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2022-01-16 13:11:17 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2022-02-10 23:36:54 +0100 |
commit | e91bdd41f0eb750ff05cb9e3c2f9141c64a199c9 (patch) | |
tree | 643e36d091fa178118295665097e7a1c370042bb | |
parent | 54119deb3ac487d867041b09ef351c386547f4cd (diff) | |
download | tracker-e91bdd41f0eb750ff05cb9e3c2f9141c64a199c9.tar.gz |
libtracker-data: Add specific TrackerRowid type
And add the helper functions so that it can be copied/freed, and
used as a key in hash tables.
Closes: https://gitlab.gnome.org/GNOME/tracker/-/issues/339
-rw-r--r-- | src/libtracker-data/meson.build | 1 | ||||
-rw-r--r-- | src/libtracker-data/tracker-rowid.c | 39 | ||||
-rw-r--r-- | src/libtracker-data/tracker-rowid.h | 38 |
3 files changed, 78 insertions, 0 deletions
diff --git a/src/libtracker-data/meson.build b/src/libtracker-data/meson.build index b367edd12..562c6f735 100644 --- a/src/libtracker-data/meson.build +++ b/src/libtracker-data/meson.build @@ -24,6 +24,7 @@ libtracker_data = static_library('tracker-data', 'tracker-ontology.c', 'tracker-ontologies.c', 'tracker-property.c', + 'tracker-rowid.c', 'tracker-string-builder.c', 'tracker-sparql-parser.c', 'tracker-sparql-types.c', diff --git a/src/libtracker-data/tracker-rowid.c b/src/libtracker-data/tracker-rowid.c new file mode 100644 index 000000000..fc293f760 --- /dev/null +++ b/src/libtracker-data/tracker-rowid.c @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 Red Hat Inc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * 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., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + * Author: Carlos Garnacho <carlosg@gnome.org> + */ + +#include "config.h" + +#include "tracker-rowid.h" + +G_DEFINE_BOXED_TYPE (TrackerRowid, tracker_rowid, + tracker_rowid_copy, tracker_rowid_free) + +TrackerRowid * +tracker_rowid_copy (TrackerRowid *rowid) +{ + return g_slice_dup (TrackerRowid, rowid); +} + +void +tracker_rowid_free (TrackerRowid *rowid) +{ + g_slice_free (TrackerRowid, rowid); +} diff --git a/src/libtracker-data/tracker-rowid.h b/src/libtracker-data/tracker-rowid.h new file mode 100644 index 000000000..135588ecf --- /dev/null +++ b/src/libtracker-data/tracker-rowid.h @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 Red Hat Inc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * 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., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + * Author: Carlos Garnacho <carlosg@gnome.org> + */ + +#ifndef __TRACKER_ROWID_H__ +#define __TRACKER_ROWID_H__ + +#include <glib-object.h> + +typedef gint64 TrackerRowid; + +#define TRACKER_ROWID_TYPE (tracker_rowid_get_type ()); +#define tracker_rowid_equal g_int64_equal +#define tracker_rowid_hash g_int64_hash + +GType tracker_rowid_get_type (void) G_GNUC_CONST; + +TrackerRowid * tracker_rowid_copy (TrackerRowid *rowid); +void tracker_rowid_free (TrackerRowid *rowid); + +#endif /* __TRACKER_ROWID_H__ */ |