1/*
2 * Copyright 2015, Axel D��rfler, axeld@pinc-software.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef VOLUME_WATCHER_H
6#define VOLUME_WATCHER_H
7
8
9#include <Handler.h>
10#include <ObjectList.h>
11
12
13class VolumeListener {
14public:
15	virtual						~VolumeListener();
16
17	virtual	void				VolumeMounted(dev_t device) = 0;
18	virtual	void				VolumeUnmounted(dev_t device) = 0;
19};
20
21
22class VolumeWatcher : public BHandler {
23public:
24								VolumeWatcher();
25	virtual						~VolumeWatcher();
26
27			void				AddListener(VolumeListener* listener);
28			void				RemoveListener(VolumeListener* listener);
29			int32				CountListeners() const;
30
31	virtual	void				MessageReceived(BMessage* message);
32
33	static	void				Register(VolumeListener* listener);
34	static	void				Unregister(VolumeListener* listener);
35
36protected:
37			BObjectList<VolumeListener>
38								fListeners;
39};
40
41
42#endif // VOLUME_WATCHER_H
43