yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::cli::resources::CommandHandler Class Referenceabstract

Base class for CLI command handlers. More...

#include <command_handler.h>

Inherited by yaze::cli::agent::TUICommandHandler, yaze::cli::handlers::DialogueListCommandHandler, yaze::cli::handlers::DialogueReadCommandHandler, yaze::cli::handlers::DialogueSearchCommandHandler, yaze::cli::handlers::DungeonDescribeRoomCommandHandler, yaze::cli::handlers::DungeonExportRoomCommandHandler, yaze::cli::handlers::DungeonGetRoomTilesCommandHandler, yaze::cli::handlers::DungeonListObjectsCommandHandler, yaze::cli::handlers::DungeonListSpritesCommandHandler, yaze::cli::handlers::DungeonSetRoomPropertyCommandHandler, yaze::cli::handlers::EmulatorClearBreakpointCommandHandler, yaze::cli::handlers::EmulatorGetMetricsCommandHandler, yaze::cli::handlers::EmulatorGetRegistersCommandHandler, yaze::cli::handlers::EmulatorGetStateCommandHandler, yaze::cli::handlers::EmulatorHoldButtonsCommandHandler, yaze::cli::handlers::EmulatorListBreakpointsCommandHandler, yaze::cli::handlers::EmulatorPauseCommandHandler, yaze::cli::handlers::EmulatorPressButtonsCommandHandler, yaze::cli::handlers::EmulatorReadMemoryCommandHandler, yaze::cli::handlers::EmulatorReleaseButtonsCommandHandler, yaze::cli::handlers::EmulatorResetCommandHandler, yaze::cli::handlers::EmulatorRunCommandHandler, yaze::cli::handlers::EmulatorSetBreakpointCommandHandler, yaze::cli::handlers::EmulatorStepCommandHandler, yaze::cli::handlers::EmulatorWriteMemoryCommandHandler, yaze::cli::handlers::GuiClickCommandHandler, yaze::cli::handlers::GuiDiscoverToolCommandHandler, yaze::cli::handlers::GuiPlaceTileCommandHandler, yaze::cli::handlers::GuiScreenshotCommandHandler, yaze::cli::handlers::HexReadCommandHandler, yaze::cli::handlers::HexSearchCommandHandler, yaze::cli::handlers::HexWriteCommandHandler, yaze::cli::handlers::MessageListCommandHandler, yaze::cli::handlers::MessageReadCommandHandler, yaze::cli::handlers::MessageSearchCommandHandler, yaze::cli::handlers::MusicInfoCommandHandler, yaze::cli::handlers::MusicListCommandHandler, yaze::cli::handlers::MusicTracksCommandHandler, yaze::cli::handlers::OverworldDescribeMapCommandHandler, yaze::cli::handlers::OverworldFindTileCommandHandler, yaze::cli::handlers::OverworldGetEntranceCommandHandler, yaze::cli::handlers::OverworldListSpritesCommandHandler, yaze::cli::handlers::OverworldListWarpsCommandHandler, yaze::cli::handlers::OverworldTileStatsCommandHandler, yaze::cli::handlers::PaletteAnalyzeCommandHandler, yaze::cli::handlers::PaletteGetColorsCommandHandler, yaze::cli::handlers::PaletteSetColorCommandHandler, yaze::cli::handlers::ProjectBuildCommandHandler, yaze::cli::handlers::ProjectInitCommandHandler, yaze::cli::handlers::ResourceListCommandHandler, yaze::cli::handlers::ResourceSearchCommandHandler, yaze::cli::handlers::RomDiffCommandHandler, yaze::cli::handlers::RomGenerateGoldenCommandHandler, yaze::cli::handlers::RomInfoCommandHandler, yaze::cli::handlers::RomValidateCommandHandler, yaze::cli::handlers::SimpleChatCommandHandler, yaze::cli::handlers::SpriteListCommandHandler, yaze::cli::handlers::SpritePaletteCommandHandler, and yaze::cli::handlers::SpritePropertiesCommandHandler.

