2025-01-24 18:21:47 +01:00

31 lines
760 B
C++

#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<const ServiceManifest> manifest;
std::shared_ptr<Service> service;
public:
explicit ServiceInstance(std::shared_ptr<const service::ServiceManifest> 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<Paths> getPaths() const override;
std::shared_ptr<Service> getService() const { return service; }
};
}