static gboolean rygel_seekable_response_perform_seek_co (RygelSeekableResponsePerformSeekData* data) { switch (data->_state_) { case 0: goto _state_0; case 15: goto _state_15; default: g_assert_not_reached (); } _state_0: { { #line 75 "rygel-seekable-response.vala" G_FILE_INPUT_STREAM_GET_CLASS (data->self->priv->input_stream)->seek (data->self->priv->input_stream, rygel_http_seek_get_start (data->self->priv->seek), G_SEEK_SET, rygel_state_machine_get_cancellable ((RygelStateMachine*) data->self), &data->_inner_error_); #line 450 "rygel-seekable-response.c" if (data->_inner_error_ != NULL) { goto __catch36_g_error; } } goto __finally36; __catch36_g_error: { data->err = data->_inner_error_; data->_inner_error_ = NULL; { #line 81 "rygel-seekable-response.vala" g_warning (_ ("Failed to seek to %s-%s on URI %s: %s"), data->_tmp0_ = g_strdup_printf ("%lli", rygel_http_seek_get_start (data->self->priv->seek)), data->_tmp1_ = g_strdup_printf ("%lli", rygel_http_seek_get_stop (data->self->priv->seek)), data->_tmp2_ = g_file_get_uri (data->self->priv->file), data->err->message); #line 463 "rygel-seekable-response.c" _g_free0 (data->_tmp2_); _g_free0 (data->_tmp1_); _g_free0 (data->_tmp0_); #line 86 "rygel-seekable-response.vala" rygel_http_response_end ((RygelHTTPResponse*) data->self, FALSE, (guint) SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE); #line 469 "rygel-seekable-response.c" _g_error_free0 (data->err); { 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; } _g_error_free0 (data->err); } } __finally36: if (data->_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, data->_inner_error_->message, g_quark_to_string (data->_inner_error_->domain), data->_inner_error_->code); g_clear_error (&data->_inner_error_); return FALSE; } data->_state_ = 15; rygel_seekable_response_start_reading (data->self, rygel_seekable_response_perform_seek_ready, data); return FALSE; _state_15: #line 91 "rygel-seekable-response.vala" rygel_seekable_response_start_reading_finish (data->self, data->_res_); #line 495 "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; } }
static void rygel_seekable_response_on_file_read (RygelSeekableResponse* self, GObject* source_object, GAsyncResult* _result_) { GError * _inner_error_; g_return_if_fail (self != NULL); g_return_if_fail (source_object != NULL); g_return_if_fail (_result_ != NULL); _inner_error_ = NULL; { GFileInputStream* _tmp0_; GFileInputStream* _tmp1_; _tmp0_ = g_file_read_finish (self->priv->file, _result_, &_inner_error_); if (_inner_error_ != NULL) { goto __catch12_g_error; goto __finally12; } _tmp1_ = NULL; self->priv->input_stream = (_tmp1_ = _tmp0_, (self->priv->input_stream == NULL) ? NULL : (self->priv->input_stream = (g_object_unref (self->priv->input_stream), NULL)), _tmp1_); } goto __finally12; __catch12_g_error: { GError * err; err = _inner_error_; _inner_error_ = NULL; { char* _tmp2_; _tmp2_ = NULL; g_warning ("rygel-seekable-response.vala:74: Failed to read 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)); return; } } __finally12: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); g_clear_error (&_inner_error_); return; } if (self->priv->seek != NULL) { { G_FILE_INPUT_STREAM_GET_CLASS (self->priv->input_stream)->seek (self->priv->input_stream, rygel_seek_get_start (self->priv->seek), G_SEEK_SET, ((RygelHTTPResponse*) self)->cancellable, &_inner_error_); if (_inner_error_ != NULL) { goto __catch13_g_error; goto __finally13; } } goto __finally13; __catch13_g_error: { GError * err; err = _inner_error_; _inner_error_ = NULL; { char* _tmp5_; char* _tmp4_; char* _tmp3_; _tmp5_ = NULL; _tmp4_ = NULL; _tmp3_ = NULL; g_warning ("rygel-seekable-response.vala:87: Failed to seek to %s-%s on URI %s: %s\n", _tmp3_ = g_strdup_printf ("%lli", rygel_seek_get_start (self->priv->seek)), _tmp4_ = g_strdup_printf ("%lli", rygel_seek_get_stop (self->priv->seek)), _tmp5_ = g_file_get_uri (self->priv->file), err->message); _tmp5_ = (g_free (_tmp5_), NULL); _tmp4_ = (g_free (_tmp4_), NULL); _tmp3_ = (g_free (_tmp3_), NULL); rygel_http_response_end ((RygelHTTPResponse*) self, FALSE, (guint) SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE); (err == NULL) ? NULL : (err = (g_error_free (err), NULL)); return; } } __finally13: if (_inner_error_ != NULL) { g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); g_clear_error (&_inner_error_); return; } } g_input_stream_read_async ((GInputStream*) self->priv->input_stream, self->priv->buffer, RYGEL_SEEKABLE_RESPONSE_BUFFER_LENGTH, self->priv->priority, ((RygelHTTPResponse*) self)->cancellable, _rygel_seekable_response_on_contents_read_gasync_ready_callback, self); }