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