10namespace Arp {
namespace System {
namespace Commons {
namespace Io
16 enum class Traits :
int32
19 Permissions = (1 << 0),
20 LastWriteTime = (1 << 1),
25 enum class Permissions :
int32
54 using RootDirectoriesList = std::list<String>;
60 static Traits GetSupportedTraits(
void);
64 static void SetLastWriteTime(
const String& path,
const DateTime& newLastWriteTime);
67 static Permissions GetPermissions(
const String& path);
68 static void AddPermissions(
const String& path, Permissions permissions);
69 static void RemovePermissions(
const String& path, Permissions permissions);
70 static void RemoveAllPermissions(
const String& path);
71 static void SetPermissions(
const String& path, Permissions permissions);
72 static boolean IsDirectory(
const String& path);
73 static boolean IsFile(
const String& path);
75 static RootDirectoriesList GetRootDirectories(
void);
83ARP_CXX_SYMBOL_EXPORT std::ostream& operator<<(std::ostream& os, FileSystemInfo::Permissions value);
84ARP_CXX_SYMBOL_EXPORT std::istream& operator>>(std::istream& is, FileSystemInfo::Permissions& value);
89constexpr FileSystemInfo::Traits operator&(FileSystemInfo::Traits lhs, FileSystemInfo::Traits rhs)
91 using U = std::underlying_type<FileSystemInfo::Traits>::type;
92 return static_cast<FileSystemInfo::Traits
>(
static_cast<U
>(lhs) &
static_cast<U
>(rhs));
95constexpr FileSystemInfo::Traits operator|(FileSystemInfo::Traits lhs, FileSystemInfo::Traits rhs)
97 using U = std::underlying_type<FileSystemInfo::Traits>::type;
98 return static_cast<FileSystemInfo::Traits
>(
static_cast<U
>(lhs) |
static_cast<U
>(rhs));
101constexpr FileSystemInfo::Permissions operator&(FileSystemInfo::Permissions lhs, FileSystemInfo::Permissions rhs)
103 using U = std::underlying_type<FileSystemInfo::Permissions>::type;
104 return static_cast<FileSystemInfo::Permissions
>(
static_cast<U
>(lhs) &
static_cast<U
>(rhs));
107constexpr FileSystemInfo::Permissions operator|(FileSystemInfo::Permissions lhs, FileSystemInfo::Permissions rhs)
109 using U = std::underlying_type<FileSystemInfo::Permissions>::type;
110 return static_cast<FileSystemInfo::Permissions
>(
static_cast<U
>(lhs) |
static_cast<U
>(rhs));
113constexpr FileSystemInfo::Permissions& operator&=(FileSystemInfo::Permissions& lhs, FileSystemInfo::Permissions rhs)
119constexpr FileSystemInfo::Permissions& operator|=(FileSystemInfo::Permissions& lhs, FileSystemInfo::Permissions rhs)
125constexpr FileSystemInfo::Permissions operator~(FileSystemInfo::Permissions arg)
127 using U = std::underlying_type<FileSystemInfo::Permissions>::type;
128 return static_cast<FileSystemInfo::Permissions
>(~static_cast<U>(arg));
136template<>
struct fmt::formatter<
Arp::System::Commons::Io::FileSystemInfo::Permissions> :
public fmt::ostream_formatter {};
This class contains date and time informations.
Definition: DateTime.hpp:27
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
Definition: FileSystemInfo.hpp:14
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:33
std::int32_t int32
The Arp integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:35
std::uint64_t uint64
The Arp unsigned integer type of 8 byte size.
Definition: PrimitiveTypes.hpp:37
Root namespace for the PLCnext API
Definition: FileSystemInfo.hpp:48