Porytiles
Loading...
Searching...
No Matches
create_primary_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
35 public:
49 gsl::not_null<const TilesetCreator *> creator,
50 gsl::not_null<const TilesetCompiler *> compiler,
51 gsl::not_null<const TilesetRepo *> tileset_repo,
52 gsl::not_null<const TilesetMetadataProvider *> metadata_provider,
53 gsl::not_null<const PorytilesTilesetManager *> tileset_manager,
54 gsl::not_null<DomainConfig *> domain_config,
55 gsl::not_null<const AppConfig *> app_config,
56 gsl::not_null<const UserDiagnostics *> diag)
57 : creator_{creator}, compiler_{compiler}, tileset_repo_{tileset_repo}, metadata_provider_{metadata_provider},
58 tileset_manager_{tileset_manager}, domain_config_{domain_config}, app_config_{app_config}, diag_{diag}
59 {
60 }
61
75 [[nodiscard]] ChainableResult<void> create(const std::string &tileset_name) const;
76
77 private:
78 const TilesetCreator *creator_;
79 const TilesetCompiler *compiler_;
80 const TilesetRepo *tileset_repo_;
81 const TilesetMetadataProvider *metadata_provider_;
82 const PorytilesTilesetManager *tileset_manager_;
83 DomainConfig *domain_config_;
84 const AppConfig *app_config_;
85 const UserDiagnostics *diag_;
86};
87
88} // 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 primary Tileset from scratch.
CreatePrimaryTileset(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 PorytilesTilesetManager * > tileset_manager, gsl::not_null< DomainConfig * > domain_config, gsl::not_null< const AppConfig * > app_config, gsl::not_null< const UserDiagnostics * > diag)
Constructs a CreatePrimaryTileset use case with the given dependencies.
ChainableResult< void > create(const std::string &tileset_name) const
Creates a new primary Tileset with the given name.
Interface that defines a complete domain layer configuration.
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.