mirror of
https://github.com/Melorise/TamaASR.git
synced 2026-11-07 14:39:32 +00:00
加入 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>
35 lines
754 B
C++
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;
|
|
};
|