Classes

struct  Descriptor
 
struct  DescriptorEntry
 

Public Member Functions

virtual ~CommandHandler ()=default
 
absl::Status Run (const std::vector< std::string > &args, Rom *rom_context)
 Execute the command.
 
virtual std::string GetName () const =0
 Get the command name.
 
virtual Descriptor Describe () const
 Provide metadata for TUI/help summaries.
 

Protected Member Functions

virtual absl::Status ValidateArgs (const ArgumentParser &parser)=0
 Validate command arguments.
 
virtual absl::Status Execute (Rom *rom, const ArgumentParser &parser, OutputFormatter &formatter)=0
 Execute the command business logic.
 
virtual std::string GetUsage () const =0
 Get the command usage string.
 
virtual bool RequiresLabels () const
 Check if the command requires ROM labels.
 
virtual std::string GetDefaultFormat () const
 Get the default output format ("json" or "text")
 
virtual std::string GetOutputTitle () const
 Get the output title for formatting.
 

Detailed Description

Base class for CLI command handlers.

Provides a consistent structure for implementing CLI commands with:

  • Automatic argument parsing
  • ROM context management
  • Output formatting
  • Error handling

Example usage:

class MyCommandHandler : public CommandHandler {
protected:
absl::Status ValidateArgs(const ArgumentParser& parser) override {
return parser.RequireArgs({"required_arg"});
}
absl::Status Execute(Rom* rom, const ArgumentParser& parser,
OutputFormatter& formatter) override {
auto value = parser.GetString("required_arg").value();
// ... business logic ...
formatter.AddField("result", value);
return absl::OkStatus();
}
};
The Rom class is used to load, save, and modify Rom data.
Definition rom.h:71
Utility for parsing common CLI argument patterns.
absl::Status RequireArgs(const std::vector< std::string > &required) const
Validate that required arguments are present.
Base class for CLI command handlers.

Definition at line 43 of file command_handler.h.

Constructor & Destructor Documentation

◆ ~CommandHandler()

virtual yaze::cli::resources::CommandHandler::~CommandHandler ( )
virtualdefault

Member Function Documentation

◆ Run()

absl::Status yaze::cli::resources::CommandHandler::Run ( const std::vector< std::string > &  args,
Rom rom_context 
)

◆ GetName()

virtual std::string yaze::cli::resources::CommandHandler::GetName ( ) const
pure virtual

Get the command name.

Override this to provide a unique identifier for the command. This is used for command registration and lookup.

