Files
TamaASR/linux/fcitx5/protocolsession.h
MeloriseandCodex 6ff1d3bf77 feat: 实现 Linux Fcitx5 实时输入链路
加入 Unix Socket v2 协议、会话状态机、动态快捷键、完整 preedit 更新、结束提交以及断线重连和安全取消。

AI-assisted-by: Codex
AI-model: gpt-5.6-sol
AI-reasoning-effort: medium
Co-authored-by: Codex <codex@openai.com>
2026-08-23 02:34:14 +08:00

35 lines
754 B
C++

#pragma once
#include <cstdint>
#include <string>
#include <utility>
class ProtocolSession {
public:
void start(std::string sessionId) {
sessionId_ = std::move(sessionId);
revision_ = 0;
}
bool active() const { return !sessionId_.empty(); }
bool accept(const std::string &sessionId, std::int64_t revision) {
if (!active() || sessionId != sessionId_ || revision <= revision_) return false;
revision_ = revision;
return true;
}
bool matches(const std::string &sessionId) const {
return active() && sessionId == sessionId_;
}
void reset() {
sessionId_.clear();
revision_ = 0;
}
private:
std::string sessionId_;
std::int64_t revision_ = 0;
};