1// ----------------------------------------------------------------------
2//  This software is part of the Haiku distribution and is covered
3//  by the MIT License.
4//
5//  File Name:		Directory.cpp
6//
7//	Description:	BVolume class
8// ----------------------------------------------------------------------
9/*!
10	\file Volume.h
11	BVolume interface declarations.
12*/
13#ifndef _VOLUME_H
14#define _VOLUME_H
15
16#include <sys/types.h>
17
18#include <fs_info.h>
19#include <Mime.h>
20#include <StorageDefs.h>
21#include <SupportDefs.h>
22
23#ifdef USE_OPENBEOS_NAMESPACE
24namespace OpenBeOS {
25#endif
26
27class BDirectory;
28class BBitmap;
29
30class BVolume {
31public:
32	BVolume();
33	BVolume(dev_t dev);
34	BVolume(const BVolume &vol);
35	virtual ~BVolume();
36
37	status_t InitCheck() const;
38	status_t SetTo(dev_t dev);
39	void Unset();
40
41	dev_t Device() const;
42
43	bool operator==(const BVolume &volume) const;
44	bool operator!=(const BVolume &volume) const;
45	BVolume &operator=(const BVolume &volume);
46
47private:
48//	friend class BVolumeRoster;
49
50	virtual void _TurnUpTheVolume1();
51	virtual void _TurnUpTheVolume2();
52	virtual void _TurnUpTheVolume3();
53	virtual void _TurnUpTheVolume4();
54	virtual void _TurnUpTheVolume5();
55	virtual void _TurnUpTheVolume6();
56	virtual void _TurnUpTheVolume7();
57	virtual void _TurnUpTheVolume8();
58
59	dev_t		fDevice;
60	status_t	fCStatus;
61	int32		_reserved[8];
62};
63
64#ifdef USE_OPENBEOS_NAMESPACE
65}	// namespace OpenBeOS
66#endif
67
68#endif	// _VOLUME_H
69