static void rygel_http_response_on_cancelled (RygelHTTPResponse* self, GCancellable* cancellable) { #line 57 "rygel-http-response_seekable-response.vala" g_return_if_fail (self != NULL); #line 57 "rygel-http-response_seekable-response.vala" g_return_if_fail (cancellable != NULL); #line 58 "rygel-http-response_seekable-response.vala" rygel_http_response_end (self, TRUE, (guint) SOUP_STATUS_CANCELLED); #line 188 "rygel-http-response_seekable-response.c" }
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 void rygel_seekable_response_on_input_stream_closed (RygelSeekableResponse* self, GObject* source_object, GAsyncResult* _result_) { GError * _inner_error_; GFileInputStream* _tmp0_; GFileInputStream* input_stream; 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_)); { g_input_stream_close_finish ((GInputStream*) input_stream, _result_, &_inner_error_); if (_inner_error_ != NULL) { goto __catch15_g_error; goto __finally15; } } goto __finally15; __catch15_g_error: { GError * err; err = _inner_error_; _inner_error_ = NULL; { char* _tmp1_; _tmp1_ = NULL; g_warning ("rygel-seekable-response.vala:136: Failed to close stream to URI %s: %s\n", _tmp1_ = g_file_get_uri (self->priv->file), err->message); _tmp1_ = (g_free (_tmp1_), NULL); (err == NULL) ? NULL : (err = (g_error_free (err), NULL)); } } __finally15: 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; } rygel_http_response_end ((RygelHTTPResponse*) self, FALSE, (guint) SOUP_STATUS_NONE); (input_stream == NULL) ? NULL : (input_stream = (g_object_unref (input_stream), NULL)); }
static gboolean rygel_seekable_response_close_stream_co (RygelSeekableResponseCloseStreamData* data) { switch (data->_state_) { case 0: goto _state_0; case 21: goto _state_21; default: g_assert_not_reached (); } _state_0: { { data->_state_ = 21; g_input_stream_close_async ((GInputStream*) data->self->priv->input_stream, data->self->priv->priority, rygel_state_machine_get_cancellable ((RygelStateMachine*) data->self), rygel_seekable_response_close_stream_ready, data); return FALSE; _state_21: #line 151 "rygel-seekable-response.vala" g_input_stream_close_finish ((GInputStream*) data->self->priv->input_stream, data->_res_, &data->_inner_error_); #line 863 "rygel-seekable-response.c" if (data->_inner_error_ != NULL) { goto __catch38_g_error; } } goto __finally38; __catch38_g_error: { data->err = data->_inner_error_; data->_inner_error_ = NULL; { #line 154 "rygel-seekable-response.vala" g_warning (_ ("Failed to close stream to URI %s: %s"), data->_tmp0_ = g_file_get_uri (data->self->priv->file), data->err->message); #line 876 "rygel-seekable-response.c" _g_free0 (data->_tmp0_); _g_error_free0 (data->err); } } __finally38: 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; } #line 159 "rygel-seekable-response.vala" if (rygel_state_machine_get_cancellable ((RygelStateMachine*) data->self) == NULL) { #line 159 "rygel-seekable-response.vala" data->_tmp1_ = TRUE; #line 891 "rygel-seekable-response.c" } else { #line 159 "rygel-seekable-response.vala" data->_tmp1_ = !g_cancellable_is_cancelled (rygel_state_machine_get_cancellable ((RygelStateMachine*) data->self)); #line 895 "rygel-seekable-response.c" } #line 159 "rygel-seekable-response.vala" if (data->_tmp1_) { #line 160 "rygel-seekable-response.vala" rygel_http_response_end ((RygelHTTPResponse*) data->self, FALSE, (guint) SOUP_STATUS_NONE); #line 901 "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 gboolean rygel_seekable_response_start_reading_co (RygelSeekableResponseStartReadingData* data) { switch (data->_state_) { case 0: goto _state_0; case 16: goto _state_16; case 17: goto _state_17; default: g_assert_not_reached (); } _state_0: { { data->_state_ = 16; rygel_seekable_response_read_contents (data->self, rygel_seekable_response_start_reading_ready, data); return FALSE; _state_16: #line 96 "rygel-seekable-response.vala" rygel_seekable_response_read_contents_finish (data->self, data->_res_, &data->_inner_error_); #line 561 "rygel-seekable-response.c" if (data->_inner_error_ != NULL) { if (g_error_matches (data->_inner_error_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { goto __catch37_g_io_error_cancelled; } goto __catch37_g_error; } } goto __finally37; __catch37_g_io_error_cancelled: { data->cancelled_err = data->_inner_error_; data->_inner_error_ = NULL; { _g_error_free0 (data->cancelled_err); } } goto __finally37; __catch37_g_error: { data->err = data->_inner_error_; data->_inner_error_ = NULL; { #line 100 "rygel-seekable-response.vala" g_warning (_ ("Failed to read contents from URI: %s: %s"), data->_tmp0_ = g_file_get_uri (data->self->priv->file), data->err->message); #line 586 "rygel-seekable-response.c" _g_free0 (data->_tmp0_); #line 103 "rygel-seekable-response.vala" rygel_http_response_end ((RygelHTTPResponse*) data->self, FALSE, (guint) SOUP_STATUS_NOT_FOUND); #line 590 "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); } } __finally37: 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_ = 17; rygel_seekable_response_close_stream (data->self, rygel_seekable_response_start_reading_ready, data); return FALSE; _state_17: #line 108 "rygel-seekable-response.vala" rygel_seekable_response_close_stream_finish (data->self, data->_res_); #line 616 "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 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 gboolean rygel_seekable_response_real_run_co (RygelSeekableResponseRunData* data) { switch (data->_state_) { case 0: goto _state_0; case 13: goto _state_13; case 14: goto _state_14; default: g_assert_not_reached (); } _state_0: { { data->_state_ = 13; g_file_read_async (data->self->priv->file, data->self->priv->priority, rygel_state_machine_get_cancellable ((RygelStateMachine*) data->self), rygel_seekable_response_run_ready, data); return FALSE; _state_13: data->_tmp0_ = g_file_read_finish (data->self->priv->file, data->_res_, &data->_inner_error_); if (data->_inner_error_ != NULL) { goto __catch35_g_error; } #line 59 "rygel-seekable-response.vala" data->self->priv->input_stream = (data->_tmp1_ = data->_tmp0_, _g_object_unref0 (data->self->priv->input_stream), data->_tmp1_); #line 350 "rygel-seekable-response.c" } goto __finally35; __catch35_g_error: { data->err = data->_inner_error_; data->_inner_error_ = NULL; { #line 62 "rygel-seekable-response.vala" g_warning (_ ("Failed to read from URI: %s: %s"), data->_tmp2_ = g_file_get_uri (data->self->priv->file), data->err->message); #line 360 "rygel-seekable-response.c" _g_free0 (data->_tmp2_); #line 65 "rygel-seekable-response.vala" rygel_http_response_end ((RygelHTTPResponse*) data->self, FALSE, (guint) SOUP_STATUS_NOT_FOUND); #line 364 "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); } } __finally35: 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_ = 14; rygel_seekable_response_perform_seek (data->self, rygel_seekable_response_run_ready, data); return FALSE; _state_14: #line 70 "rygel-seekable-response.vala" rygel_seekable_response_perform_seek_finish (data->self, data->_res_); #line 390 "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); }