blob: fd4bd772e18ca71edc02152522bce6e9fa38a044 [file] [log] [blame]
#pragma once
#include <systemd/sd-event.h>
namespace sdeventplus
{
class SdEventInterface
{
public:
virtual ~SdEventInterface() = default;
virtual int sd_event_default(sd_event **event) const = 0;
virtual int sd_event_new(sd_event **event) const = 0;
virtual sd_event *sd_event_ref(sd_event *event) const = 0;
virtual sd_event *sd_event_unref(sd_event *event) const = 0;
virtual int sd_event_loop(sd_event *event) const = 0;
virtual sd_event_source *
sd_event_source_ref(sd_event_source *source) const = 0;
virtual sd_event_source *
sd_event_source_unref(sd_event_source *source) const = 0;
};
class SdEventImpl : public SdEventInterface
{
public:
int sd_event_default(sd_event **event) const override
{
return ::sd_event_default(event);
}
int sd_event_new(sd_event **event) const override
{
return ::sd_event_default(event);
}
sd_event *sd_event_ref(sd_event *event) const override
{
return ::sd_event_ref(event);
}
sd_event *sd_event_unref(sd_event *event) const override
{
return ::sd_event_unref(event);
}
int sd_event_loop(sd_event *event) const override
{
return ::sd_event_loop(event);
}
sd_event_source *sd_event_source_ref(sd_event_source *source) const override
{
return ::sd_event_source_ref(source);
}
sd_event_source *
sd_event_source_unref(sd_event_source *source) const override
{
return ::sd_event_source_unref(source);
}
};
extern SdEventImpl sdevent_impl;
} // namespace sdeventplus