diff options
author | Kjell Ahlstedt <kjellahlstedt@gmail.com> | 2017-07-04 10:41:23 +0200 |
---|---|---|
committer | Kjell Ahlstedt <kjellahlstedt@gmail.com> | 2017-07-04 10:41:23 +0200 |
commit | 50f9e3d3762c3d795bc67280d539e68d95a27ece (patch) | |
tree | 7f1c7518cc8d138fd942bc21263b30c5e88a00db | |
parent | fec0a48e439128452de9b9da4bf49c336e61980b (diff) | |
download | glibmm-50f9e3d3762c3d795bc67280d539e68d95a27ece.tar.gz |
Gio::Seekable: More implementations, fix base class of DataOutputStream
* gio/src/bufferedinputstream.hg:
* gio/src/bufferedoutputstream.hg: Implement Seekable.
* gio/src/dataoutputstream.hg: Implement Seekable. Change the base class
from BufferedOutputStream to FilterOutputStream.
GSeekable was implemented in the underlying glib classes with glib bug 673034.
The base class of Gio::DataOutputStream has problably been wrong from the
beginning. GDataInputStream has base class GBufferedInputStream,
but GDataOutputStream has base class GFilterOutputStream.
-rw-r--r-- | gio/src/bufferedinputstream.hg | 5 | ||||
-rw-r--r-- | gio/src/bufferedoutputstream.hg | 7 | ||||
-rw-r--r-- | gio/src/dataoutputstream.hg | 15 |
3 files changed, 15 insertions, 12 deletions
diff --git a/gio/src/bufferedinputstream.hg b/gio/src/bufferedinputstream.hg index 3894f95b..413d9652 100644 --- a/gio/src/bufferedinputstream.hg +++ b/gio/src/bufferedinputstream.hg @@ -16,6 +16,7 @@ */ #include <giomm/filterinputstream.h> +#include <giomm/seekable.h> #include <glibmm/object.h> _DEFS(giomm,gio) @@ -40,9 +41,11 @@ namespace Gio * * @newin{2,16} */ -class BufferedInputStream : public Gio::FilterInputStream +class BufferedInputStream : public Gio::FilterInputStream, public Gio::Seekable { _CLASS_GOBJECT(BufferedInputStream, GBufferedInputStream, G_BUFFERED_INPUT_STREAM, Gio::FilterInputStream, GFilterInputStream) + _IMPLEMENTS_INTERFACE(Seekable) + protected: _WRAP_CTOR(BufferedInputStream(const Glib::RefPtr<InputStream>& base_stream), g_buffered_input_stream_new) diff --git a/gio/src/bufferedoutputstream.hg b/gio/src/bufferedoutputstream.hg index 4933db9f..39145e7a 100644 --- a/gio/src/bufferedoutputstream.hg +++ b/gio/src/bufferedoutputstream.hg @@ -1,5 +1,3 @@ -// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*- - /* Copyright (C) 2008 The gtkmm Development Team * * This library is free software; you can redistribute it and/or @@ -18,6 +16,7 @@ */ #include <giomm/filteroutputstream.h> +#include <giomm/seekable.h> #include <glibmm/object.h> _DEFS(giomm,gio) @@ -38,9 +37,11 @@ namespace Gio * * @newin{2,16} */ -class BufferedOutputStream : public Gio::FilterOutputStream +class BufferedOutputStream : public Gio::FilterOutputStream, public Gio::Seekable { _CLASS_GOBJECT(BufferedOutputStream, GBufferedOutputStream, G_BUFFERED_OUTPUT_STREAM, Gio::FilterOutputStream, GFilterOutputStream) + _IMPLEMENTS_INTERFACE(Seekable) + protected: _WRAP_CTOR(BufferedOutputStream(const Glib::RefPtr<OutputStream>& base_stream), g_buffered_output_stream_new) diff --git a/gio/src/dataoutputstream.hg b/gio/src/dataoutputstream.hg index 95c398af..efd82110 100644 --- a/gio/src/dataoutputstream.hg +++ b/gio/src/dataoutputstream.hg @@ -1,5 +1,3 @@ -// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*- - /* Copyright (C) 2007 The gtkmm Development Team * * This library is free software; you can redistribute it and/or @@ -17,26 +15,28 @@ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include <giomm/bufferedoutputstream.h> +#include <giomm/filteroutputstream.h> +#include <giomm/seekable.h> #include <giomm/enums.h> _DEFS(giomm,gio) -_PINCLUDE(giomm/private/bufferedoutputstream_p.h) +_PINCLUDE(giomm/private/filteroutputstream_p.h) namespace Gio { /** - * An implementation of BufferedOutputStream that allows for high-level data + * An implementation of FilterOutputStream that allows for high-level data * manipulation of arbitrary data (including binary operations). * * @ingroup Streams * * @newin{2,16} */ -class DataOutputStream : public Gio::BufferedOutputStream +class DataOutputStream : public Gio::FilterOutputStream, public Gio::Seekable { - _CLASS_GOBJECT(DataOutputStream, GDataOutputStream, G_DATA_OUTPUT_STREAM, Gio::BufferedOutputStream, GBufferedOutputStream) + _CLASS_GOBJECT(DataOutputStream, GDataOutputStream, G_DATA_OUTPUT_STREAM, Gio::FilterOutputStream, GFilterOutputStream) + _IMPLEMENTS_INTERFACE(Seekable) protected: _WRAP_CTOR(DataOutputStream(const Glib::RefPtr<OutputStream>& base_stream), g_data_output_stream_new) @@ -68,4 +68,3 @@ public: }; } // namespace Gio - |