Porytiles
Loading...
Searching...
No Matches
compile_secondary_tileset.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
5#include "gsl/pointers"
6
16
17namespace porytiles {
18
28 public:
42 gsl::not_null<const TilesetRepo *> tileset_repo,
43 gsl::not_null<const TilesetCompiler *> compiler,
44 gsl::not_null<const TilesetMetadataProvider *> metadata_provider,
45 gsl::not_null<const LayoutMetadataProvider *> layout_metadata_provider,
46 gsl::not_null<const PorytilesTilesetManager *> tileset_manager,
47 gsl::not_null<const DomainConfig *> domain_config,
48 gsl::not_null<const AppConfig *> app_config,
49 gsl::not_null<const UserDiagnostics *> diag)
50 : tileset_repo_{tileset_repo}, compiler_{compiler}, metadata_provider_{metadata_provider},
51 layout_metadata_provider_{layout_metadata_provider}, tileset_manager_{tileset_manager},
52 domain_config_{domain_config}, app_config_{app_config}, diag_{diag}
53 {
54 }
55
68 [[nodiscard]] ChainableResult<void> compile(const std::string &tileset_name) const;
69
70 private:
71 const TilesetRepo *tileset_repo_;
72 const TilesetCompiler *compiler_;
73 const TilesetMetadataProvider *metadata_provider_;
74 const LayoutMetadataProvider *layout_metadata_provider_;
75 const PorytilesTilesetManager *tileset_manager_;
76 const DomainConfig *domain_config_;
77 const AppConfig *app_config_;
78 const UserDiagnostics *diag_;
79};
80
81} // namespace porytiles
Interface that defines a complete app layer configuration.
A result type that maintains a chainable sequence of errors for debugging and error reporting.
Use case for compiling a secondary Tileset.
CompileSecondaryTileset(gsl::not_null< const TilesetRepo * > tileset_repo, gsl::not_null< const TilesetCompiler * > compiler, gsl::not_null< const TilesetMetadataProvider * > metadata_provider, gsl::not_null< const LayoutMetadataProvider * > layout_metadata_provider, gsl::not_null< const PorytilesTilesetManager * > tileset_manager, gsl::not_null< const DomainConfig * > domain_config, gsl::not_null< const AppConfig * > app_config, gsl::not_null< const UserDiagnostics * > diag)
Constructs a CompileSecondaryTileset use case with the given repositories and services.
ChainableResult< void > compile(const std::string &tileset_name) const
Compiles the secondary Tileset with the given tileset name.
Interface that defines a complete domain layer configuration.
Abstract interface for querying layout metadata by name.
Abstract interface for querying Porytiles tileset ownership.
Service that compiles a Tileset (primary or secondary).
Abstract interface for querying tileset metadata by name.
Repository interface for the Tileset aggregate root.
Abstract class for structured error reporting and diagnostic output.