logiops/src/logid/backend/raw/DeviceMonitor.h
pixl dd75df8c18
Use consistent code style
Only files that are currently used in logid are changed.
2020-07-12 16:14:25 -04:00

36 lines
714 B
C++

#ifndef LOGID_BACKEND_RAW_DEVICEMONITOR_H
#define LOGID_BACKEND_RAW_DEVICEMONITOR_H
#include <string>
#include <mutex>
#include <atomic>
extern "C"
{
#include <libudev.h>
}
namespace logid {
namespace backend {
namespace raw
{
class DeviceMonitor
{
public:
void enumerate();
void run();
void stop();
protected:
DeviceMonitor();
~DeviceMonitor();
virtual void addDevice(std::string device) = 0;
virtual void removeDevice(std::string device) = 0;
private:
struct udev* _udev_context;
int _pipe[2];
std::atomic<bool> _run_monitor;
std::mutex _running;
};
}}}
#endif //LOGID_BACKEND_RAW_DEVICEMONITOR_H