haiku/headers/os/storage/Volume.h
2003-02-11 18:17:25 +00:00

87 lines
1.8 KiB
C++

// ----------------------------------------------------------------------
// This software is part of the OpenBeOS distribution and is covered
// by the OpenBeOS license.
//
// File Name: Directory.cpp
//
// Description: BVolume class
// ----------------------------------------------------------------------
/*!
\file Volume.h
BVolume interface declarations.
*/
#ifndef _VOLUME_H
#define _VOLUME_H
#include <sys/types.h>
#include <fs_info.h>
#include <Mime.h>
#include <StorageDefs.h>
#include <SupportDefs.h>
#ifdef USE_OPENBEOS_NAMESPACE
namespace OpenBeOS {
#endif
class BDirectory;
class BBitmap;
class BVolume {
public:
BVolume();
BVolume(dev_t dev);
BVolume(const BVolume &vol);
virtual ~BVolume();
status_t InitCheck() const;
status_t SetTo(dev_t dev);
void Unset();
dev_t Device() const;
status_t GetRootDirectory(BDirectory *directory) const;
off_t Capacity() const;
off_t FreeBytes() const;
status_t GetName(char *name) const;
status_t SetName(const char *name);
status_t GetIcon(BBitmap *icon, icon_size which) const;
bool IsRemovable() const;
bool IsReadOnly() const;
bool IsPersistent() const;
bool IsShared() const;
bool KnowsMime() const;
bool KnowsAttr() const;
bool KnowsQuery() const;
bool operator==(const BVolume &volume) const;
bool operator!=(const BVolume &volume) const;
BVolume &operator=(const BVolume &volume);
private:
// friend class BVolumeRoster;
virtual void _TurnUpTheVolume1();
virtual void _TurnUpTheVolume2();
virtual void _TurnUpTheVolume3();
virtual void _TurnUpTheVolume4();
virtual void _TurnUpTheVolume5();
virtual void _TurnUpTheVolume6();
virtual void _TurnUpTheVolume7();
virtual void _TurnUpTheVolume8();
dev_t fDevice;
status_t fCStatus;
int32 _reserved[8];
};
#ifdef USE_OPENBEOS_NAMESPACE
} // namespace OpenBeOS
#endif
#endif // _VOLUME_H