firebase::FutureBase

#include <future.h>

Type-independent return type of asynchronous calls.

Summary

See also:Future for code samples.

Inheritance

Direct Known Subclasses:firebase::Future< ResultType >

Constructors and Destructors

FutureBase()
Construct an untyped future.
FutureBase(const FutureBase & rhs)
Copy constructor and operator.
~FutureBase()

Public types

CompletionCallback)(const FutureBase &result_data, void *user_data) typedef
void(*
Function pointer for a completion callback.

Public functions

OnCompletion(CompletionCallback callback, void *user_data) const
void
Register a single callback that will be called at most once, when the future is completed.
OnCompletion(std::function< void(const FutureBase &)> callback) const
void
Register a single callback that will be called at most once, when the future is completed.
Release()
void
Explicitly release the internal resources for a future.
error() const
int
When status() is firebase::kFutureStatusComplete, returns the API-defined error code.
error_message() const
const char *
When status() is firebase::kFutureStatusComplete, returns the API-defined error message, as human-readable text, or an empty string if the API does not provide a human readable description of the error.
operator!=(const FutureBase & rhs) const
bool
Returns true if the two Futures reference different results.
operator=(const FutureBase & rhs)
Copy an untyped future.
operator==(const FutureBase & rhs) const
bool
Returns true if the two Futures reference the same result.
result_void() const
const void *
Result of the asynchronous call, or nullptr if the result is still pending.
status() const
Completion status of the asynchronous call.

Public types

CompletionCallback

void(* CompletionCallback)(const FutureBase &result_data, void *user_data)

Function pointer for a completion callback.

When we call this, we will send the completed future, along with the user data that you specified when you set up the callback.

Public functions

FutureBase

 FutureBase()

Construct an untyped future.

FutureBase

 FutureBase(
  const FutureBase & rhs
)

Copy constructor and operator.

Increment the reference count when creating a copy of the future.

OnCompletion

void OnCompletion(
  CompletionCallback callback,
  void *user_data
) const 

Register a single callback that will be called at most once, when the future is completed.

If you call any OnCompletion() method more than once on the same future, only the most recent callback you registered with OnCompletion() will be called. When your callback is called, the user_data that you supplied here will be passed back as the second parameter.

Details
Parameters
callback
Function pointer to your callback.
user_data
Optional user data. We will pass this back to your callback.

OnCompletion

void OnCompletion(
  std::function< void(const FutureBase &)> callback
) const 

Register a single callback that will be called at most once, when the future is completed.

If you call any OnCompletion() method more than once on the same future, only the most recent callback you registered with OnCompletion() will be called.

Details
Parameters
callback
Function or lambda to call.

Release

void Release()

Explicitly release the internal resources for a future.

Future will become invalid.

error

int error() const 

When status() is firebase::kFutureStatusComplete, returns the API-defined error code.

Otherwise, return value is undefined.

error_message

const char * error_message() const 

When status() is firebase::kFutureStatusComplete, returns the API-defined error message, as human-readable text, or an empty string if the API does not provide a human readable description of the error.

operator!=

bool operator!=(
  const FutureBase & rhs
) const 

Returns true if the two Futures reference different results.

operator=

FutureBase & operator=(
  const FutureBase & rhs
)

Copy an untyped future.

operator==

bool operator==(
  const FutureBase & rhs
) const 

Returns true if the two Futures reference the same result.

result_void

const void * result_void() const 

Result of the asynchronous call, or nullptr if the result is still pending.

Cast is required since GetFutureResult() returns void*.

status

FutureStatus status() const 

Completion status of the asynchronous call.

~FutureBase

 ~FutureBase()