1*0a816c5dSWilliam A. Kennington III #pragma once 2*0a816c5dSWilliam A. Kennington III 3*0a816c5dSWilliam A. Kennington III #include <sdeventplus/internal/sdevent.hpp> 4*0a816c5dSWilliam A. Kennington III #include <sdeventplus/internal/sdref.hpp> 5*0a816c5dSWilliam A. Kennington III #include <systemd/sd-bus.h> 6*0a816c5dSWilliam A. Kennington III #include <type_traits> 7*0a816c5dSWilliam A. Kennington III 8*0a816c5dSWilliam A. Kennington III namespace sdeventplus 9*0a816c5dSWilliam A. Kennington III { 10*0a816c5dSWilliam A. Kennington III namespace source 11*0a816c5dSWilliam A. Kennington III { 12*0a816c5dSWilliam A. Kennington III 13*0a816c5dSWilliam A. Kennington III class Base 14*0a816c5dSWilliam A. Kennington III { 15*0a816c5dSWilliam A. Kennington III public: 16*0a816c5dSWilliam A. Kennington III // We don't want to allow any kind of slicing. 17*0a816c5dSWilliam A. Kennington III Base(const Base& source) = delete; 18*0a816c5dSWilliam A. Kennington III Base& operator=(const Base& source) = delete; 19*0a816c5dSWilliam A. Kennington III Base(Base&& source) = delete; 20*0a816c5dSWilliam A. Kennington III Base& operator=(Base&& source) = delete; 21*0a816c5dSWilliam A. Kennington III 22*0a816c5dSWilliam A. Kennington III protected: 23*0a816c5dSWilliam A. Kennington III internal::SdEvent* sdevent; 24*0a816c5dSWilliam A. Kennington III internal::SdRef<sd_event_source> source; 25*0a816c5dSWilliam A. Kennington III 26*0a816c5dSWilliam A. Kennington III // Base sources cannot be directly constructed. 27*0a816c5dSWilliam A. Kennington III Base(sd_event_source* source, 28*0a816c5dSWilliam A. Kennington III internal::SdEvent* sdevent = &internal::sdevent_impl); 29*0a816c5dSWilliam A. Kennington III Base(sd_event_source* source, std::false_type, 30*0a816c5dSWilliam A. Kennington III internal::SdEvent* sdevent = &internal::sdevent_impl); 31*0a816c5dSWilliam A. Kennington III }; 32*0a816c5dSWilliam A. Kennington III 33*0a816c5dSWilliam A. Kennington III } // namespace source 34*0a816c5dSWilliam A. Kennington III } // namespace sdeventplus 35