Implemented in yaze::cli::handlers::SimpleChatCommandHandler, yaze::cli::handlers::DialogueListCommandHandler, yaze::cli::handlers::DialogueReadCommandHandler, yaze::cli::handlers::DialogueSearchCommandHandler, yaze::cli::handlers::DungeonListSpritesCommandHandler, yaze::cli::handlers::DungeonDescribeRoomCommandHandler, yaze::cli::handlers::DungeonExportRoomCommandHandler, yaze::cli::handlers::DungeonListObjectsCommandHandler, yaze::cli::handlers::DungeonGetRoomTilesCommandHandler, yaze::cli::handlers::DungeonSetRoomPropertyCommandHandler, yaze::cli::handlers::MessageListCommandHandler, yaze::cli::handlers::MessageReadCommandHandler, yaze::cli::handlers::MessageSearchCommandHandler, yaze::cli::handlers::MusicListCommandHandler, yaze::cli::handlers::MusicInfoCommandHandler, yaze::cli::handlers::MusicTracksCommandHandler, yaze::cli::handlers::OverworldFindTileCommandHandler, yaze::cli::handlers::OverworldDescribeMapCommandHandler, yaze::cli::handlers::OverworldListWarpsCommandHandler, yaze::cli::handlers::OverworldListSpritesCommandHandler, yaze::cli::handlers::OverworldGetEntranceCommandHandler, yaze::cli::handlers::OverworldTileStatsCommandHandler, yaze::cli::handlers::HexReadCommandHandler, yaze::cli::handlers::HexWriteCommandHandler, yaze::cli::handlers::HexSearchCommandHandler, yaze::cli::handlers::PaletteGetColorsCommandHandler, yaze::cli::handlers::PaletteSetColorCommandHandler, yaze::cli::handlers::PaletteAnalyzeCommandHandler, yaze::cli::handlers::SpriteListCommandHandler, yaze::cli::handlers::SpritePropertiesCommandHandler, yaze::cli::handlers::SpritePaletteCommandHandler, yaze::cli::handlers::ProjectInitCommandHandler, yaze::cli::handlers::ProjectBuildCommandHandler, yaze::cli::handlers::RomInfoCommandHandler, yaze::cli::handlers::RomValidateCommandHandler, yaze::cli::handlers::RomDiffCommandHandler, yaze::cli::handlers::RomGenerateGoldenCommandHandler, yaze::cli::handlers::EmulatorStepCommandHandler, yaze::cli::handlers::EmulatorRunCommandHandler, yaze::cli::handlers::EmulatorPauseCommandHandler, yaze::cli::handlers::EmulatorResetCommandHandler, yaze::cli::handlers::EmulatorGetStateCommandHandler, yaze::cli::handlers::EmulatorSetBreakpointCommandHandler, yaze::cli::handlers::EmulatorClearBreakpointCommandHandler, yaze::cli::handlers::EmulatorListBreakpointsCommandHandler, yaze::cli::handlers::EmulatorReadMemoryCommandHandler, yaze::cli::handlers::EmulatorWriteMemoryCommandHandler, yaze::cli::handlers::EmulatorGetRegistersCommandHandler, yaze::cli::handlers::EmulatorGetMetricsCommandHandler, yaze::cli::handlers::EmulatorPressButtonsCommandHandler, yaze::cli::handlers::EmulatorReleaseButtonsCommandHandler, yaze::cli::handlers::EmulatorHoldButtonsCommandHandler, yaze::cli::handlers::GuiPlaceTileCommandHandler, yaze::cli::handlers::GuiClickCommandHandler, yaze::cli::handlers::GuiDiscoverToolCommandHandler, yaze::cli::handlers::GuiScreenshotCommandHandler, yaze::cli::handlers::ResourceListCommandHandler, and yaze::cli::handlers::ResourceSearchCommandHandler.

◆ Describe()

CommandHandler::Descriptor yaze::cli::resources::CommandHandler::Describe ( ) const
virtual

◆ ValidateArgs()

virtual absl::Status yaze::cli::resources::CommandHandler::ValidateArgs ( const ArgumentParser parser)
protectedpure virtual

Validate command arguments.

Override this to check required arguments and perform custom validation. Called before Execute().

