/** * g_filter_input_stream_get_base_stream: * @stream: a #GFilterInputStream. * * Gets the base stream for the filter stream. * * Returns: (transfer none): a #GInputStream. **/ GInputStream * g_filter_input_stream_get_base_stream (GFilterInputStream *stream) { g_return_val_if_fail (G_IS_FILTER_INPUT_STREAM (stream), NULL); return stream->base_stream; }
/** * g_filter_input_stream_get_close_base_stream: * @stream: a #GFilterInputStream. * * Returns whether the base stream will be closed when @stream is * closed. * * Return value: %TRUE if the base stream will be closed. **/ gboolean g_filter_input_stream_get_close_base_stream (GFilterInputStream *stream) { g_return_val_if_fail (G_IS_FILTER_INPUT_STREAM (stream), FALSE); return GET_PRIVATE (stream)->close_base; }
static gboolean is_network_stream (GInputStream *stream) { while (G_IS_FILTER_INPUT_STREAM (stream)) stream = G_FILTER_INPUT_STREAM (stream)->base_stream; return !G_IS_FILE_INPUT_STREAM (stream); }
/** * g_filter_input_stream_set_close_base_stream: * @stream: a #GFilterInputStream. * @close_base: %TRUE to close the base stream. * * Sets whether the base stream will be closed when @stream is closed. **/ void g_filter_input_stream_set_close_base_stream (GFilterInputStream *stream, gboolean close_base) { GFilterInputStreamPrivate *priv; g_return_if_fail (G_IS_FILTER_INPUT_STREAM (stream)); close_base = !!close_base; priv = GET_PRIVATE (stream); if (priv->close_base != close_base) { priv->close_base = close_base; g_object_notify (G_OBJECT (stream), "close-base-stream"); } }