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