diff options
author | Alexander Larsson <alexl@redhat.com> | 2007-11-26 16:13:05 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2007-11-26 16:13:05 +0000 |
commit | 3781343738de4abddf56982325a77bd70a98cd26 (patch) | |
tree | 7edf4bfd446dc1465fdb8595641bf5307955940a /gio/gseekable.c | |
parent | 8bdbcb92135c8831d045874d5913a13fe30c3af4 (diff) | |
download | glib-3781343738de4abddf56982325a77bd70a98cd26.tar.gz glib-3781343738de4abddf56982325a77bd70a98cd26.tar.bz2 glib-3781343738de4abddf56982325a77bd70a98cd26.zip |
gio/ docs/reference/gio Merged gio-standalone into glib.
2007-11-26 Alexander Larsson <alexl@redhat.com>
* Makefile.am:
* configure.in:
* gio-2.0-uninstalled.pc.in:
* gio-2.0.pc.in:
* gio-unix-2.0-uninstalled.pc.in:
* gio-unix-2.0.pc.in:
* gio/
* docs/reference/gio
Merged gio-standalone into glib.
* glib/glibintl.h:
* glib/gutils.c:
Export glib_gettext so that gio can use it
Add P_ (using same domain for now)
Add I_ as g_intern_static_string
svn path=/trunk/; revision=5941
Diffstat (limited to 'gio/gseekable.c')
-rw-r--r-- | gio/gseekable.c | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/gio/gseekable.c b/gio/gseekable.c new file mode 100644 index 000000000..90f53da0a --- /dev/null +++ b/gio/gseekable.c @@ -0,0 +1,168 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 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 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., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + * + * Author: Alexander Larsson <alexl@redhat.com> + */ + +#include <config.h> +#include "gseekable.h" +#include "glibintl.h" + +static void g_seekable_base_init (gpointer g_class); + + +GType +g_seekable_get_type (void) +{ + static GType seekable_type = 0; + + if (! seekable_type) + { + static const GTypeInfo seekable_info = + { + sizeof (GSeekableIface), /* class_size */ + g_seekable_base_init, /* base_init */ + NULL, /* base_finalize */ + NULL, + NULL, /* class_finalize */ + NULL, /* class_data */ + 0, + 0, /* n_preallocs */ + NULL + }; + + seekable_type = + g_type_register_static (G_TYPE_INTERFACE, I_("GSeekable"), + &seekable_info, 0); + + g_type_interface_add_prerequisite (seekable_type, G_TYPE_OBJECT); + } + + return seekable_type; +} + +static void +g_seekable_base_init (gpointer g_class) +{ +} + +/** + * g_seekable_tell: + * @seekable: + * + * Returns: a goffset. + **/ +goffset +g_seekable_tell (GSeekable *seekable) +{ + GSeekableIface *iface; + + g_return_val_if_fail (G_IS_SEEKABLE (seekable), 0); + + iface = G_SEEKABLE_GET_IFACE (seekable); + + return (* iface->tell) (seekable); +} + +/** + * g_seekable_can_seek: + * @seekable: + * + * Returns: %TRUE if @seekable can be seeked. %FALSE otherwise. + **/ +gboolean +g_seekable_can_seek (GSeekable *seekable) +{ + GSeekableIface *iface; + + g_return_val_if_fail (G_IS_SEEKABLE (seekable), FALSE); + + iface = G_SEEKABLE_GET_IFACE (seekable); + + return (* iface->can_seek) (seekable); +} + +/** + * g_seekable_seek: + * @seekable: + * @offset: + * @type: + * @cancellable: optional #GCancellable object, %NULL to ignore. + * @error: a #GError location to store the error occuring, or %NULL to + * ignore. + * Returns: %TRUE, %FALSE otherwise. + **/ +gboolean +g_seekable_seek (GSeekable *seekable, + goffset offset, + GSeekType type, + GCancellable *cancellable, + GError **error) +{ + GSeekableIface *iface; + + g_return_val_if_fail (G_IS_SEEKABLE (seekable), FALSE); + + iface = G_SEEKABLE_GET_IFACE (seekable); + + return (* iface->seek) (seekable, offset, type, cancellable, error); +} + +/** + * g_seekable_can_truncate: + * @seekable: + * + * Returns: + **/ +gboolean +g_seekable_can_truncate (GSeekable *seekable) +{ + GSeekableIface *iface; + + g_return_val_if_fail (G_IS_SEEKABLE (seekable), FALSE); + + iface = G_SEEKABLE_GET_IFACE (seekable); + + return (* iface->can_truncate) (seekable); +} + +/** + * g_seekable_truncate: + * @seekable: + * @offset: + * @cancellable: optional #GCancellable object, %NULL to ignore. + * @error: a #GError location to store the error occuring, or %NULL to + * ignore. + * Returns: + **/ +gboolean +g_seekable_truncate (GSeekable *seekable, + goffset offset, + GCancellable *cancellable, + GError **error) +{ + GSeekableIface *iface; + + g_return_val_if_fail (G_IS_SEEKABLE (seekable), FALSE); + + iface = G_SEEKABLE_GET_IFACE (seekable); + + return (* iface->truncate) (seekable, offset, cancellable, error); +} + |