#pragma once #include "service/ServiceContext.h" #include "service/Service.h" namespace tt::service { class ServiceInstance : public ServiceContext { private: Mutex mutex = Mutex(Mutex::Type::Normal); std::shared_ptr manifest; std::shared_ptr service; public: explicit ServiceInstance(std::shared_ptr manifest); ~ServiceInstance() override = default; /** @return a reference ot the service's manifest */ const service::ServiceManifest& getManifest() const override; /** Retrieve the paths that are relevant to this service */ std::unique_ptr getPaths() const override; std::shared_ptr getService() const { return service; } }; }