File indexing completed on 2025-04-03 08:49:41
0001
0002
0003
0004 #pragma once
0005
0006 #include <algorithms/service.h>
0007 #include <memory>
0008
0009 class ActsGeometryProvider;
0010
0011 namespace algorithms {
0012
0013 class ActsSvc : public Service<ActsSvc> {
0014 public:
0015 void init(std::shared_ptr<const ActsGeometryProvider> provider = nullptr) {
0016 m_acts_geometry_provider = provider;
0017 };
0018
0019 void init(std::exception_ptr&& _failure) {
0020 failure = std::move(_failure);
0021 }
0022
0023 std::shared_ptr<const ActsGeometryProvider> acts_geometry_provider() {
0024 if (failure) {
0025 std::rethrow_exception(failure);
0026 }
0027 return m_acts_geometry_provider;
0028 }
0029
0030 protected:
0031 std::shared_ptr<const ActsGeometryProvider> m_acts_geometry_provider{nullptr};
0032 std::exception_ptr failure;
0033
0034 ALGORITHMS_DEFINE_SERVICE(ActsSvc)
0035 };
0036
0037 }