Implemented in yaze::cli::handlers::SimpleChatCommandHandler, yaze::cli::handlers::DialogueListCommandHandler, yaze::cli::handlers::DialogueReadCommandHandler, yaze::cli::handlers::DialogueSearchCommandHandler, yaze::cli::handlers::DungeonListSpritesCommandHandler, yaze::cli::handlers::DungeonDescribeRoomCommandHandler, yaze::cli::handlers::DungeonExportRoomCommandHandler, yaze::cli::handlers::DungeonListObjectsCommandHandler, yaze::cli::handlers::DungeonGetRoomTilesCommandHandler, yaze::cli::handlers::DungeonSetRoomPropertyCommandHandler, yaze::cli::handlers::MessageListCommandHandler, yaze::cli::handlers::MessageReadCommandHandler, yaze::cli::handlers::MessageSearchCommandHandler, yaze::cli::handlers::MusicListCommandHandler, yaze::cli::handlers::MusicInfoCommandHandler, yaze::cli::handlers::MusicTracksCommandHandler, yaze::cli::handlers::OverworldFindTileCommandHandler, yaze::cli::handlers::OverworldDescribeMapCommandHandler, yaze::cli::handlers::OverworldListWarpsCommandHandler, yaze::cli::handlers::OverworldListSpritesCommandHandler, yaze::cli::handlers::OverworldGetEntranceCommandHandler, yaze::cli::handlers::OverworldTileStatsCommandHandler, yaze::cli::handlers::HexReadCommandHandler, yaze::cli::handlers::HexWriteCommandHandler, yaze::cli::handlers::HexSearchCommandHandler, yaze::cli::handlers::PaletteGetColorsCommandHandler, yaze::cli::handlers::PaletteSetColorCommandHandler, yaze::cli::handlers::PaletteAnalyzeCommandHandler, yaze::cli::handlers::SpriteListCommandHandler, yaze::cli::handlers::SpritePropertiesCommandHandler, yaze::cli::handlers::SpritePaletteCommandHandler, yaze::cli::handlers::ProjectInitCommandHandler, yaze::cli::handlers::ProjectBuildCommandHandler, yaze::cli::handlers::RomInfoCommandHandler, yaze::cli::handlers::RomValidateCommandHandler, yaze::cli::handlers::RomDiffCommandHandler, yaze::cli::handlers::RomGenerateGoldenCommandHandler, yaze::cli::handlers::EmulatorStepCommandHandler, yaze::cli::handlers::EmulatorRunCommandHandler, yaze::cli::handlers::EmulatorPauseCommandHandler, yaze::cli::handlers::EmulatorResetCommandHandler, yaze::cli::handlers::EmulatorGetStateCommandHandler, yaze::cli::handlers::EmulatorSetBreakpointCommandHandler, yaze::cli::handlers::EmulatorClearBreakpointCommandHandler, yaze::cli::handlers::EmulatorListBreakpointsCommandHandler, yaze::cli::handlers::EmulatorReadMemoryCommandHandler, yaze::cli::handlers::EmulatorWriteMemoryCommandHandler, yaze::cli::handlers::EmulatorGetRegistersCommandHandler, yaze::cli::handlers::EmulatorGetMetricsCommandHandler, yaze::cli::handlers::EmulatorPressButtonsCommandHandler, yaze::cli::handlers::EmulatorReleaseButtonsCommandHandler, yaze::cli::handlers::EmulatorHoldButtonsCommandHandler, yaze::cli::handlers::GuiPlaceTileCommandHandler, yaze::cli::handlers::GuiClickCommandHandler, yaze::cli::handlers::GuiDiscoverToolCommandHandler, yaze::cli::handlers::GuiScreenshotCommandHandler, yaze::cli::handlers::ResourceListCommandHandler, and yaze::cli::handlers::ResourceSearchCommandHandler.

Referenced by Run().

◆ Execute()

virtual absl::Status yaze::cli::resources::CommandHandler::Execute ( Rom rom,
const ArgumentParser parser,
OutputFormatter formatter 
)
protectedpure virtual

Execute the command business logic.

Override this to implement command-specific functionality. The ROM is guaranteed to be loaded and labels initialized.

