17 lines
1.2 KiB
C
17 lines
1.2 KiB
C
/* dm_schema — атомарное создание/обновление локальной схемы личных бесед.
|
|
* Сохраняет историю, счётчики, точные тела outbox и отпечатки удалённых сообщений.
|
|
* Изменения выполняются внутри savepoint в uasync-потоке; ошибка откатывает схему. */
|
|
#ifndef UTUN_DM_SCHEMA_H
|
|
#define UTUN_DM_SCHEMA_H
|
|
#include <stdint.h>
|
|
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
|