xref: /haiku/headers/os/storage/VolumeRoster.h (revision 1214ef1b2100f2b3299fc9d8d6142e46f70a4c3f)
1 // ----------------------------------------------------------------------
2 //  This software is part of the OpenBeOS distribution and is covered
3 //  by the OpenBeOS license.
4 //
5 //  File Name:		VolumeRoster.h
6 //
7 //	Description:	BVolumeRoster class
8 // ----------------------------------------------------------------------
9 /*!
10 	\file VolumeRoster.h
11 	BVolumeRoster interface declarations.
12 */
13 #ifndef _VOLUME_ROSTER_H
14 #define _VOLUME_ROSTER_H
15 
16 #include <Application.h>
17 #include <SupportDefs.h>
18 #include <Volume.h>
19 
20 #ifdef USE_OPENBEOS_NAMESPACE
21 namespace OpenBeOS {
22 #endif
23 
24 class BVolume;
25 class BMessenger;
26 
27 class BVolumeRoster {
28 public:
29 	BVolumeRoster();
30 	virtual ~BVolumeRoster();
31 
32 	status_t GetNextVolume(BVolume *volume);
33 	void Rewind();
34 
35 	status_t GetBootVolume(BVolume *volume);
36 
37 	status_t StartWatching(BMessenger messenger = be_app_messenger);
38 	void StopWatching();
39 	BMessenger Messenger() const;
40 
41 private:
42 	virtual	void _SeveredVRoster1();
43 	virtual	void _SeveredVRoster2();
44 
45 	int32		fCookie;
46 	BMessenger	*fTarget;
47 	uint32		_reserved[3];
48 };
49 
50 #ifdef USE_OPENBEOS_NAMESPACE
51 }
52 #endif
53 
54 #endif	// _VOLUME_ROSTER_H
55