mirror-ac/module/dispatcher/dispatcher.h
2024-01-28 18:34:09 +11:00

33 lines
No EOL
825 B
C++

#pragma once
#include "threadpool.h"
#include "timer.h"
#include "../kernel_interface/kernel_interface.h"
namespace dispatcher {
constexpr int DISPATCH_LOOP_SLEEP_TIME = 30;
constexpr int KERNEL_DISPATCH_FUNCTION_COUNT = 11;
constexpr int DISPATCHER_THREAD_COUNT = 4;
constexpr int TIMER_CALLBACK_DELAY = 15;
constexpr int WRITE_SHARED_MAPPING_PERIOD = 30;
constexpr int WRITE_SHARED_MAPPING_DUE_TIME = 30;
class dispatcher {
timer timers;
thread_pool thread_pool;
kernel_interface::kernel_interface k_interface;
void issue_kernel_job();
void write_shared_mapping_operation();
void init_timer_callbacks();
void run_timer_thread();
void run_io_port_thread();
void request_session_pk();
public:
dispatcher(LPCWSTR driver_name, client::message_queue &queue);
void run();
};
} // namespace dispatcher