1*bf0283aeSPatrick Williams #include <net/poettering/Calculator/aserver.hpp> 2*bf0283aeSPatrick Williams #include <sdbusplus/async.hpp> 3*bf0283aeSPatrick Williams 4*bf0283aeSPatrick Williams class Calculator : 5*bf0283aeSPatrick Williams public sdbusplus::aserver::net::poettering::Calculator<Calculator> 6*bf0283aeSPatrick Williams { 7*bf0283aeSPatrick Williams public: 8*bf0283aeSPatrick Williams explicit Calculator(sdbusplus::async::context& ctx) : 9*bf0283aeSPatrick Williams sdbusplus::aserver::net::poettering::Calculator<Calculator>( 10*bf0283aeSPatrick Williams ctx, "/net/poettering/calculator"), 11*bf0283aeSPatrick Williams manager(ctx, "/") 12*bf0283aeSPatrick Williams { 13*bf0283aeSPatrick Williams ctx.spawn(startup()); 14*bf0283aeSPatrick Williams } 15*bf0283aeSPatrick Williams 16*bf0283aeSPatrick Williams private: 17*bf0283aeSPatrick Williams auto startup() -> sdbusplus::async::task<> 18*bf0283aeSPatrick Williams { 19*bf0283aeSPatrick Williams ctx.get_bus().request_name("net.poettering.Calculator"); 20*bf0283aeSPatrick Williams 21*bf0283aeSPatrick Williams while (1) 22*bf0283aeSPatrick Williams { 23*bf0283aeSPatrick Williams using namespace std::literals; 24*bf0283aeSPatrick Williams co_await sdbusplus::async::sleep_for(ctx, 10s); 25*bf0283aeSPatrick Williams 26*bf0283aeSPatrick Williams cleared(42); 27*bf0283aeSPatrick Williams } 28*bf0283aeSPatrick Williams co_return; 29*bf0283aeSPatrick Williams } 30*bf0283aeSPatrick Williams 31*bf0283aeSPatrick Williams sdbusplus::server::manager_t manager; 32*bf0283aeSPatrick Williams }; 33*bf0283aeSPatrick Williams 34*bf0283aeSPatrick Williams int main() 35*bf0283aeSPatrick Williams { 36*bf0283aeSPatrick Williams sdbusplus::async::context ctx; 37*bf0283aeSPatrick Williams [[maybe_unused]] Calculator c(ctx); 38*bf0283aeSPatrick Williams 39*bf0283aeSPatrick Williams ctx.run(); 40*bf0283aeSPatrick Williams 41*bf0283aeSPatrick Williams return 0; 42*bf0283aeSPatrick Williams } 43