Esempio n. 1
0
DSN_API dsn_task_t dsn_task_create_ex(dsn_task_code_t code, dsn_task_handler_t cb, 
    dsn_task_cancelled_handler_t on_cancel, void* context, int hash, dsn_task_tracker_t tracker)
{
    auto t = new ::dsn::task_c(code, cb, context, on_cancel, hash);
    t->set_tracker((dsn::task_tracker*)tracker);
    return t;
}
Esempio n. 2
0
DSN_API dsn_task_t dsn_task_create_timer(dsn_task_code_t code, dsn_task_handler_t cb, 
    void* context, int hash, int interval_milliseconds, dsn_task_tracker_t tracker)
{
    auto t = new ::dsn::timer_task(code, cb, context, nullptr, interval_milliseconds, hash);
    t->set_tracker((dsn::task_tracker*)tracker);
    return t;
}
Esempio n. 3
0
DSN_API dsn_task_t dsn_file_create_aio_task(dsn_task_code_t code, dsn_aio_handler_t cb, void* context, int hash, dsn_task_tracker_t tracker)
{
    auto t = new ::dsn::aio_task(code, cb, context, nullptr, hash);
    t->set_tracker((dsn::task_tracker*)tracker);
    t->spec().on_task_create.execute(::dsn::task::get_current_task(), t);
    return t;
}
Esempio n. 4
0
DSN_API dsn_task_t dsn_rpc_create_response_task(dsn_message_t request, dsn_rpc_response_handler_t cb, 
    void* context, int reply_thread_hash, dsn_task_tracker_t tracker)
{
    auto msg = ((::dsn::message_ex*)request);
    auto t = new ::dsn::rpc_response_task(msg, cb, context, nullptr, reply_thread_hash);
    t->set_tracker((dsn::task_tracker*)tracker);
    return t;
}
Esempio n. 5
0
DSN_API dsn_task_t dsn_task_create_timer_ex(dsn_task_code_t code, dsn_task_handler_t cb,
    dsn_task_cancelled_handler_t on_cancel, 
    void* context, int hash, int interval_milliseconds, dsn_task_tracker_t tracker)
{
    auto t = new ::dsn::timer_task(code, cb, context, on_cancel, interval_milliseconds, hash);
    t->set_tracker((dsn::task_tracker*)tracker);
    t->spec().on_task_create.execute(::dsn::task::get_current_task(), t);
    return t;
}
Esempio n. 6
0
DSN_API dsn_task_t dsn_rpc_create_response_task_ex(dsn_message_t request, dsn_rpc_response_handler_t cb, 
    dsn_task_cancelled_handler_t on_cancel,
    void* context, int reply_thread_hash, dsn_task_tracker_t tracker)
{
    auto msg = ((::dsn::message_ex*)request);
    auto t = new ::dsn::rpc_response_task(msg, cb, context, on_cancel, reply_thread_hash);
    t->set_tracker((dsn::task_tracker*)tracker);
    t->spec().on_task_create.execute(::dsn::task::get_current_task(), t);
    return t;
}
Esempio n. 7
0
//------------------------------------------------------------------------------
//
// tasking - asynchronous tasks and timers tasks executed in target thread pools
// (configured in config files)
// [task.RPC_PREPARE
// // TODO: what can be configured for a task
//
// [threadpool.THREAD_POOL_REPLICATION]
// // TODO: what can be configured for a thread pool
//
//------------------------------------------------------------------------------
DSN_API dsn_task_t dsn_task_create(dsn_task_code_t code, dsn_task_handler_t cb, void* context, int hash, dsn_task_tracker_t tracker)
{
    auto t = new ::dsn::task_c(code, cb, context, nullptr, hash);
    t->set_tracker((dsn::task_tracker*)tracker);
    return t;
}