int main() {
 using namespace fs;
  // Default ctor
  {
    static_assert(std::is_nothrow_default_constructible<file_status>::value,
                  "The default constructor must be noexcept");
    static_assert(test_convertible<file_status>(),
                  "The default constructor must not be explicit");
    const file_status f;
    assert(f.type()  == file_type::none);
    assert(f.permissions() == perms::unknown);
  }

  // Unary ctor
  {
    static_assert(std::is_nothrow_constructible<file_status, file_type>::value,
                  "This constructor must be noexcept");
    static_assert(!test_convertible<file_status, file_type>(),
                 "This constructor must be explicit");

    const file_status f(file_type::not_found);
    assert(f.type()  == file_type::not_found);
    assert(f.permissions() == perms::unknown);
  }
  // Binary ctor
  {
    static_assert(std::is_nothrow_constructible<file_status, file_type, perms>::value,
                  "This constructor must be noexcept");
    static_assert(!test_convertible<file_status, file_type, perms>(),
                  "This constructor must b explicit");
    const file_status f(file_type::regular, perms::owner_read);
    assert(f.type()  == file_type::regular);
    assert(f.permissions() == perms::owner_read);
  }
}
Beispiel #2
0
 inline bool status_known( file_status f ) { return f.type() != status_unknown; }
Beispiel #3
0
	inline bool is_regular_file(file_status s) noexcept
	{
		return s.type() == file_type::regular;
	}
Beispiel #4
0
 inline bool exists(file_status s) noexcept
 { return status_known(s) && s.type() != file_type::not_found; }
 inline bool status_known(file_status f) { return f.type() != status_error; }
 inline bool is_symlink(file_status f)   { return f.type() == symlink_file; }
 inline bool exists(file_status f)       { return f.type() != status_error
                                               && f.type() != file_not_found; }
Beispiel #8
0
 inline bool permissions_present(file_status f)
                                         {return f.permissions() != perms_not_known;}
Beispiel #9
0
 inline bool status_known(file_status s) noexcept
 { return s.type() != file_type::none; }
Beispiel #10
0
 inline bool is_symlink(file_status s) noexcept
 { return s.type() == file_type::symlink; }
Beispiel #11
0
 inline bool is_socket(file_status s) noexcept
 { return s.type() == file_type::socket; }
Beispiel #12
0
 inline bool is_fifo(file_status s) noexcept
 { return s.type() == file_type::fifo; }
Beispiel #13
0
 inline bool is_character_file(file_status s) noexcept
 { return s.type() == file_type::character; }
Beispiel #14
0
 inline bool is_block_file(file_status s) noexcept
 { return s.type() == file_type::block; }
Beispiel #15
0
 inline bool exists( file_status f )       { return f.type() != status_unknown && f.type() != file_not_found; }
Beispiel #16
0
 inline bool type_present(file_status f) { return f.type() != status_error; }
Beispiel #17
0
 bool operator==(const file_status& rhs) const { return type() == rhs.type() && 
                                                 permissions() == rhs.permissions(); }
Beispiel #18
0
inline
size_t get_size(const file_status &p_status) {
        return p_status.get_len();
}
Beispiel #19
0
inline
bool is_directory(const file_status &p_status) {
        return p_status.is_dir();
}
 inline bool is_directory(file_status f) { return f.type() == directory_file; }
Beispiel #21
0
inline
bool is_regular(const file_status &p_status) {
        return p_status.is_dir() == false;
}
 inline bool is_regular(file_status f)   { return f.type() == regular_file; }
Beispiel #23
0
	inline bool is_directory(file_status s) noexcept
	{ return s.type() == file_type::directory ;}
Status::Status(const file_status &Status)
    : UID(Status.getUniqueID()), MTime(Status.getLastModificationTime()),
      User(Status.getUser()), Group(Status.getGroup()), Size(Status.getSize()),
      Type(Status.type()), Perms(Status.permissions()) {}
Beispiel #25
0
 bool exists(file_status status) noexcept
 {
   return status.type() != file_type::not_found;
 }