/* BSD-2-Clause license * * Copyright (c) 2018-2023 NST , sss . * */ #pragma once #include enum backend_setting_type_e { setting_int, setting_string }; struct backend_setting_s { union { backend_setting_int setting_int; backend_setting_str setting_string; }; enum backend_setting_type_e type; SLIST_ENTRY(backend_setting_s) entries; }; struct ws_session_list_entry_s { ws_session *session; ws_session_settings settings; SLIST_ENTRY(ws_session_list_entry_s) entries; }; typedef struct task_info_s { /* name of backend handling this task */ char backend_name[64]; /* backend instance */ wrdp_backend_module *backend; /* pointer to wrdp_thpool_task* used by some internals */ void *wrdp_thpool_task; /* if true, all calls should return immediataely * and do not touch any data */ bool stopped; /* libev based session timer */ ev_timer *ev_timer_watcher; /* task total run time, task idle time */ int64_t run_time, idle_time; /* session related settings like timeouts */ ws_session_settings settings; } task_info;