--- nono/cli/cuimessage.h 2026/04/29 17:04:56 1.1 +++ nono/cli/cuimessage.h 2026/04/29 17:05:09 1.1.1.2 @@ -4,9 +4,14 @@ // Licensed under nono-license.txt // +// +// UI スレッドへのメッセージ機構 (CLI 側) +// + #pragma once #include "uimessage.h" +#include "autofd.h" #include #include @@ -14,12 +19,21 @@ class CUIMessage { using Func = std::function; public: + // CUIMessage を初期化する + static int Init(); + // UIMessage を func に接続する static void Connect(UIMessage::ID id, Func func); - // UIMessage を処理する + // UIMessage を処理する (VM スレッドで呼ばれる) static void Process(UIMessage::Queue& queue); + // UIMessage をディスパッチする (メインスレッドで呼ばれる) + static void Dispatch(const UIMessage& m); + private: static std::array func_table; + + static autofd wpipe; + static autofd rpipe; };