Panda3D
Public Types | Public Member Functions | Static Public Member Functions | List of all members
GenericAsyncTask Class Reference

Associates a generic C-style function pointer with an AsyncTask object. More...

#include "genericAsyncTask.h"

Inheritance diagram for GenericAsyncTask:
AsyncTask AsyncFuture Namable TypedReferenceCount MemoryBase TypedObject ReferenceCount MemoryBase MemoryBase

Public Types

typedef void BirthFunc(GenericAsyncTask *task, void *user_data)
 
typedef void DeathFunc(GenericAsyncTask *task, bool clean_exit, void *user_data)
 
typedef DoneStatus TaskFunc(GenericAsyncTask *task, void *user_data)
 
- Public Types inherited from AsyncTask
enum  DoneStatus {
  DS_done, DS_cont, DS_again, DS_pickup,
  DS_exit, DS_pause, DS_interrupt, DS_await
}
 
enum  State {
  S_inactive, S_active, S_servicing, S_servicing_removed,
  S_sleeping, S_active_nested, S_awaiting
}
 
- Public Types inherited from AsyncFuture
typedef pvector< PT(AsyncFuture)> Futures
 

Public Member Functions

 GenericAsyncTask (const std::string &name=std::string())
 
 GenericAsyncTask (const std::string &name, TaskFunc *function, void *user_data)
 
virtual TypeHandle force_init_type ()
 
TaskFunc * get_function () const
 Returns the function that is called when the task runs. More...
 
virtual TypeHandle get_type () const
 
BirthFunc * get_upon_birth () const
 Returns the function that is called when the task begins, or NULL if the function is not defined. More...
 
DeathFunc * get_upon_death () const
 Returns the function that is called when the task ends, or NULL if the function is not defined. More...
 
void * get_user_data () const
 Returns the void pointer that is passed to the task function. More...
 
void set_function (TaskFunc *function)
 Replaces the function that is called when the task runs. More...
 
void set_upon_birth (BirthFunc *function)
 Replaces the function that is called when the task begins. More...
 
void set_upon_death (DeathFunc *function)
 Replaces the function that is called when the task ends. More...
 
void set_user_data (void *user_data)
 Replaces the void pointer that is passed to the task function. More...
 
- Public Member Functions inherited from AsyncTask
 AsyncTask (const std::string &name=std::string())
 
void clear_delay ()
 Removes any delay specified for the task. More...
 
void clear_name ()
 Resets the task's name to empty. More...
 
double get_average_dt () const
 
double get_delay () const
 Returns the delay value that has been set via set_delay, if any. More...
 
double get_dt () const
 
int get_elapsed_frames () const
 Returns the number of frames that have elapsed since the task was started, according to the task manager's clock. More...
 
double get_elapsed_time () const
 Returns the amount of time that has elapsed since the task was started, according to the task manager's clock. More...
 
AsyncTaskManagerget_manager () const
 
double get_max_dt () const
 
std::string get_name_prefix () const
 Returns the initial part of the name, up to but not including any trailing digits following a hyphen or underscore. More...
 
int get_priority () const
 
int get_sort () const
 
int get_start_frame () const
 Returns the frame number at which the task was started, according to the task manager's clock. More...
 
double get_start_time () const
 Returns the time at which the task was started, according to the task manager's clock. More...
 
State get_state () const
 
const std::string & get_task_chain () const
 
AtomicAdjust::Integer get_task_id () const
 
double get_wake_time () const
 If this task has been added to an AsyncTaskManager with a delay in effect, this returns the time at which the task is expected to awaken. More...
 
bool has_delay () const
 Returns true if a delay has been set for this task via set_delay(), or false otherwise. More...
 
bool is_alive () const
 
virtual void output (std::ostream &out) const
 
void recalc_wake_time ()
 If the task is currently sleeping on a task chain, this resets its wake time to the current time + get_delay(). More...
 
bool remove ()
 Removes the task from its active manager, if any, and makes the state S_inactive (or possible S_servicing_removed). More...
 
void set_delay (double delay)
 Specifies the amount of time, in seconds, by which this task will be delayed after it has been added to the AsyncTaskManager. More...
 
void set_done_event (const std::string &done_event)
 
void set_name (const std::string &name)
 
void set_priority (int priority)
 
void set_sort (int sort)
 
void set_task_chain (const std::string &chain_name)
 
- 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
 
TypedObjectget_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...
 
void notify_done (bool clean_exit)
 Schedules the done callbacks. More...
 
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 &copy)
 
void operator= (const TypedReferenceCount &copy)
 
- Public Member Functions inherited from TypedObject
 TypedObject (const TypedObject &copy)=default
 
