Commit 2d06a8e8 authored by Max Kellermann's avatar Max Kellermann

storage/FileInfo: rename to StorageFileInfo

parent e1a434ed
......@@ -83,7 +83,7 @@ Song::UpdateFile(Storage &storage)
{
const auto &relative_uri = GetURI();
FileInfo info;
StorageFileInfo info;
if (!storage.GetInfo(relative_uri.c_str(), true, info, IgnoreError()))
return false;
......
......@@ -64,23 +64,23 @@ handle_listfiles_storage(Client &client, StorageDirectoryReader &reader,
if (skip_path(name_utf8))
continue;
FileInfo info;
StorageFileInfo info;
if (!reader.GetInfo(false, info, error))
continue;
switch (info.type) {
case FileInfo::Type::OTHER:
case StorageFileInfo::Type::OTHER:
/* ignore */
continue;
case FileInfo::Type::REGULAR:
case StorageFileInfo::Type::REGULAR:
client_printf(client, "file: %s\n"
"size: %" PRIu64 "\n",
name_utf8,
info.size);
break;
case FileInfo::Type::DIRECTORY:
case StorageFileInfo::Type::DIRECTORY:
client_printf(client, "directory: %s\n", name_utf8);
break;
}
......
......@@ -104,7 +104,7 @@ class UpdateArchiveVisitor final : public ArchiveVisitor {
*/
void
UpdateWalk::UpdateArchiveFile(Directory &parent, const char *name,
const FileInfo &info,
const StorageFileInfo &info,
const ArchivePlugin &plugin)
{
db_lock();
......@@ -156,7 +156,7 @@ UpdateWalk::UpdateArchiveFile(Directory &parent, const char *name,
bool
UpdateWalk::UpdateArchiveFile(Directory &directory,
const char *name, const char *suffix,
const FileInfo &info)
const StorageFileInfo &info)
{
const ArchivePlugin *plugin = archive_plugin_from_suffix(suffix);
if (plugin == nullptr)
......
......@@ -36,7 +36,7 @@
Directory *
UpdateWalk::MakeDirectoryIfModified(Directory &parent, const char *name,
const FileInfo &info)
const StorageFileInfo &info)
{
Directory *directory = parent.FindChild(name);
......@@ -69,7 +69,7 @@ SupportsContainerSuffix(const DecoderPlugin &plugin, const char *suffix)
bool
UpdateWalk::UpdateContainerFile(Directory &directory,
const char *name, const char *suffix,
const FileInfo &info)
const StorageFileInfo &info)
{
const DecoderPlugin *_plugin = decoder_plugins_find([suffix](const DecoderPlugin &plugin){
return SupportsContainerSuffix(plugin, suffix);
......
......@@ -33,7 +33,7 @@
#include <unistd.h>
bool
GetInfo(Storage &storage, const char *uri_utf8, FileInfo &info)
GetInfo(Storage &storage, const char *uri_utf8, StorageFileInfo &info)
{
Error error;
bool success = storage.GetInfo(uri_utf8, true, info, error);
......@@ -43,7 +43,7 @@ GetInfo(Storage &storage, const char *uri_utf8, FileInfo &info)
}
bool
GetInfo(StorageDirectoryReader &reader, FileInfo &info)
GetInfo(StorageDirectoryReader &reader, StorageFileInfo &info)
{
Error error;
bool success = reader.GetInfo(true, info, error);
......@@ -55,7 +55,7 @@ GetInfo(StorageDirectoryReader &reader, FileInfo &info)
bool
DirectoryExists(Storage &storage, const Directory &directory)
{
FileInfo info;
StorageFileInfo info;
if (!storage.GetInfo(directory.GetPath(), true, info, IgnoreError()))
return false;
......@@ -67,7 +67,7 @@ DirectoryExists(Storage &storage, const Directory &directory)
static bool
GetDirectoryChildInfo(Storage &storage, const Directory &directory,
const char *name_utf8, FileInfo &info, Error &error)
const char *name_utf8, StorageFileInfo &info, Error &error)
{
const auto uri_utf8 = PathTraitsUTF8::Build(directory.GetPath(),
name_utf8);
......@@ -78,7 +78,7 @@ bool
directory_child_is_regular(Storage &storage, const Directory &directory,
const char *name_utf8)
{
FileInfo info;
StorageFileInfo info;
return GetDirectoryChildInfo(storage, directory, name_utf8, info,
IgnoreError()) &&
info.IsRegular();
......
......@@ -24,7 +24,7 @@
#include "Compiler.h"
struct Directory;
struct FileInfo;
struct StorageFileInfo;
class Storage;
class StorageDirectoryReader;
......@@ -33,14 +33,14 @@ class StorageDirectoryReader;
* returning them.
*/
bool
GetInfo(Storage &storage, const char *uri_utf8, FileInfo &info);
GetInfo(Storage &storage, const char *uri_utf8, StorageFileInfo &info);
/**
* Wrapper for LocalDirectoryReader::GetInfo() that logs errors
* instead of returning them.
*/
bool
GetInfo(StorageDirectoryReader &reader, FileInfo &info);
GetInfo(StorageDirectoryReader &reader, StorageFileInfo &info);
gcc_pure
bool
......
......@@ -33,7 +33,7 @@
inline void
UpdateWalk::UpdateSongFile2(Directory &directory,
const char *name, const char *suffix,
const FileInfo &info)
const StorageFileInfo &info)
{
db_lock();
Song *song = directory.FindSong(name);
......@@ -93,7 +93,7 @@ UpdateWalk::UpdateSongFile2(Directory &directory,
bool
UpdateWalk::UpdateSongFile(Directory &directory,
const char *name, const char *suffix,
const FileInfo &info)
const StorageFileInfo &info)
{
if (!decoder_plugins_supports_suffix(suffix))
return false;
......
......@@ -67,7 +67,7 @@ UpdateWalk::UpdateWalk(EventLoop &_loop, DatabaseListener &_listener,
}
static void
directory_set_stat(Directory &dir, const FileInfo &info)
directory_set_stat(Directory &dir, const StorageFileInfo &info)
{
dir.inode = info.inode;
dir.device = info.device;
......@@ -140,7 +140,7 @@ UpdateWalk::PurgeDeletedFromDirectory(Directory &directory)
static bool
update_directory_stat(Storage &storage, Directory &directory)
{
FileInfo info;
StorageFileInfo info;
if (!GetInfo(storage, directory.GetPath(), info))
return false;
......@@ -190,7 +190,7 @@ FindAncestorLoop(Storage &storage, Directory *parent,
inline bool
UpdateWalk::UpdatePlaylistFile(Directory &directory,
const char *name, const char *suffix,
const FileInfo &info)
const StorageFileInfo &info)
{
if (!playlist_suffix_supported(suffix))
return false;
......@@ -206,7 +206,7 @@ UpdateWalk::UpdatePlaylistFile(Directory &directory,
inline bool
UpdateWalk::UpdateRegularFile(Directory &directory,
const char *name, const FileInfo &info)
const char *name, const StorageFileInfo &info)
{
const char *suffix = uri_get_suffix(name);
if (suffix == nullptr)
......@@ -219,7 +219,7 @@ UpdateWalk::UpdateRegularFile(Directory &directory,
void
UpdateWalk::UpdateDirectoryChild(Directory &directory,
const char *name, const FileInfo &info)
const char *name, const StorageFileInfo &info)
{
assert(strchr(name, '/') == nullptr);
......@@ -327,7 +327,7 @@ UpdateWalk::SkipSymlink(const Directory *directory,
}
bool
UpdateWalk::UpdateDirectory(Directory &directory, const FileInfo &info)
UpdateWalk::UpdateDirectory(Directory &directory, const StorageFileInfo &info)
{
assert(info.IsDirectory());
......@@ -370,7 +370,7 @@ UpdateWalk::UpdateDirectory(Directory &directory, const FileInfo &info)
continue;
}
FileInfo info2;
StorageFileInfo info2;
if (!GetInfo(*reader, info2)) {
modified |= editor.DeleteNameIn(directory, name_utf8);
continue;
......@@ -400,7 +400,7 @@ UpdateWalk::DirectoryMakeChildChecked(Directory &parent,
return directory;
}
FileInfo info;
StorageFileInfo info;
if (!GetInfo(storage, uri_utf8, info) ||
FindAncestorLoop(storage, &parent, info.inode, info.device))
return nullptr;
......@@ -462,7 +462,7 @@ UpdateWalk::UpdateUri(Directory &root, const char *uri)
return;
}
FileInfo info;
StorageFileInfo info;
if (!GetInfo(storage, uri, info)) {
modified |= editor.DeleteNameIn(*parent, name);
return;
......@@ -480,7 +480,7 @@ UpdateWalk::Walk(Directory &root, const char *path, bool discard)
if (path != nullptr && !isRootDirectory(path)) {
UpdateUri(root, path);
} else {
FileInfo info;
StorageFileInfo info;
if (!GetInfo(storage, "", info))
return false;
......
......@@ -27,7 +27,7 @@
#include <sys/stat.h>
struct stat;
struct FileInfo;
struct StorageFileInfo;
struct Directory;
struct ArchivePlugin;
class Storage;
......@@ -89,15 +89,15 @@ private:
void UpdateSongFile2(Directory &directory,
const char *name, const char *suffix,
const FileInfo &info);
const StorageFileInfo &info);
bool UpdateSongFile(Directory &directory,
const char *name, const char *suffix,
const FileInfo &info);
const StorageFileInfo &info);
bool UpdateContainerFile(Directory &directory,
const char *name, const char *suffix,
const FileInfo &info);
const StorageFileInfo &info);
#ifdef ENABLE_ARCHIVE
......@@ -105,10 +105,10 @@ private:
bool UpdateArchiveFile(Directory &directory,
const char *name, const char *suffix,
const FileInfo &info);
const StorageFileInfo &info);
void UpdateArchiveFile(Directory &directory, const char *name,
const FileInfo &info,
const StorageFileInfo &info,
const ArchivePlugin &plugin);
......@@ -116,22 +116,24 @@ private:
bool UpdateArchiveFile(gcc_unused Directory &directory,
gcc_unused const char *name,
gcc_unused const char *suffix,
gcc_unused const FileInfo &info) {
gcc_unused const StorageFileInfo &info) {
return false;
}
#endif
bool UpdatePlaylistFile(Directory &directory,
const char *name, const char *suffix,
const FileInfo &info);
const StorageFileInfo &info);
bool UpdateRegularFile(Directory &directory,
const char *name, const FileInfo &info);
const char *name, const StorageFileInfo &info);
void UpdateDirectoryChild(Directory &directory,
const char *name, const FileInfo &info);
const char *name,
const StorageFileInfo &info);
bool UpdateDirectory(Directory &directory, const FileInfo &info);
bool UpdateDirectory(Directory &directory,
const StorageFileInfo &info);
/**
* Create the specified directory object if it does not exist
......@@ -142,7 +144,7 @@ private:
* The caller must lock the database.
*/
Directory *MakeDirectoryIfModified(Directory &parent, const char *name,
const FileInfo &info);
const StorageFileInfo &info);
Directory *DirectoryMakeChildChecked(Directory &parent,
const char *uri_utf8,
......
......@@ -56,7 +56,7 @@ public:
/* virtual methods from class StorageDirectoryReader */
const char *Read() override;
bool GetInfo(bool follow, FileInfo &info, Error &error) override;
bool GetInfo(bool follow, StorageFileInfo &info, Error &error) override;
};
const char *
......@@ -81,7 +81,7 @@ CompositeDirectoryReader::Read()
}
bool
CompositeDirectoryReader::GetInfo(bool follow, FileInfo &info,
CompositeDirectoryReader::GetInfo(bool follow, StorageFileInfo &info,
Error &error)
{
if (other != nullptr)
......@@ -89,7 +89,7 @@ CompositeDirectoryReader::GetInfo(bool follow, FileInfo &info,
assert(current != names.end());
info.type = FileInfo::Type::DIRECTORY;
info.type = StorageFileInfo::Type::DIRECTORY;
info.mtime = 0;
info.device = 0;
info.inode = 0;
......@@ -275,7 +275,7 @@ CompositeStorage::FindStorage(const char *uri, Error &error) const
}
bool
CompositeStorage::GetInfo(const char *uri, bool follow, FileInfo &info,
CompositeStorage::GetInfo(const char *uri, bool follow, StorageFileInfo &info,
Error &error)
{
const ScopeLock protect(mutex);
......@@ -288,7 +288,7 @@ CompositeStorage::GetInfo(const char *uri, bool follow, FileInfo &info,
const Directory *directory = f.directory->Find(f.uri);
if (directory != nullptr) {
error.Clear();
info.type = FileInfo::Type::DIRECTORY;
info.type = StorageFileInfo::Type::DIRECTORY;
info.mtime = 0;
info.device = 0;
info.inode = 0;
......
......@@ -122,7 +122,7 @@ public:
bool Unmount(const char *uri);
/* virtual methods from class Storage */
bool GetInfo(const char *uri, bool follow, FileInfo &info,
bool GetInfo(const char *uri, bool follow, StorageFileInfo &info,
Error &error) override;
StorageDirectoryReader *OpenDirectory(const char *uri,
......
......@@ -25,7 +25,7 @@
#include <time.h>
#include <stdint.h>
struct FileInfo {
struct StorageFileInfo {
enum class Type : uint8_t {
OTHER,
REGULAR,
......
......@@ -37,7 +37,8 @@ MemoryStorageDirectoryReader::Read()
}
bool
MemoryStorageDirectoryReader::GetInfo(gcc_unused bool follow, FileInfo &info,
MemoryStorageDirectoryReader::GetInfo(gcc_unused bool follow,
StorageFileInfo &info,
gcc_unused Error &error)
{
assert(!first);
......
......@@ -36,7 +36,7 @@ public:
struct Entry {
std::string name;
FileInfo info;
StorageFileInfo info;
template<typename N>
explicit Entry(N &&_name):name(std::forward<N>(_name)) {}
......@@ -61,7 +61,8 @@ public:
/* virtual methods from class StorageDirectoryReader */
const char *Read() override;
bool GetInfo(bool follow, FileInfo &info, Error &error) override;
bool GetInfo(bool follow, StorageFileInfo &info,
Error &error) override;
};
#endif
......@@ -25,7 +25,7 @@
#include <string>
struct FileInfo;
struct StorageFileInfo;
class AllocatedPath;
class Error;
......@@ -36,7 +36,8 @@ public:
virtual ~StorageDirectoryReader() {}
virtual const char *Read() = 0;
virtual bool GetInfo(bool follow, FileInfo &info, Error &error) = 0;
virtual bool GetInfo(bool follow, StorageFileInfo &info,
Error &error) = 0;
};
class Storage {
......@@ -45,7 +46,8 @@ public:
Storage(const Storage &) = delete;
virtual ~Storage() {}
virtual bool GetInfo(const char *uri_utf8, bool follow, FileInfo &info,
virtual bool GetInfo(const char *uri_utf8, bool follow,
StorageFileInfo &info,
Error &error) = 0;
virtual StorageDirectoryReader *OpenDirectory(const char *uri_utf8,
......
......@@ -46,7 +46,8 @@ public:
/* virtual methods from class StorageDirectoryReader */
const char *Read() override;
bool GetInfo(bool follow, FileInfo &info, Error &error) override;
bool GetInfo(bool follow, StorageFileInfo &info,
Error &error) override;
};
class LocalStorage final : public Storage {
......@@ -61,7 +62,7 @@ public:
}
/* virtual methods from class Storage */
bool GetInfo(const char *uri_utf8, bool follow, FileInfo &info,
bool GetInfo(const char *uri_utf8, bool follow, StorageFileInfo &info,
Error &error) override;
StorageDirectoryReader *OpenDirectory(const char *uri_utf8,
......@@ -78,7 +79,7 @@ private:
};
static bool
Stat(Path path, bool follow, FileInfo &info, Error &error)
Stat(Path path, bool follow, StorageFileInfo &info, Error &error)
{
struct stat st;
if (!StatFile(path, st, follow)) {
......@@ -90,11 +91,11 @@ Stat(Path path, bool follow, FileInfo &info, Error &error)
}
if (S_ISREG(st.st_mode))
info.type = FileInfo::Type::REGULAR;
info.type = StorageFileInfo::Type::REGULAR;
else if (S_ISDIR(st.st_mode))
info.type = FileInfo::Type::DIRECTORY;
info.type = StorageFileInfo::Type::DIRECTORY;
else
info.type = FileInfo::Type::OTHER;
info.type = StorageFileInfo::Type::OTHER;
info.size = st.st_size;
info.mtime = st.st_mtime;
......@@ -142,7 +143,7 @@ LocalStorage::MapToRelativeUTF8(const char *uri_utf8) const
}
bool
LocalStorage::GetInfo(const char *uri_utf8, bool follow, FileInfo &info,
LocalStorage::GetInfo(const char *uri_utf8, bool follow, StorageFileInfo &info,
Error &error)
{
AllocatedPath path_fs = MapFS(uri_utf8, error);
......@@ -198,7 +199,7 @@ LocalDirectoryReader::Read()
}
bool
LocalDirectoryReader::GetInfo(bool follow, FileInfo &info, Error &error)
LocalDirectoryReader::GetInfo(bool follow, StorageFileInfo &info, Error &error)
{
const AllocatedPath path_fs =
AllocatedPath::Build(base_fs, reader.GetEntry());
......
......@@ -84,7 +84,7 @@ public:
}
/* virtual methods from class Storage */
bool GetInfo(const char *uri_utf8, bool follow, FileInfo &info,
bool GetInfo(const char *uri_utf8, bool follow, StorageFileInfo &info,
Error &error) override;
StorageDirectoryReader *OpenDirectory(const char *uri_utf8,
......@@ -245,14 +245,14 @@ NfsStorage::MapToRelativeUTF8(const char *uri_utf8) const
}
static void
Copy(FileInfo &info, const struct stat &st)
Copy(StorageFileInfo &info, const struct stat &st)
{
if (S_ISREG(st.st_mode))
info.type = FileInfo::Type::REGULAR;
info.type = StorageFileInfo::Type::REGULAR;
else if (S_ISDIR(st.st_mode))
info.type = FileInfo::Type::DIRECTORY;
info.type = StorageFileInfo::Type::DIRECTORY;
else
info.type = FileInfo::Type::OTHER;
info.type = StorageFileInfo::Type::OTHER;
info.size = st.st_size;
info.mtime = st.st_mtime;
......@@ -262,11 +262,11 @@ Copy(FileInfo &info, const struct stat &st)
class NfsGetInfoOperation final : public BlockingNfsOperation {
const char *const path;
FileInfo &info;
StorageFileInfo &info;
public:
NfsGetInfoOperation(NfsConnection &_connection, const char *_path,
FileInfo &_info)
StorageFileInfo &_info)
:BlockingNfsOperation(_connection), path(_path), info(_info) {}
protected:
......@@ -281,7 +281,7 @@ protected:
bool
NfsStorage::GetInfo(const char *uri_utf8, gcc_unused bool follow,
FileInfo &info, Error &error)
StorageFileInfo &info, Error &error)
{
const std::string path = UriToNfsPath(uri_utf8, error);
if (path.empty())
......@@ -304,19 +304,19 @@ SkipNameFS(const char *name)
}
static void
Copy(FileInfo &info, const struct nfsdirent &ent)
Copy(StorageFileInfo &info, const struct nfsdirent &ent)
{
switch (ent.type) {
case NF3REG:
info.type = FileInfo::Type::REGULAR;
info.type = StorageFileInfo::Type::REGULAR;
break;
case NF3DIR:
info.type = FileInfo::Type::DIRECTORY;
info.type = StorageFileInfo::Type::DIRECTORY;
break;
default:
info.type = FileInfo::Type::OTHER;
info.type = StorageFileInfo::Type::OTHER;
break;
}
......
......@@ -44,7 +44,8 @@ public:
/* virtual methods from class StorageDirectoryReader */
const char *Read() override;
bool GetInfo(bool follow, FileInfo &info, Error &error) override;
bool GetInfo(bool follow, StorageFileInfo &info,
Error &error) override;
};
class SmbclientStorage final : public Storage {
......@@ -63,7 +64,7 @@ public:
}
/* virtual methods from class Storage */
bool GetInfo(const char *uri_utf8, bool follow, FileInfo &info,
bool GetInfo(const char *uri_utf8, bool follow, StorageFileInfo &info,
Error &error) override;
StorageDirectoryReader *OpenDirectory(const char *uri_utf8,
......@@ -92,7 +93,7 @@ SmbclientStorage::MapToRelativeUTF8(const char *uri_utf8) const
}
static bool
GetInfo(const char *path, FileInfo &info, Error &error)
GetInfo(const char *path, StorageFileInfo &info, Error &error)
{
struct stat st;
smbclient_mutex.lock();
......@@ -104,11 +105,11 @@ GetInfo(const char *path, FileInfo &info, Error &error)
}
if (S_ISREG(st.st_mode))
info.type = FileInfo::Type::REGULAR;
info.type = StorageFileInfo::Type::REGULAR;
else if (S_ISDIR(st.st_mode))
info.type = FileInfo::Type::DIRECTORY;
info.type = StorageFileInfo::Type::DIRECTORY;
else
info.type = FileInfo::Type::OTHER;
info.type = StorageFileInfo::Type::OTHER;
info.size = st.st_size;
info.mtime = st.st_mtime;
......@@ -119,7 +120,7 @@ GetInfo(const char *path, FileInfo &info, Error &error)
bool
SmbclientStorage::GetInfo(const char *uri_utf8, gcc_unused bool follow,
FileInfo &info, Error &error)
StorageFileInfo &info, Error &error)
{
const std::string mapped = MapUTF8(uri_utf8);
return ::GetInfo(mapped.c_str(), info, error);
......@@ -172,7 +173,8 @@ SmbclientDirectoryReader::Read()
}
bool
SmbclientDirectoryReader::GetInfo(gcc_unused bool follow, FileInfo &info,
SmbclientDirectoryReader::GetInfo(gcc_unused bool follow,
StorageFileInfo &info,
Error &error)
{
const std::string path = PathTraitsUTF8::Build(base.c_str(), name);
......
......@@ -56,7 +56,7 @@ Ls(Storage &storage, const char *path)
const char *name;
while ((name = dir->Read()) != nullptr) {
FileInfo info;
StorageFileInfo info;
if (!dir->GetInfo(false, info, error)) {
printf("Error on %s: %s\n", name, error.GetMessage());
error.Clear();
......@@ -65,15 +65,15 @@ Ls(Storage &storage, const char *path)
const char *type = "unk";
switch (info.type) {
case FileInfo::Type::OTHER:
case StorageFileInfo::Type::OTHER:
type = "oth";
break;
case FileInfo::Type::REGULAR:
case StorageFileInfo::Type::REGULAR:
type = "reg";
break;
case FileInfo::Type::DIRECTORY:
case StorageFileInfo::Type::DIRECTORY:
type = "dir";
break;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment