diff options
Diffstat (limited to 'monitor.h')
-rw-r--r-- | monitor.h | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -27,6 +27,7 @@ protected: public: static cUdevMonitor *Get(const char *Subsystem); static bool AddFilter(const char *Subsystem, cUdevFilter *Filter); + static bool DelFilter(const char *Subsystem, cUdevFilter *Filter); static void ShutdownAllMonitors(void); virtual ~cUdevMonitor(void); @@ -55,6 +56,27 @@ protected: virtual void Process(cUdevDevice &Device); }; +class cUdevUsbRemoveFilter : public cUdevFilter { +private: + class cItem : public cListObject { + public: + cString *item; + cString *devpath; + cItem(const char *i, const char *d); + virtual ~cItem(void); + }; + + static cMutex mutexFilter; + static cUdevUsbRemoveFilter *filter; + cMutex mutexItems; + cList<cItem> items; +protected: + virtual void Process(cUdevDevice &Device); +public: + static void AddItem(const char *item, const char *devpath); + static void RemoveItem(const char *item, const char *devpath); + }; + class cUdevPatternFilter : public cUdevFilter { public: static bool AddFilter(const char *Subsystem, const char *Pattern); |