Beispiel #1
0
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));
}
Beispiel #4
0
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;
	}
}
Beispiel #5
0
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;
	}
}
Beispiel #6
0
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;
	}
}
Beispiel #7
0
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);
}