Porytiles
Loading...
Searching...
No Matches
create_secondary_tileset.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
5#include "gsl/pointers"
6
17
18namespace porytiles {
19
38 public:
53 gsl::not_null<const TilesetCreator *> creator,
54 gsl::not_null<const TilesetCompiler *> compiler,
55 gsl::not_null<const TilesetRepo *> tileset_repo,
56 gsl::not_null<const TilesetMetadataProvider *> metadata_provider,
57 gsl::not_null<const LayoutMetadataProvider *> layout_metadata_provider,
58 gsl::not_null<const PorytilesTilesetManager *> tileset_manager,
59 gsl::not_null<DomainConfig *> domain_config,
60 gsl::not_null<const AppConfig *> app_config,
61 gsl::not_null<const UserDiagnostics *> diag)
62 : creator_{creator}, compiler_{compiler}, tileset_repo_{tileset_repo}, metadata_provider_{metadata_provider},
63 layout_metadata_provider_{layout_metadata_provider}, tileset_manager_{tileset_manager},
64 domain_config_{domain_config}, app_config_{app_config}, diag_{diag}
65 {
66 }
67
81 [[nodiscard]] ChainableResult<void> create(const std::string &tileset_name) const;
82
83 private:
84 const TilesetCreator *creator_;
85 const TilesetCompiler *compiler_;
86 const TilesetRepo *tileset_repo_;
87 const TilesetMetadataProvider *metadata_provider_;
88 const LayoutMetadataProvider *layout_metadata_provider_;
89 const PorytilesTilesetManager *tileset_manager_;
90 DomainConfig *domain_config_;
91 const AppConfig *app_config_;
92 const UserDiagnostics *diag_;
93};
94
95} // 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 creating a new secondary Tileset from scratch.
ChainableResult< void > create(const std::string &tileset_name) const
Creates a new secondary Tileset with the given name.
CreateSecondaryTileset(gsl::not_null< const TilesetCreator * > creator, gsl::not_null< const TilesetCompiler * > compiler, gsl::not_null< const TilesetRepo * > tileset_repo, 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< DomainConfig * > domain_config, gsl::not_null< const AppConfig * > app_config, gsl::not_null< const UserDiagnostics * > diag)
Constructs a CreateSecondaryTileset use case with the given dependencies.
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).
Domain service for creating new tilesets from scratch.
Abstract interface for querying tileset metadata by name.
Repository interface for the Tileset aggregate root.
Abstract class for structured error reporting and diagnostic output.