Implemented in yaze::cli::handlers::SimpleChatCommandHandler, yaze::cli::handlers::DialogueListCommandHandler, yaze::cli::handlers::DialogueReadCommandHandler, yaze::cli::handlers::DialogueSearchCommandHandler, yaze::cli::handlers::DungeonListSpritesCommandHandler, yaze::cli::handlers::DungeonDescribeRoomCommandHandler, yaze::cli::handlers::DungeonExportRoomCommandHandler, yaze::cli::handlers::DungeonListObjectsCommandHandler, yaze::cli::handlers::DungeonGetRoomTilesCommandHandler, yaze::cli::handlers::DungeonSetRoomPropertyCommandHandler, yaze::cli::handlers::MessageListCommandHandler, yaze::cli::handlers::MessageReadCommandHandler, yaze::cli::handlers::MessageSearchCommandHandler, yaze::cli::handlers::MusicListCommandHandler, yaze::cli::handlers::MusicInfoCommandHandler, yaze::cli::handlers::MusicTracksCommandHandler, yaze::cli::handlers::OverworldFindTileCommandHandler, yaze::cli::handlers::OverworldDescribeMapCommandHandler, yaze::cli::handlers::OverworldListWarpsCommandHandler, yaze::cli::handlers::OverworldListSpritesCommandHandler, yaze::cli::handlers::OverworldGetEntranceCommandHandler, yaze::cli::handlers::OverworldTileStatsCommandHandler, yaze::cli::handlers::HexReadCommandHandler, yaze::cli::handlers::HexWriteCommandHandler, yaze::cli::handlers::HexSearchCommandHandler, yaze::cli::handlers::PaletteGetColorsCommandHandler, yaze::cli::handlers::PaletteSetColorCommandHandler, yaze::cli::handlers::PaletteAnalyzeCommandHandler, yaze::cli::handlers::SpriteListCommandHandler, yaze::cli::handlers::SpritePropertiesCommandHandler, yaze::cli::handlers::SpritePaletteCommandHandler, yaze::cli::handlers::ProjectInitCommandHandler, yaze::cli::handlers::ProjectBuildCommandHandler, yaze::cli::handlers::RomInfoCommandHandler, yaze::cli::handlers::RomValidateCommandHandler, yaze::cli::handlers::RomDiffCommandHandler, yaze::cli::handlers::RomGenerateGoldenCommandHandler, yaze::cli::handlers::EmulatorStepCommandHandler, yaze::cli::handlers::EmulatorRunCommandHandler, yaze::cli::handlers::EmulatorPauseCommandHandler, yaze::cli::handlers::EmulatorResetCommandHandler, yaze::cli::handlers::EmulatorGetStateCommandHandler, yaze::cli::handlers::EmulatorSetBreakpointCommandHandler, yaze::cli::handlers::EmulatorClearBreakpointCommandHandler, yaze::cli::handlers::EmulatorListBreakpointsCommandHandler, yaze::cli::handlers::EmulatorReadMemoryCommandHandler, yaze::cli::handlers::EmulatorWriteMemoryCommandHandler, yaze::cli::handlers::EmulatorGetRegistersCommandHandler, yaze::cli::handlers::EmulatorGetMetricsCommandHandler, yaze::cli::handlers::EmulatorPressButtonsCommandHandler, yaze::cli::handlers::EmulatorReleaseButtonsCommandHandler, yaze::cli::handlers::EmulatorHoldButtonsCommandHandler, yaze::cli::handlers::GuiPlaceTileCommandHandler, yaze::cli::handlers::GuiClickCommandHandler, yaze::cli::handlers::GuiDiscoverToolCommandHandler, yaze::cli::handlers::GuiScreenshotCommandHandler, yaze::cli::handlers::ResourceListCommandHandler, and yaze::cli::handlers::ResourceSearchCommandHandler.

Referenced by Run().

◆ GetUsage()

virtual std::string yaze::cli::resources::CommandHandler::GetUsage ( ) const
protectedpure virtual

Get the command usage string.

