static void rygel_seekable_response_on_contents_read (RygelSeekableResponse* self, GObject* source_object, GAsyncResult* _result_) { GError * _inner_error_; GFileInputStream* _tmp0_; GFileInputStream* input_stream; gssize bytes_read; g_return_if_fail (self != NULL); g_return_if_fail (source_object != NULL); g_return_if_fail (_result_ != NULL); _inner_error_ = NULL; _tmp0_ = NULL; input_stream = (_tmp0_ = G_FILE_INPUT_STREAM (source_object), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)); bytes_read = 0L; { gssize _tmp1_; _tmp1_ = g_input_stream_read_finish ((GInputStream*) input_stream, _result_, &_inner_error_); if (_inner_error_ != NULL) { goto __catch14_g_error; goto __finally14; } bytes_read = _tmp1_; } goto __finally14; __catch14_g_error: { GError * err; err = _inner_error_; _inner_error_ = NULL; { char* _tmp2_; _tmp2_ = NULL; g_warning ("rygel-seekable-response.vala:113: Failed to read contents from URI: %s: %s\n", _tmp2_ = g_file_get_uri (self->priv->file), err->message); _tmp2_ = (g_free (_tmp2_), NULL); rygel_http_response_end ((RygelHTTPResponse*) self, FALSE, (guint) SOUP_STATUS_NOT_FOUND); (err == NULL) ? NULL : (err = (g_error_free (err), NULL)); (input_stream == NULL) ? NULL : (input_stream = (g_object_unref (input_stream), NULL)); return; } } __finally14: if (_inner_error_ != NULL) { (input_stream == NULL) ? NULL : (input_stream = (g_object_unref (input_stream), NULL)); g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); g_clear_error (&_inner_error_); return; } if (bytes_read > 0) { rygel_http_response_push_data ((RygelHTTPResponse*) self, self->priv->buffer, (gsize) bytes_read); } else { g_input_stream_close_async ((GInputStream*) input_stream, self->priv->priority, ((RygelHTTPResponse*) self)->cancellable, _rygel_seekable_response_on_input_stream_closed_gasync_ready_callback, self); } (input_stream == NULL) ? NULL : (input_stream = (g_object_unref (input_stream), NULL)); }
static gboolean rygel_seekable_response_read_contents_co (RygelSeekableResponseReadContentsData* data) { switch (data->_state_) { case 0: goto _state_0; case 18: goto _state_18; case 19: goto _state_19; case 20: goto _state_20; default: g_assert_not_reached (); } _state_0: { data->_state_ = 18; g_input_stream_read_async ((GInputStream*) data->self->priv->input_stream, data->self->priv->buffer, rygel_seekable_response_bytes_to_read (data->self), data->self->priv->priority, rygel_state_machine_get_cancellable ((RygelStateMachine*) data->self), rygel_seekable_response_read_contents_ready, data); return FALSE; _state_18: data->bytes_read = g_input_stream_read_finish ((GInputStream*) data->self->priv->input_stream, data->_res_, &data->_inner_error_); if (data->_inner_error_ != NULL) { g_simple_async_result_set_from_error (data->_async_result, data->_inner_error_); g_error_free (data->_inner_error_); { if (data->_state_ == 0) { g_simple_async_result_complete_in_idle (data->_async_result); } else { g_simple_async_result_complete (data->_async_result); } g_object_unref (data->_async_result); return FALSE; } } #line 121 "rygel-seekable-response.vala" g_signal_connect_object (((RygelHTTPResponse*) data->self)->msg, "wrote-chunk", (GCallback) __lambda3__soup_message_wrote_chunk, data->self, 0); #line 127 "rygel-seekable-response.vala" while (TRUE) { #line 127 "rygel-seekable-response.vala" if (!(data->bytes_read > 0)) { #line 127 "rygel-seekable-response.vala" break; #line 747 "rygel-seekable-response.c" } #line 128 "rygel-seekable-response.vala" rygel_http_response_push_data ((RygelHTTPResponse*) data->self, data->self->priv->buffer, (gsize) data->bytes_read); #line 129 "rygel-seekable-response.vala" data->self->priv->total_length = data->self->priv->total_length - ((gsize) data->bytes_read); #line 131 "rygel-seekable-response.vala" ((RygelHTTPResponse*) data->self)->run_continue = (data->_tmp0_ = _rygel_seekable_response_read_contents_co_gsource_func, ((((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target_destroy_notify == NULL) ? NULL : (((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target_destroy_notify (((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target), NULL), ((RygelHTTPResponse*) data->self)->run_continue = NULL, ((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target = NULL, ((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target_destroy_notify = NULL), ((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target = data, ((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target_destroy_notify = NULL, data->_tmp0_); #line 755 "rygel-seekable-response.c" data->_state_ = 19; return FALSE; _state_19: ; #line 135 "rygel-seekable-response.vala" ((RygelHTTPResponse*) data->self)->run_continue = (data->_tmp1_ = NULL, ((((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target_destroy_notify == NULL) ? NULL : (((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target_destroy_notify (((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target), NULL), ((RygelHTTPResponse*) data->self)->run_continue = NULL, ((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target = NULL, ((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target_destroy_notify = NULL), ((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target = NULL, ((RygelHTTPResponse*) ((RygelHTTPResponse*) data->self))->run_continue_target_destroy_notify = NULL, data->_tmp1_); #line 137 "rygel-seekable-response.vala" if (rygel_state_machine_get_cancellable ((RygelStateMachine*) data->self) != NULL) { #line 137 "rygel-seekable-response.vala" data->_tmp2_ = g_cancellable_is_cancelled (rygel_state_machine_get_cancellable ((RygelStateMachine*) data->self)); #line 766 "rygel-seekable-response.c" } else { #line 137 "rygel-seekable-response.vala" data->_tmp2_ = FALSE; #line 770 "rygel-seekable-response.c" } #line 137 "rygel-seekable-response.vala" if (data->_tmp2_) { #line 138 "rygel-seekable-response.vala" break; #line 776 "rygel-seekable-response.c" } data->_state_ = 20; g_input_stream_read_async ((GInputStream*) data->self->priv->input_stream, data->self->priv->buffer, rygel_seekable_response_bytes_to_read (data->self), data->self->priv->priority, rygel_state_machine_get_cancellable ((RygelStateMachine*) data->self), rygel_seekable_response_read_contents_ready, data); return FALSE; _state_20: data->_tmp3_ = g_input_stream_read_finish ((GInputStream*) data->self->priv->input_stream, data->_res_, &data->_inner_error_); if (data->_inner_error_ != NULL) { g_simple_async_result_set_from_error (data->_async_result, data->_inner_error_); g_error_free (data->_inner_error_); { if (data->_state_ == 0) { g_simple_async_result_complete_in_idle (data->_async_result); } else { g_simple_async_result_complete (data->_async_result); } g_object_unref (data->_async_result); return FALSE; } } #line 141 "rygel-seekable-response.vala" data->bytes_read = data->_tmp3_; #line 798 "rygel-seekable-response.c" } } { if (data->_state_ == 0) { g_simple_async_result_complete_in_idle (data->_async_result); } else { g_simple_async_result_complete (data->_async_result); } g_object_unref (data->_async_result); return FALSE; } }