[glibmm] Gio::Seekable: More implementations, fix base class of DataOutputStream



commit 50f9e3d3762c3d795bc67280d539e68d95a27ece
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date:   Tue Jul 4 10:41:23 2017 +0200

    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.

 gio/src/bufferedinputstream.hg  |    5 ++++-
 gio/src/bufferedoutputstream.hg |    7 ++++---
 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 3894f95..413d965 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 4933db9..39145e7 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 95c398a..efd8211 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
-


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]