/* Copyright (C) 2007 The gtkmm Development Team * * 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, see . */ #include #include #include _DEFS(giomm,gio) _PINCLUDE(glibmm/private/interface_p.h) #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef struct _GSeekableIface GSeekableIface; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ namespace Gio { /** Stream seeking interface. * Seekable is implemented by streams (implementations of InputStream or OutputStream) that support seeking. * To find the position of a stream, use tell(). To find * out if a stream supports seeking, use can_seek(). To position a * stream, use seek(). To find out if a stream supports * truncating, use can_truncate(). To truncate a stream, use * truncate(). * * @ingroup Streams * * @newin{2,16} */ class GIOMM_API Seekable : public Glib::Interface { _CLASS_INTERFACE(Seekable, GSeekable, G_SEEKABLE, GSeekableIface, , , GIOMM_API) public: _WRAP_METHOD(goffset tell() const, g_seekable_tell) _WRAP_METHOD(bool can_seek() const, g_seekable_can_seek) _WRAP_METHOD(bool seek(goffset offset, Glib::SeekType type, const Glib::RefPtr& cancellable{?}), g_seekable_seek, errthrow) //TODO: Document the exception in the C API: https://bugzilla.gnome.org/show_bug.cgi?id=509990#c1 _WRAP_METHOD(bool can_truncate() const, g_seekable_can_truncate) _WRAP_METHOD(bool truncate(goffset offset, const Glib::RefPtr& cancellable{?}), g_seekable_truncate, errthrow) //TODO: Document the exception in the C API: https://bugzilla.gnome.org/show_bug.cgi?id=509990#c1 protected: //_WRAP_VFUNC(goffset tell() const, tell) //_WRAP_VFUNC(goffset can_seek() const, can_seek) //_WRAP_VFUNC(goffset seek(goffset offset, Glib::SeekType type, const Glib::RefPtr& cancellable, GError** error), seek) //_WRAP_VFUNC(goffset can_truncate() const, can_truncate) //Renamed to truncate() - we don't know why it's called truncate_fn in C. //_WRAP_VFUNC(goffset truncate(goffset offset, const Glib::RefPtr& cancellable, GError** error), truncate_fn) //There are no properties or signals. }; } // namespace Gio