storage/FileInfo: rename to StorageFileInfo
This commit is contained in:
parent
e1a434edbc
commit
2d06a8e880
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user