1/* 2 * Copyright 2002-2009, Haiku Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _VOLUME_H 6#define _VOLUME_H 7 8 9#include <sys/types.h> 10 11#include <fs_info.h> 12#include <Mime.h> 13#include <StorageDefs.h> 14#include <SupportDefs.h> 15 16class BDirectory; 17class BBitmap; 18 19 20class BVolume { 21public: 22 BVolume(); 23 BVolume(dev_t device); 24 BVolume(const BVolume& volume); 25 virtual ~BVolume(); 26 27 status_t InitCheck() const; 28 status_t SetTo(dev_t device); 29 void Unset(); 30 31 dev_t Device() const; 32 33 status_t GetRootDirectory(BDirectory* directory) const; 34 35 off_t Capacity() const; 36 off_t FreeBytes() const; 37 off_t BlockSize() const; 38 39 status_t GetName(char* name) const; 40 status_t SetName(const char* name); 41 42 status_t GetIcon(BBitmap* icon, icon_size which) const; 43 status_t GetIcon(uint8** _data, size_t* _size, 44 type_code* _type) const; 45 46 bool IsRemovable() const; 47 bool IsReadOnly() const; 48 bool IsPersistent() const; 49 bool IsShared() const; 50 bool KnowsMime() const; 51 bool KnowsAttr() const; 52 bool KnowsQuery() const; 53 54 bool operator==(const BVolume& volume) const; 55 bool operator!=(const BVolume& volume) const; 56 BVolume& operator=(const BVolume& volume); 57 58private: 59 virtual void _TurnUpTheVolume1(); 60 virtual void _TurnUpTheVolume2(); 61 virtual void _TurnUpTheVolume3(); 62 virtual void _TurnUpTheVolume4(); 63 virtual void _TurnUpTheVolume5(); 64 virtual void _TurnUpTheVolume6(); 65 virtual void _TurnUpTheVolume7(); 66 virtual void _TurnUpTheVolume8(); 67 68 dev_t fDevice; 69 status_t fCStatus; 70 int32 _reserved[8]; 71}; 72 73#endif // _VOLUME_H 74