mpd/src/storage/FileInfo.hxx
2023-03-06 14:59:48 +01:00

55 lines
984 B
C++

// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright The Music Player Daemon Project
#ifndef MPD_STORAGE_FILE_INFO_HXX
#define MPD_STORAGE_FILE_INFO_HXX
#include <chrono>
#include <cstdint>
struct StorageFileInfo {
enum class Type : uint8_t {
OTHER,
REGULAR,
DIRECTORY,
};
Type type;
/**
* The file size in bytes. Only valid for #Type::REGULAR.
*/
uint64_t size;
/**
* The modification time. A negative value means unknown /
* not applicable.
*/
std::chrono::system_clock::time_point mtime;
/**
* Device id and inode number. 0 means unknown / not
* applicable.
*/
uint64_t device, inode;
StorageFileInfo() = default;
explicit constexpr StorageFileInfo(Type _type)
:type(_type),
size(0),
mtime(std::chrono::system_clock::time_point::min()),
device(0), inode(0) {}
constexpr bool IsRegular() const {
return type == Type::REGULAR;
}
constexpr bool IsDirectory() const {
return type == Type::DIRECTORY;
}
};
#endif