TypedObjectas_typed_object ()
 Returns the object, upcast (if necessary) to a TypedObject pointer. More...
 
const TypedObjectas_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...
 
TypedObjectoperator= (const TypedObject &copy)=default
 
- Public Member Functions inherited from ReferenceCount
int get_ref_count () const
 
WeakReferenceListget_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...
 
WeakReferenceListweak_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...
 
- Public Member Functions inherited from Namable
 Namable (const std::string &initial_name="")
 
void clear_name ()
 Resets the Namable's name to empty. More...
 
const std::string & get_name () const
 
bool has_name () const
 Returns true if the Namable has a nonempty name set, false if the name is empty. More...
 
void output (std::ostream &out) const
 Outputs the Namable. More...
 
void set_name (const std::string &name)
 

Static Public Member Functions

static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from AsyncTask
static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from AsyncFuture
static AsyncFuturegather (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 ()
 
- Static Public Member Functions inherited from Namable
static TypeHandle get_class_type ()
 
static void init_type ()
 

Additional Inherited Members

- Public Attributes inherited from AsyncTask
 get_average_dt
 Returns the average amount of time elapsed during each of the task's previous run cycles, in seconds. More...
 
 get_done_event
 
 get_dt
 Returns the amount of time elapsed during the task's previous run cycle, in seconds. More...
 
 get_manager
 Returns the AsyncTaskManager that this task is active on. More...
 
 get_max_dt
 Returns the maximum amount of time elapsed during any one of the task's previous run cycles, in seconds. More...
 
 get_name
 
 get_priority
 Returns the task's current priority value. More...
 
 get_sort
 Returns the task's current sort value. More...
 
 get_state
 Returns the current state of the task. More...
 
 get_task_chain
 Returns the AsyncTaskChain on which this task will be running. More...
 
 get_task_id
 Returns a number guaranteed to be unique for each different AsyncTask object in the universe. More...
 
 is_alive
 Returns true if the task is currently active or sleeping on some task chain, meaning that it will be executed in its turn, or false if it is not active. More...
 
 set_done_event
 Sets the event name that will be triggered when the task finishes. More...
 
 set_name
 
 set_priority
 Specifies a priority value for this task. More...
 
 set_sort
 Specifies a sort value for this task. More...
 
 set_task_chain
 Specifies the AsyncTaskChain on which this task will be running. More...
 
- 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...
 
- Public Attributes inherited from Namable
 get_name
 
 set_name
 

Detailed Description

Associates a generic C-style function pointer with an AsyncTask object.

You can use this when you want to create an AsyncTask without having to subclass.

Definition at line 26 of file genericAsyncTask.h.

Member Function Documentation

◆ get_function()

GenericAsyncTask::TaskFunc * GenericAsyncTask::get_function ( ) const
inline

Returns the function that is called when the task runs.

Definition at line 26 of file genericAsyncTask.I.

◆ get_upon_birth()

GenericAsyncTask::BirthFunc * GenericAsyncTask::get_upon_birth ( ) const
inline

Returns the function that is called when the task begins, or NULL if the function is not defined.

Definition at line 44 of file genericAsyncTask.I.

◆ get_upon_death()

GenericAsyncTask::DeathFunc * GenericAsyncTask::get_upon_death ( ) const
inline

Returns the function that is called when the task ends, or NULL if the function is not defined.

Definition at line 62 of file genericAsyncTask.I.

◆ get_user_data()

void * GenericAsyncTask::get_user_data ( ) const
inline

Returns the void pointer that is passed to the task function.

Definition at line 79 of file genericAsyncTask.I.

◆ set_function()

void GenericAsyncTask::set_function ( GenericAsyncTask::TaskFunc *  function)
inline

Replaces the function that is called when the task runs.

Definition at line 18 of file genericAsyncTask.I.

◆ set_upon_birth()

void GenericAsyncTask::set_upon_birth ( GenericAsyncTask::BirthFunc *  upon_birth)
inline

Replaces the function that is called when the task begins.

This is an optional function.

Definition at line 35 of file genericAsyncTask.I.

◆ set_upon_death()

void GenericAsyncTask::set_upon_death ( GenericAsyncTask::DeathFunc *  upon_death)
inline

Replaces the function that is called when the task ends.

This is an optional function.

Definition at line 53 of file genericAsyncTask.I.

◆ set_user_data()

void GenericAsyncTask::set_user_data ( void *  user_data)
inline

Replaces the void pointer that is passed to the task function.

This is any arbitrary pointer; the task object does no processing on it.

Definition at line 71 of file genericAsyncTask.I.


The documentation for this class was generated from the following files: