beegfs/storage/source/net/message/session/opening/CloseChunkFileMsgEx.h
2025-08-10 01:34:16 +02:00

30 lines
888 B
C++

#pragma once
#include <common/net/message/session/opening/CloseChunkFileMsg.h>
class CloseChunkFileMsgEx : public CloseChunkFileMsg
{
private:
struct DynamicAttribs
{
int64_t filesize;
int64_t allocedBlocks; // allocated 512byte blocks (relevant for sparse files)
int64_t modificationTimeSecs;
int64_t lastAccessTimeSecs;
uint64_t storageVersion;
};
public:
virtual bool processIncoming(ResponseContext& ctx);
private:
FhgfsOpsErr forwardToSecondary(ResponseContext& ctx);
bool getDynamicAttribsByFD(int fd, std::string fileHandleID, uint16_t targetID,
DynamicAttribs& outDynAttribs);
bool getDynamicAttribsByPath(std::string fileHandleID, uint16_t targetID,
DynamicAttribs& outDynAttribs);
std::pair<FhgfsOpsErr, DynamicAttribs> close(ResponseContext& ctx);
};