24 lines
1.3 KiB
C
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
|