#pragma once #include namespace tt::service { // Forward declaration class ServiceContext; class Service { public: Service() = default; virtual ~Service() = default; virtual void onStart(ServiceContext& serviceContext) {} virtual void onStop(ServiceContext& serviceContext) {} }; template std::shared_ptr create() { return std::shared_ptr(new T); } }