.. _program_listing_file_include_input_runner_SubProcess.hpp: Program Listing for File SubProcess.hpp ======================================= |exhale_lsh| :ref:`Return to documentation for file ` (``include\input\runner\SubProcess.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "Input_State.hpp" #include "PDJE_Buffer.hpp" #include "PDJE_Crypto.hpp" #include "PDJE_Highres_Clock.hpp" #include "PDJE_Input_DataLine.hpp" #include "PDJE_Input_Device_Data.hpp" #include "Secured_IPC_TX_RX.hpp" #include "ipc_named_event.hpp" #include "ipc_shared_memory.hpp" #include #include #include #include #include namespace PDJE_IPC { using PDJE_DEV_PATH = std::string; using PDJE_NAME = std::string; namespace SUBPROC { class TXRXListener { private: #ifdef WIN32 DWORD ThreadID; #elif defined(__linux__) #endif std::optional txrx; std::unordered_map id_name; std::optional input_buffer; EVENT input_loop_run_event; EVENT terminate_event; bool RecvIPCSharedMem(const std::string &mem_path, const std::string &dataType, const uint64_t data_count); std::vector configed_devices; std::unordered_map unlisted_targets; std::string ListDev(); public: bool KillCheck = false; TXRXListener(PDJE_CRYPTO::PSK &psk, const PDJE_IPC::MNAME &memFirst, const PDJE_IPC::MNAME &firstLock, const PDJE_IPC::MNAME &memSecond, const PDJE_IPC::MNAME &secondLock); PDJE_HIGHRES_CLOCK::CLOCK timer; void BlockedListen() { txrx->BlockedListen(); } void * Init(); void LoopTrig(); void Run(); ~TXRXListener() = default; }; }; // namespace SUBPROC }; // namespace PDJE_IPC