1/*
2 * Copyright 2002-2010, Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _VOLUME_ROSTER_H
6#define _VOLUME_ROSTER_H
7
8
9#include <Application.h>
10#include <SupportDefs.h>
11#include <Volume.h>
12
13
14class BVolume;
15class BMessenger;
16
17
18class BVolumeRoster {
19public:
20								BVolumeRoster();
21	virtual						~BVolumeRoster();
22
23			status_t			GetNextVolume(BVolume* volume);
24			void				Rewind();
25
26			status_t			GetBootVolume(BVolume* volume);
27
28			status_t			StartWatching(
29									BMessenger messenger = be_app_messenger);
30			void				StopWatching();
31			BMessenger			Messenger() const;
32
33private:
34	virtual	void				_SeveredVRoster1();
35	virtual	void				_SeveredVRoster2();
36
37private:
38			int32				fCookie;
39									// The iteration cookie for next_dev()
40									// Initialized to 0
41			BMessenger*			fTarget;
42									// BMessenger referring to the target to
43									// which the watching notification
44									// messages are sent. The object is
45									// allocated and owned by the roster,
46									// or NULL if not watching.
47			uint32				_reserved[3];
48									// FBC
49};
50
51
52#endif	// _VOLUME_ROSTER_H
53