Specific future that collects the results of several futures. More...
#include "asyncFuture.h"
Public Member Functions | |
virtual bool | cancel () override |
Cancels all the futures. More... | |
virtual TypeHandle | force_init_type () override |
AsyncFuture * | get_future (size_t i) const |
Returns the nth future that was passed into the constructor. More... | |
size_t | get_num_futures () const |
Returns the number of futures that were passed to the constructor. More... | |
TypedObject * | get_result (size_t i) const |
Returns the result of the nth future that was passed into the constructor. More... | |
virtual TypeHandle | get_type () const override |
Public Member Functions inherited from AsyncFuture | |
AsyncFuture () | |
Initializes the future in the pending state. More... | |
virtual | ~AsyncFuture () |
Destroys the future. More... | |
bool | add_waiting_task (AsyncTask *task) |
Indicates that the given task is waiting for this future to complete. More... | |
bool | cancelled () const |
Returns true if the future was cancelled. More... | |
bool | done () const |
Returns true if the future is done or has been cancelled. More... | |
const std::string & | get_done_event () const |
TypedObject * | get_result () const |
Returns this future's result. More... | |
void | get_result (TypedObject *&ptr, ReferenceCount *&ref_ptr) const |
Returns this future's result as a pair of TypedObject, ReferenceCount pointers. More... | |
virtual bool | is_task () const |
void | notify_done (bool clean_exit) |
Schedules the done callbacks. More... | |
virtual void | output (std::ostream &out) const |
void | set_done_event (const std::string &done_event) |
void | set_result (std::nullptr_t) |
Sets this future's result. More... | |
void | set_result (TypedObject *result) |
void | set_result (TypedReferenceCount *result) |
void | set_result (TypedWritableReferenceCount *result) |
void | set_result (const EventParameter &result) |
void | set_result (TypedObject *ptr, ReferenceCount *ref_ptr) |
Sets this future's result. More... | |
void | wait () |
Waits until the future is done. More... | |
void | wait (double timeout) |
Waits until the future is done, or until the timeout is reached. More... | |
Public Member Functions inherited from TypedReferenceCount | |
TypedReferenceCount (const TypedReferenceCount ©) | |
void | operator= (const TypedReferenceCount ©) |
Public Member Functions inherited from TypedObject | |
TypedObject (const TypedObject ©)=default | |
TypedObject * | as_typed_object () |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
const TypedObject * | as_typed_object () const |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
int | get_best_parent_from_Set (const std::set< int > &) const |
int | get_type_index () const |
Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More... | |
bool | is_exact_type (TypeHandle handle) const |
Returns true if the current object is the indicated type exactly. More... | |
bool | is_of_type (TypeHandle handle) const |
Returns true if the current object is or derives from the indicated type. More... | |
TypedObject & | operator= (const TypedObject ©)=default |
Public Member Functions inherited from ReferenceCount | |
int | get_ref_count () const |
WeakReferenceList * | get_weak_list () const |
Returns the WeakReferenceList associated with this ReferenceCount object. More... | |
bool | has_weak_list () const |
Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More... | |
void | local_object () |
This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More... | |
void | ref () const |
Explicitly increments the reference count. More... | |
bool | ref_if_nonzero () const |
Atomically increases the reference count of this object if it is not zero. More... | |
bool | test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
bool | test_ref_count_nonzero () const |
Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
virtual bool | unref () const |
Explicitly decrements the reference count. More... | |
WeakReferenceList * | weak_ref () |
Adds the indicated PointerToVoid as a weak reference to this object. More... | |
void | weak_unref () |
Removes the indicated PointerToVoid as a weak reference to this object. More... | |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static void | init_type () |
Static Public Member Functions inherited from AsyncFuture | |
static AsyncFuture * | gather (Futures futures) |
Creates a new future that returns `done()` when all of the contained futures are done. More... | |
static TypeHandle | get_class_type () |
static void | init_type () |
Static Public Member Functions inherited from TypedReferenceCount | |
static TypeHandle | get_class_type () |
static void | init_type () |
Static Public Member Functions inherited from TypedObject | |
static TypeHandle | get_class_type () |
static void | init_type () |
This function is declared non-inline to work around a compiler bug in g++ 2.96. More... | |
Static Public Member Functions inherited from ReferenceCount | |
static TypeHandle | get_class_type () |
static void | init_type () |
Friends | |
class | AsyncFuture |
Additional Inherited Members | |
Public Types inherited from AsyncFuture | |
typedef pvector< PT(AsyncFuture)> | Futures |
Public Attributes inherited from AsyncFuture | |
get_done_event | |
Returns the event name that will be triggered when the future finishes. More... | |
set_done_event | |
Sets the event name that will be triggered when the future finishes. More... | |
Public Attributes inherited from TypedObject | |
get_type | |
Public Attributes inherited from ReferenceCount | |
get_ref_count | |
Returns the current reference count. More... | |
Specific future that collects the results of several futures.
Definition at line 165 of file asyncFuture.h.
|
overridevirtual |
Cancels all the futures.
Returns true if any futures were cancelled. Makes sure that all the futures finish before this one is marked done, in order to maintain the guarantee that calling result() is safe when done() returns true.
Reimplemented from AsyncFuture.
Definition at line 347 of file asyncFuture.cxx.
References AsyncFuture::cancel(), AsyncFuture::done(), AtomicAdjustDummyImpl::inc(), and AsyncFuture::notify_done().
|
inline |
Returns the nth future that was passed into the constructor.
Definition at line 193 of file asyncFuture.I.
|
inline |
Returns the number of futures that were passed to the constructor.
Definition at line 185 of file asyncFuture.I.
|
inline |
Returns the result of the nth future that was passed into the constructor.
Definition at line 202 of file asyncFuture.I.