/* dm_schema — атомарное создание/обновление локальной схемы личных бесед. * Сохраняет историю, счётчики, точные тела outbox и отпечатки удалённых сообщений. * Изменения выполняются внутри savepoint в uasync-потоке; ошибка откатывает схему. */ #ifndef UTUN_DM_SCHEMA_H #define UTUN_DM_SCHEMA_H #include struct UTUN_INSTANCE; /* 0/-1: создать схему и перенести существующие DEVICE-записи без переподписи. */ int dm_schema_init(struct UTUN_INSTANCE* inst); /* 0/-1: прочитать следующий seq автора. Резервирование выполняет take в той же * транзакции, что запись сообщения; до commit тело нельзя передавать в сеть. */ int dm_sequence_next(struct UTUN_INSTANCE* inst, uint64_t* seq); /* 0/-1: увеличить счётчик с seq-1 до seq. Вызывать внутри транзакции отправки. */ int dm_sequence_take(struct UTUN_INSTANCE* inst, uint64_t seq); #endif