a30a4a41f9
No functional changes intended. * Some variable renaming for clarity and consistency. * Pointer style fixes. * Added private method documentation back to cpp files for some methods.
76 lines
1.5 KiB
C++
76 lines
1.5 KiB
C++
/*
|
|
* Copyright 2002-2014 Haiku, Inc. All rights reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef _STATABLE_H
|
|
#define _STATABLE_H
|
|
|
|
|
|
#include <SupportDefs.h>
|
|
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
|
|
|
|
struct node_ref;
|
|
struct stat_beos;
|
|
class BVolume;
|
|
|
|
|
|
class BStatable {
|
|
public:
|
|
#if __GNUC__ > 3
|
|
virtual ~BStatable();
|
|
#endif
|
|
|
|
private:
|
|
virtual status_t _GetStat(struct stat_beos* stat) const = 0;
|
|
// provided for BeOS compatibility
|
|
|
|
public:
|
|
virtual status_t GetStat(struct stat* stat) const = 0;
|
|
|
|
bool IsFile() const;
|
|
bool IsDirectory() const;
|
|
bool IsSymLink() const;
|
|
|
|
status_t GetNodeRef(node_ref* ref) const;
|
|
|
|
status_t GetOwner(uid_t* owner) const;
|
|
status_t SetOwner(uid_t owner);
|
|
|
|
status_t GetGroup(gid_t* group) const;
|
|
status_t SetGroup(gid_t group);
|
|
|
|
status_t GetPermissions(mode_t* permissions) const;
|
|
status_t SetPermissions(mode_t permissions);
|
|
|
|
status_t GetSize(off_t* size) const;
|
|
|
|
status_t GetModificationTime(time_t* mtime) const;
|
|
status_t SetModificationTime(time_t mtime);
|
|
|
|
status_t GetCreationTime(time_t* ctime) const;
|
|
status_t SetCreationTime(time_t ctime);
|
|
|
|
status_t GetAccessTime(time_t* atime) const;
|
|
status_t SetAccessTime(time_t atime);
|
|
|
|
status_t GetVolume(BVolume* volume) const;
|
|
|
|
class Private;
|
|
|
|
private:
|
|
friend class BEntry;
|
|
friend class BNode;
|
|
friend class Private;
|
|
|
|
virtual void _OhSoStatable2();
|
|
virtual void _OhSoStatable3();
|
|
uint32 _reserved[4];
|
|
|
|
virtual status_t set_stat(struct stat &st, uint32 what) = 0;
|
|
};
|
|
|
|
#endif // _STATABLE_H
|