Robust Distributed System Nucleus (rDSN)  ver 1.0.0
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
dsn::task Class Referenceabstract
Inheritance diagram for dsn::task:
dsn::aio_task dsn::rpc_request_task dsn::rpc_response_task dsn::task_c dsn::timer_task

Public Member Functions

DSN_API task (dsn_task_code_t code, void *context, dsn_task_cancelled_handler_t on_cancel, int hash=0, service_node *node=nullptr)
 
virtual void exec ()=0
 
DSN_API void exec_internal ()
 
DSN_API bool cancel (bool wait_until_finished, bool *finished=nullptr)
 
DSN_API bool wait (int timeout_milliseconds=TIME_MS_MAX, bool on_cancel=false)
 
virtual DSN_API void enqueue ()
 
DSN_API bool set_retry (bool enqueue_immediately=true)
 
DSN_API const char * node_name () const
 
void set_error_code (error_code err)
 
void set_delay (int delay_milliseconds=0)
 
void set_tracker (task_tracker *tracker)
 
uint64_t id () const
 
task_state state () const
 
dsn_task_code_t code () const
 
task_specspec () const
 
int hash () const
 
int delay_milliseconds () const
 
error_code error () const
 
service_node * node () const
 
task_tracker * tracker () const
 
bool is_empty () const
 

Static Public Member Functions

static DSN_API taskget_current_task ()
 
static DSN_API uint64_t get_current_task_id ()
 
static DSN_API task_workerget_current_worker ()
 
static DSN_API task_workerget_current_worker2 ()
 
static DSN_API service_node * get_current_node ()
 
static DSN_API service_node * get_current_node2 ()
 
static DSN_API int get_current_node_id ()
 
static DSN_API int get_current_worker_index ()
 
static DSN_API const char * get_current_node_name ()
 
static DSN_API rpc_engine * get_current_rpc ()
 
static DSN_API disk_engine * get_current_disk ()
 
static DSN_API env_providerget_current_env ()
 
static DSN_API nfs_nodeget_current_nfs ()
 
static DSN_API timer_serviceget_current_tsvc ()
 
static DSN_API int get_current_queue_length ()
 
static DSN_API void set_tls_dsn_context (service_node *node, task_worker *worker, task_queue *queue)
 
static DSN_API void set_tls_dsn (const __tls_dsn__ *ctx)
 
static DSN_API void get_tls_dsn (__tls_dsn__ *ctx)
 

Public Attributes

tasknext
 

Protected Member Functions

DSN_API void signal_waiters ()
 
DSN_API void enqueue (task_worker_pool *pool)
 
void set_task_id (uint64_t tid)
 

Protected Attributes

bool _is_null
 
error_code _error
 
void * _context
 
dsn_task_cancelled_handler_t _on_cancel
 

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