Porytiles
Loading...
Searching...
No Matches
porytiles::TilesetArtifactWriter Class Referenceabstract

Abstract interface for writing tileset artifacts from a Tileset object to a backing store. More...

#include <tileset_artifact_writer.hpp>

Inheritance diagram for porytiles::TilesetArtifactWriter:
[legend]

Public Member Functions

virtual ~TilesetArtifactWriter ()=default
 
virtual ChainableResult< void > begin_transaction ()=0
 Begins a new transaction for atomic write operations.
 
virtual ChainableResult< void > commit ()=0
 Commits all buffered write operations in the current transaction.
 
virtual ChainableResult< void > rollback ()=0
 Rolls back all buffered write operations in the current transaction.
 
virtual ChainableResult< void > write_metatiles_bin (const ArtifactKey &dest_key, const Tileset &src)=0
 
virtual ChainableResult< void > write_metatile_attributes_bin (const ArtifactKey &dest_key, const Tileset &src)=0
 
virtual ChainableResult< void > write_tiles_png (const ArtifactKey &dest_key, const Tileset &src)=0
 
virtual ChainableResult< void > write_porymap_pal_n (const ArtifactKey &dest_key, const Tileset &src, std::size_t index)=0
 
virtual ChainableResult< void > write_porymap_anim_frame (const ArtifactKey &dest_key, const Tileset &src, const std::string &anim_name, const std::string &frame_name)=0
 
virtual ChainableResult< void > write_porymap_anim_params (const ArtifactKey &dest_key, const Tileset &src)=0
 Writes the animation parameters to the Porymap component backing store.
 
virtual ChainableResult< void > write_bottom_png (const ArtifactKey &dest_key, const Tileset &src)=0
 
virtual ChainableResult< void > write_middle_png (const ArtifactKey &dest_key, const Tileset &src)=0
 
virtual ChainableResult< void > write_top_png (const ArtifactKey &dest_key, const Tileset &src)=0
 
virtual ChainableResult< void > write_attributes_csv (const ArtifactKey &dest_key, const Tileset &src)=0
 
virtual ChainableResult< void > write_porytiles_pal_n (const ArtifactKey &dest_key, const Tileset &src, std::size_t index)=0
 
virtual ChainableResult< void > write_porytiles_anim_frame (const ArtifactKey &dest_key, const Tileset &src, const std::string &anim_name, const std::string &frame_name)=0
 
virtual ChainableResult< void > write_porytiles_anim_params (const ArtifactKey &dest_key, const Tileset &src)=0
 Writes animation parameters to the Porytiles component backing store.
 

Detailed Description

Abstract interface for writing tileset artifacts from a Tileset object to a backing store.

The TilesetArtifactWriter provides the ability to extract data from a Tileset object and write various types of tileset artifacts (PNG files, binary data, etc.) to their storage locations. This interface abstracts the writing logic from the specific storage format and location.

Implementations handle the details of formatting different artifact types and extracting the appropriate data from the source Tileset components. The interface uses type-erased keys (std::any) to support different backing store implementations (filesystem paths, database keys, URLs, etc.).

Definition at line 23 of file tileset_artifact_writer.hpp.

Constructor & Destructor Documentation

◆ ~TilesetArtifactWriter()

virtual porytiles::TilesetArtifactWriter::~TilesetArtifactWriter ( )
virtualdefault

Member Function Documentation

◆ begin_transaction()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::begin_transaction ( )
pure virtual

Begins a new transaction for atomic write operations.

Starts a transaction that buffers all subsequent write operations until a commit() call. If a transaction is already active, this should return an error.

Returns
Empty ChainableResult on success, otherwise an error description

Implemented in porytiles::ProjectTilesetArtifactWriter.

◆ commit()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::commit ( )
pure virtual

Commits all buffered write operations in the current transaction.

Finalizes and persists all write operations that were buffered since begin_transaction() was called. After commit, the transaction is closed and a new one must be started for further transactional writes. If no transaction is active, this should return an error.

Returns
Empty ChainableResult on success, otherwise an error chain

Implemented in porytiles::ProjectTilesetArtifactWriter.

◆ rollback()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::rollback ( )
pure virtual

Rolls back all buffered write operations in the current transaction.

Discards all write operations that were buffered since begin_transaction() was called. After rollback, the transaction is closed and a new one must be started for further transactional writes. If no transaction is active, this should return an error.

Returns
Empty ChainableResult on success, otherwise an error description

Implemented in porytiles::ProjectTilesetArtifactWriter.

◆ write_attributes_csv()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::write_attributes_csv ( const ArtifactKey dest_key,
const Tileset src 
)
pure virtual

◆ write_bottom_png()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::write_bottom_png ( const ArtifactKey dest_key,
const Tileset src 
)
pure virtual

◆ write_metatile_attributes_bin()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::write_metatile_attributes_bin ( const ArtifactKey dest_key,
const Tileset src 
)
pure virtual

◆ write_metatiles_bin()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::write_metatiles_bin ( const ArtifactKey dest_key,
const Tileset src 
)
pure virtual

◆ write_middle_png()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::write_middle_png ( const ArtifactKey dest_key,
const Tileset src 
)
pure virtual

◆ write_porymap_anim_frame()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::write_porymap_anim_frame ( const ArtifactKey dest_key,
const Tileset src,
const std::string &  anim_name,
const std::string &  frame_name 
)
pure virtual

◆ write_porymap_anim_params()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::write_porymap_anim_params ( const ArtifactKey dest_key,
const Tileset src 
)
pure virtual

Writes the animation parameters to the Porymap component backing store.

Generates and writes the animation parameters for all animations in the Porymap component. The tileset_root_key provides the path used for constructing INCBIN statements.

Parameters
dest_keyKey identifying where to write the parameters
srcThe Tileset object to extract animation data from
Returns
Empty ChainableResult on success, otherwise an error chain

Implemented in porytiles::ProjectTilesetArtifactWriter.

◆ write_porymap_pal_n()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::write_porymap_pal_n ( const ArtifactKey dest_key,
const Tileset src,
std::size_t  index 
)
pure virtual

◆ write_porytiles_anim_frame()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::write_porytiles_anim_frame ( const ArtifactKey dest_key,
const Tileset src,
const std::string &  anim_name,
const std::string &  frame_name 
)
pure virtual

◆ write_porytiles_anim_params()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::write_porytiles_anim_params ( const ArtifactKey dest_key,
const Tileset src 
)
pure virtual

Writes animation parameters to the Porytiles component backing store.

Generates and writes the animation parameters (frame sequences, timing, etc.) for all animations in the Porytiles component.

Parameters
dest_keyKey identifying where to write the parameters
srcThe Tileset object from which to extract animation parameters
Returns
Empty ChainableResult on success, otherwise an error chain

Implemented in porytiles::ProjectTilesetArtifactWriter.

◆ write_porytiles_pal_n()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::write_porytiles_pal_n ( const ArtifactKey dest_key,
const Tileset src,
std::size_t  index 
)
pure virtual

◆ write_tiles_png()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::write_tiles_png ( const ArtifactKey dest_key,
const Tileset src 
)
pure virtual

◆ write_top_png()

virtual ChainableResult< void > porytiles::TilesetArtifactWriter::write_top_png ( const ArtifactKey dest_key,
const Tileset src 
)
pure virtual

The documentation for this class was generated from the following file: