Files
utun2/tools/chatgui/transport/member_edit.h
T

23 lines
1.9 KiB
C++

/* Подтверждённое desktop-сохранение участника: GUI передаёт снимок, SQL/подпись выполняет uasync.
* Callback вызывается в GUI только пока жив context; уничтожение context не отменяет уже принятую запись. */
#pragma once
#include <QByteArray>
#include <QString>
#include <functional>
class QObject;
struct sqlite3;
/* GUI-only. db — ожидаемый handle текущего ядра, без разыменования в GUI; channel — канонический ID.
* nickname сохраняется как UTF-8, пустой снимает псевдоним; ownerJson — частичный JSON или пусто для одного ника.
* false — отказ до постановки, callback не будет; true — мост владеет копиями и вернёт результат, включая отмену при stop.
* result: 0=commit, -1=ошибка, -2=конфликт, -3=отмена/другая БД. При уничтожении context callback удаляется.
* Аргументы/ошибки логируются без ника, ключей и содержимого JSON. */
bool gui_bridge_save_member(sqlite3* db, const QString& channel, quint64 node, const QString& nickname,
const QByteArray& ownerJson, QObject* context, std::function<void(int)> complete);
/* GUI-only: скопировать команду передачи admin-ключа текущему ядру; db должен совпасть при выполнении.
* true — очередь приняла запрос, не подтверждение доставки ключа; false — отказ с логом без оставшейся памяти. */
bool gui_bridge_transfer_admin(sqlite3* db, const QString& channel, quint64 node);