Files
utun2/src/dm/dm_mailbox_media.h
T

24 lines
1.3 KiB
C

/* dm_mailbox_media — durable задания суперузла: размещение на M, доставка
* метаданных получателю и удаление всех выданных копий до DELETE_ACK.
* Жизненный цикл принадлежит dm_mailbox, control принимает dm_media.
*/
#ifndef DM_MAILBOX_MEDIA_H
#define DM_MAILBOX_MEDIA_H
#include <stdint.h>
#include <stddef.h>
struct UTUN_INSTANCE;
struct dm_mb_media;
struct dm_mb_media* dm_mailbox_media_create(struct UTUN_INSTANCE* inst);
void dm_mailbox_media_destroy(struct dm_mb_media* media);
/* Вызвать в транзакции PUT после проверки роли S и подписи сообщения. */
int dm_mailbox_media_register(struct dm_mb_media* media, uint64_t group, uint64_t recipient,
const uint8_t* msg, size_t len);
void dm_mailbox_media_recv(struct dm_mb_media* media, uint64_t group, uint64_t source,
uint8_t cmd, const uint8_t* body, size_t len);
/* Отправить квитанцию всем доступным S общей группы, включая поздние копии. */
void dm_mailbox_media_receipt(struct UTUN_INSTANCE* inst, const uint8_t* receipt);
#endif