private:
struct Private;
+ struct OwnerInfo
+ {
+ std::string owner;
+ std::string group;
+ };
+
bool exists;
FileType type;
FileSize size;
FileSize alloc_size;
Time::TimeStamp mtime;
- std::string owner;
- std::string group;
+ mutable OwnerInfo owner_info;
+ Private *priv;
public:
Stat();
+ Stat(const Stat &);
+ Stat &operator=(const Stat &);
+ ~Stat();
FileType get_type() const { return type; }
bool is_regular() const { return type==REGULAR; }
FileSize get_size() const { return size; }
FileSize get_alloc_size() const { return alloc_size; }
const Time::TimeStamp &get_modify_time() const { return mtime; }
- const std::string &get_owner() const { return owner; }
- const std::string &get_group() const { return group; }
+ const std::string &get_owner() const;
+ const std::string &get_group() const;
operator bool() const { return exists; }