Implemented in yaze::cli::handlers::DialogueListCommandHandler, yaze::cli::handlers::DialogueReadCommandHandler, yaze::cli::handlers::DialogueSearchCommandHandler, yaze::cli::handlers::DungeonListSpritesCommandHandler, yaze::cli::handlers::DungeonDescribeRoomCommandHandler, yaze::cli::handlers::DungeonExportRoomCommandHandler, yaze::cli::handlers::DungeonListObjectsCommandHandler, yaze::cli::handlers::DungeonGetRoomTilesCommandHandler, yaze::cli::handlers::DungeonSetRoomPropertyCommandHandler, yaze::cli::handlers::MessageListCommandHandler, yaze::cli::handlers::MessageReadCommandHandler, yaze::cli::handlers::MessageSearchCommandHandler, yaze::cli::handlers::MusicListCommandHandler, yaze::cli::handlers::MusicInfoCommandHandler, yaze::cli::handlers::MusicTracksCommandHandler, yaze::cli::handlers::OverworldFindTileCommandHandler, yaze::cli::handlers::OverworldDescribeMapCommandHandler, yaze::cli::handlers::OverworldListWarpsCommandHandler, yaze::cli::handlers::OverworldListSpritesCommandHandler, yaze::cli::handlers::OverworldGetEntranceCommandHandler, yaze::cli::handlers::OverworldTileStatsCommandHandler, yaze::cli::handlers::HexReadCommandHandler, yaze::cli::handlers::HexWriteCommandHandler, yaze::cli::handlers::HexSearchCommandHandler, yaze::cli::handlers::PaletteGetColorsCommandHandler, yaze::cli::handlers::PaletteSetColorCommandHandler, yaze::cli::handlers::PaletteAnalyzeCommandHandler, yaze::cli::handlers::SpriteListCommandHandler, yaze::cli::handlers::SpritePropertiesCommandHandler, yaze::cli::handlers::SpritePaletteCommandHandler, yaze::cli::handlers::ProjectInitCommandHandler, yaze::cli::handlers::ProjectBuildCommandHandler, yaze::cli::handlers::RomInfoCommandHandler, yaze::cli::handlers::RomValidateCommandHandler, yaze::cli::handlers::RomDiffCommandHandler, yaze::cli::handlers::RomGenerateGoldenCommandHandler, yaze::cli::handlers::EmulatorStepCommandHandler, yaze::cli::handlers::EmulatorRunCommandHandler, yaze::cli::handlers::EmulatorPauseCommandHandler, yaze::cli::handlers::EmulatorResetCommandHandler, yaze::cli::handlers::EmulatorGetStateCommandHandler, yaze::cli::handlers::EmulatorSetBreakpointCommandHandler, yaze::cli::handlers::EmulatorClearBreakpointCommandHandler, yaze::cli::handlers::EmulatorListBreakpointsCommandHandler, yaze::cli::handlers::EmulatorReadMemoryCommandHandler, yaze::cli::handlers::EmulatorWriteMemoryCommandHandler, yaze::cli::handlers::EmulatorGetRegistersCommandHandler, yaze::cli::handlers::EmulatorGetMetricsCommandHandler, yaze::cli::handlers::EmulatorPressButtonsCommandHandler, yaze::cli::handlers::EmulatorReleaseButtonsCommandHandler, yaze::cli::handlers::EmulatorHoldButtonsCommandHandler, yaze::cli::handlers::GuiPlaceTileCommandHandler, yaze::cli::handlers::GuiClickCommandHandler, yaze::cli::handlers::GuiDiscoverToolCommandHandler, yaze::cli::handlers::GuiScreenshotCommandHandler, yaze::cli::handlers::ResourceListCommandHandler, yaze::cli::handlers::ResourceSearchCommandHandler, and yaze::cli::handlers::SimpleChatCommandHandler.

Referenced by Describe(), and Run().

◆ RequiresLabels()

virtual bool yaze::cli::resources::CommandHandler::RequiresLabels ( ) const
inlineprotectedvirtual

Check if the command requires ROM labels.

Override to return false if labels are not needed.

Definition at line 113 of file command_handler.h.

Referenced by Run().

◆ GetDefaultFormat()

virtual std::string yaze::cli::resources::CommandHandler::GetDefaultFormat ( ) const
inlineprotectedvirtual

Get the default output format ("json" or "text")

Definition at line 118 of file command_handler.h.

Referenced by Run().

◆ GetOutputTitle()

virtual std::string yaze::cli::resources::CommandHandler::GetOutputTitle ( ) const
inlineprotectedvirtual

Get the output title for formatting.

Definition at line 123 of file command_handler.h.

Referenced by Run().


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