Porytiles
Loading...
Searching...
No Matches
import_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
23 public:
28 gsl::not_null<const PrimaryTilesetImporter *> importer,
29 gsl::not_null<const PrimaryTilesetDecompiler *> decompiler,
30 gsl::not_null<const TilesetCompiler *> compiler,
31 gsl::not_null<const TilesetRepo *> tileset_repo,
32 gsl::not_null<const TilesetMetadataProvider *> metadata_provider,
33 gsl::not_null<const PorytilesTilesetManager *> tileset_manager,
34 gsl::not_null<DomainConfig *> domain_config,
35 gsl::not_null<const AppConfig *> app_config,
36 gsl::not_null<const UserDiagnostics *> diag)
37 : importer_{importer}, decompiler_{decompiler}, compiler_{compiler}, tileset_repo_{tileset_repo},
38 metadata_provider_{metadata_provider}, tileset_manager_{tileset_manager}, domain_config_{domain_config},
39 app_config_{app_config}, diag_{diag}
40 {
41 }
42
43 [[nodiscard]] ChainableResult<void> import(const std::string &tileset_name) const;
44
45 private:
46 const PrimaryTilesetImporter *importer_;
47 const PrimaryTilesetDecompiler *decompiler_;
48 const TilesetCompiler *compiler_;
49 const TilesetRepo *tileset_repo_;
50 const TilesetMetadataProvider *metadata_provider_;
51 const PorytilesTilesetManager *tileset_manager_;
52 DomainConfig *domain_config_;
53 const AppConfig *app_config_;
54 const UserDiagnostics *diag_;
55};
56
57} // 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.
Interface that defines a complete domain layer configuration.
Use case for importing a primary Tileset.
ImportPrimaryTileset(gsl::not_null< const PrimaryTilesetImporter * > importer, gsl::not_null< const PrimaryTilesetDecompiler * > decompiler, 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 an ImportPrimaryTileset use case with the given repositories and services.
Abstract interface for querying Porytiles tileset ownership.
Domain service interface for importing vanilla (non-Porytiles-managed) tilesets into a PorymapTileset...
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.