+static gboolean
+g_converter_output_stream_can_poll (GPollableOutputStream *stream)
+{
+ GOutputStream *base_stream = G_FILTER_OUTPUT_STREAM (stream)->base_stream;
+
+ return (G_IS_POLLABLE_OUTPUT_STREAM (base_stream) &&
+ g_pollable_output_stream_can_poll (G_POLLABLE_OUTPUT_STREAM (base_stream)));
+}
+
+static gboolean
+g_converter_output_stream_is_writable (GPollableOutputStream *stream)
+{
+ GOutputStream *base_stream = G_FILTER_OUTPUT_STREAM (stream)->base_stream;
+
+ return g_pollable_output_stream_is_writable (G_POLLABLE_OUTPUT_STREAM (base_stream));
+}
+
+static gssize
+g_converter_output_stream_write_nonblocking (GPollableOutputStream *stream,
+ const void *buffer,
+ gsize count,
+ GError **error)
+{
+ return write_internal (G_OUTPUT_STREAM (stream), buffer, count, FALSE,
+ NULL, error);
+}
+
+static GSource *
+g_converter_output_stream_create_source (GPollableOutputStream *stream,
+ GCancellable *cancellable)
+{
+ GOutputStream *base_stream = G_FILTER_OUTPUT_STREAM (stream)->base_stream;
+ GSource *base_source, *pollable_source;
+
+ base_source = g_pollable_output_stream_create_source (G_POLLABLE_OUTPUT_STREAM (base_stream), NULL);
+ pollable_source = g_pollable_source_new_full (stream, base_source,
+ cancellable);
+ g_source_unref (base_source);
+
+ return pollable_source;
+}
+
+/**
+ * g_converter_output_stream_get_converter:
+ * @converter_stream: a #GConverterOutputStream
+ *
+ * Gets the #GConverter that is used by @converter_stream.
+ *
+ * Returns: (transfer none): the converter of the converter output stream
+ *
+ * Since: 2.24
+ */