Class

DexFuture

unstable since: 1

Description [src]

final class Dex.Future : GObject.TypeInstance
{
  /* No available fields */
}

DexFuture is the base class representing a future which may resolve with a value or reject with error at some point in the future.

It is the basis for libdex’s concurrency and parallelism model.

Use futures to represent work in progress and allow consumers to build robust processing chains up front which will complete or fail as futures resolve or reject.

When running on a DexFiber, you may use dex_await() and similar functions to suspend the current thread and return upon completion of the dependent future.

Available since: 1

Ancestors

Constructors

dex_future_all

Creates a new DexFuture that will resolve or reject when all futures either resolve or reject.

unstable since: 1

dex_future_all_race

Creates a new DexFuture that will resolve when all futures resolve or reject as soon as the first future rejects.

unstable since: 1

dex_future_all_racev

Creates a new DexFuture that resolves when all futures resolve.

unstable since: 1

dex_future_allv

Creates a new DexFuture that resolves when all futures resolve.

unstable since: 1

dex_future_any

Creates a new DexFuture that will resolve when any dependent future resolves, providing the same result as the resolved future.

unstable since: 1

dex_future_anyv

Creates a new DexFuture that resolves when the first future resolves.

unstable since: 1

dex_future_catch

Calls callback when future rejects.

unstable since: 1

dex_future_catch_loop

Asynchronously calls callback when future rejects.

unstable since: 1

dex_future_finally

Calls callback when future resolves or rejects.

unstable since: 1

dex_future_finally_loop

Asynchronously calls callback when future rejects or resolves.

unstable since: 1

dex_future_first

Creates a new DexFuture that resolves or rejects as soon as the first dependent future resolves or rejects, sharing the same result.

unstable since: 1

dex_future_firstv

Creates a new DexFuture that resolves or rejects as soon as the first dependent future resolves or rejects, sharing the same result.

unstable since: 1

dex_future_new_for_boolean

Creates a new DexFuture and resolves it with v_bool.

unstable since: 1

dex_future_new_for_double

Creates a new DexFuture and resolves it with v_double.

unstable since: 1

dex_future_new_for_errno

Creates a new rejected future using errno_ as the value of errno for the GError.

since: 0.4

dex_future_new_for_error

Creates a read-only DexFuture that has rejected.

unstable since: 1

dex_future_new_for_float

Creates a new DexFuture and resolves it with v_float.

unstable since: 1

dex_future_new_for_int

Creates a new DexFuture and resolves it with v_int.

unstable since: 1

dex_future_new_for_int64

Creates a new DexFuture and resolves it with v_int64.

unstable since: 1

dex_future_new_for_object

Creates a new DexFuture that is resolved with value.

unstable since: 1

dex_future_new_for_pointer

Creates a new DexFuture that is resolved with pointer as a G_TYPE_POINTER.

unstable since: 1

dex_future_new_for_string

Creates a new DexFuture and resolves it with string.

unstable since: 1

dex_future_new_for_uint

Creates a new DexFuture and resolves it with v_uint.

unstable since: 1

dex_future_new_for_uint64

Creates a new DexFuture and resolves it with v_uint64.

unstable since: 1

dex_future_new_for_value

Creates a read-only DexFuture that has resolved.

unstable since: 1

dex_future_new_infinite

Creates an infinite future that will never resolve or reject. This can be useful when you want to mock a situation of “run forever” unless another future rejects or resolves.

since: 0.4

dex_future_new_reject

Creates a new DexFuture that is rejeced.

unstable since: 1

dex_future_new_take_boxed

Creates a new DexFuture that is resolved with value.

unstable since: 1

dex_future_new_take_object

Creates a new DexFuture that is resolved with value.

unstable since: 1

dex_future_new_take_string

Creates a new DexFuture and resolves it with string.

unstable since: 1

dex_future_new_take_variant

Creates a new DexFuture that is resolved with v_variant.

unstable since: 1

dex_future_then

Calls callback when future resolves.

unstable since: 1

dex_future_then_loop

Asynchronously calls callback when future resolves.

unstable since: 1

Instance methods

dex_await

Suspends the current DexFiber and resumes when future has completed.

unstable since: 1

dex_await_boolean

Awaits on future and returns the gboolean result.

unstable since: 1

dex_await_boxed

Awaits on future and returns the G_TYPE_BOXED based result.

unstable since: 1

dex_await_double

Awaits on future and returns the result as an double.

unstable since: 1

dex_await_enum

Awaits on future and returns the enum result.

unstable since: 1

dex_await_flags

Awaits on future and returns the flags result.

unstable since: 1

dex_await_float

Awaits on future and returns the result as an float.

unstable since: 1

dex_await_int

Awaits on future and returns the result as an int.

unstable since: 1

dex_await_int64

Awaits on future and returns the result as an int64.

unstable since: 1

dex_await_object

Awaits on future and returns the GObject-based result.

unstable since: 1

dex_await_pointer

Calls dex_await() and returns the value of g_value_get_pointer(), otherwise error is set if the future rejected.

unstable since: 1

dex_await_string

Awaits on future and returns the string result.

unstable since: 1

dex_await_uint

Awaits on future and returns the result as an uint.

unstable since: 1

dex_await_uint64

Awaits on future and returns the result as an uint64.

unstable since: 1

dex_await_variant

Awaits on future and returns the G_TYPE_VARIANT based result.

since: 0.4

dex_future_disown

Disowns a future, allowing it to run to completion even though there may be no observer interested in the futures completion or rejection.

since: 0.4

dex_future_get_name
No description available.

unstable since: 1

dex_future_get_status
No description available.

unstable since: 1

dex_future_get_value
No description available.

unstable since: 1

dex_future_is_pending

This is a convenience function equivalent to calling dex_future_get_status() and checking for DEX_FUTURE_STATUS_PENDING.

unstable since: 1

dex_future_is_rejected

This is a convenience function equivalent to calling dex_future_get_status() and checking for DEX_FUTURE_STATUS_REJECTED.

unstable since: 1

dex_future_is_resolved

This is a convenience function equivalent to calling dex_future_get_status() and checking for DEX_FUTURE_STATUS_RESOLVED.

unstable since: 1

dex_future_set_static_name

Sets the name of the future with a static/internal string.

unstable since: 1

Methods inherited from DexObject (2)
dex_ref

Acquires a reference on the given object, and increases its reference count by one.

unstable since: 1

dex_unref

Releases a reference on the given object, and decreases its reference count by one.

unstable since: 1