### Class

# Dex Future

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

#### Hierarchy

#### Ancestors

- DexObject

#### Descendants

- DexAsyncPair
- DexBlock
- DexCancellable
- DexDelayed
- DexFiber
- DexFutureSet
- DexPromise
- DexStaticFuture
- DexTimeout
- DexUnixSignal

#### 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