summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjell Ahlstedt <kjellahlstedt@gmail.com>2017-07-04 10:41:23 +0200
committerKjell Ahlstedt <kjellahlstedt@gmail.com>2017-07-04 10:41:23 +0200
commit50f9e3d3762c3d795bc67280d539e68d95a27ece (patch)
tree7f1c7518cc8d138fd942bc21263b30c5e88a00db
parentfec0a48e439128452de9b9da4bf49c336e61980b (diff)
downloadglibmm-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.hg5
-rw-r--r--gio/src/bufferedoutputstream.hg7
-rw-r--r--gio/src/dataoutputstream.hg15
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
-