2025-08-10 01:34:16 +02:00

61 lines
1.5 KiB
C

#ifndef MAPTARGETSMSGEX_H_
#define MAPTARGETSMSGEX_H_
#include <common/net/message/NetMessage.h>
#include <common/Common.h>
#include <common/storage/StoragePoolId.h>
/**
* Note: Only the receive/deserialize part of this message is implemented (so it cannot be sent).
* Note: Processing only sends response when ackID is set (no MapTargetsRespMsg implemented).
*/
struct MapTargetsMsgEx;
typedef struct MapTargetsMsgEx MapTargetsMsgEx;
static inline void MapTargetsMsgEx_init(MapTargetsMsgEx* this);
// virtual functions
extern bool MapTargetsMsgEx_deserializePayload(NetMessage* this, DeserializeCtx* ctx);
extern bool __MapTargetsMsgEx_processIncoming(NetMessage* this, struct App* app,
fhgfs_sockaddr_in* fromAddr, struct Socket* sock, char* respBuf, size_t bufLen);
// getters & setters
static inline NumNodeID MapTargetsMsgEx_getNodeID(MapTargetsMsgEx* this);
static inline const char* MapTargetsMsgEx_getAckID(MapTargetsMsgEx* this);
struct MapTargetsMsgEx
{
NetMessage netMessage;
NumNodeID nodeID;
unsigned ackIDLen;
const char* ackID;
struct list_head poolMappings; /* struct TargetPoolMapping */
};
extern const struct NetMessageOps MapTargetsMsgEx_Ops;
void MapTargetsMsgEx_init(MapTargetsMsgEx* this)
{
NetMessage_init(&this->netMessage, NETMSGTYPE_MapTargets, &MapTargetsMsgEx_Ops);
INIT_LIST_HEAD(&this->poolMappings);
}
NumNodeID MapTargetsMsgEx_getNodeID(MapTargetsMsgEx* this)
{
return this->nodeID;
}
const char* MapTargetsMsgEx_getAckID(MapTargetsMsgEx* this)
{
return this->ackID;
}
#endif /* MAPTARGETSMSGEX_H_ */