1#ifndef YAZE_SRC_CLI_HANDLERS_EMULATOR_COMMANDS_H_
2#define YAZE_SRC_CLI_HANDLERS_EMULATOR_COMMANDS_H_
12 std::string
GetName()
const {
return "emulator-step"; }
14 return "Step emulator execution by one instruction";
17 return "emulator-step [--count <count>] [--format <json|text>]";
21 return absl::OkStatus();
30 std::string
GetName()
const {
return "emulator-run"; }
32 return "Run emulator execution";
35 return "emulator-run [--until <breakpoint>] [--format <json|text>]";
39 return absl::OkStatus();
48 std::string
GetName()
const {
return "emulator-pause"; }
50 return "Pause emulator execution";
53 return "emulator-pause [--format <json|text>]";
57 return absl::OkStatus();
66 std::string
GetName()
const {
return "emulator-reset"; }
68 return "Reset emulator to initial state";
71 return "emulator-reset [--format <json|text>]";
75 return absl::OkStatus();
84 std::string
GetName()
const {
return "emulator-get-state"; }
86 return "Get current emulator state";
89 return "emulator-get-state [--format <json|text>]";
93 return absl::OkStatus();
102 std::string
GetName()
const {
return "emulator-set-breakpoint"; }
104 return "Set a breakpoint at specified address";
107 return "emulator-set-breakpoint --address <address> [--condition <condition>] [--format <json|text>]";
120 std::string
GetName()
const {
return "emulator-clear-breakpoint"; }
122 return "Clear a breakpoint at specified address";
125 return "emulator-clear-breakpoint --address <address> [--format <json|text>]";
138 std::string
GetName()
const {
return "emulator-list-breakpoints"; }
140 return "List all active breakpoints";
143 return "emulator-list-breakpoints [--format <json|text>]";
147 return absl::OkStatus();
156 std::string
GetName()
const {
return "emulator-read-memory"; }
158 return "Read memory from emulator";
161 return "emulator-read-memory --address <address> [--length <length>] [--format <json|text>]";
174 std::string
GetName()
const {
return "emulator-write-memory"; }
176 return "Write memory to emulator";
179 return "emulator-write-memory --address <address> --data <data> [--format <json|text>]";
192 std::string
GetName()
const {
return "emulator-get-registers"; }
194 return "Get emulator register values";
197 return "emulator-get-registers [--format <json|text>]";
201 return absl::OkStatus();
210 std::string
GetName()
const {
return "emulator-get-metrics"; }
212 return "Get emulator performance metrics";
215 return "emulator-get-metrics [--format <json|text>]";
219 return absl::OkStatus();
228 std::string
GetName()
const {
return "emulator-press-buttons"; }
230 return "Press and release emulator buttons";
233 return "emulator-press-buttons --buttons <button1>,<button2>,...";
245 std::string
GetName()
const {
return "emulator-release-buttons"; }
247 return "Release currently held emulator buttons";
250 return "emulator-release-buttons --buttons <button1>,<button2>,...";
262 std::string
GetName()
const {
return "emulator-hold-buttons"; }
264 return "Hold emulator buttons for a specified duration";
267 return "emulator-hold-buttons --buttons <button1>,<button2>,... --duration "
272 return parser.
RequireArgs({
"buttons",
"duration"});
The Rom class is used to load, save, and modify Rom data.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
std::string GetDescription() const
std::string GetUsage() const
Get the command usage string.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetName() const
Get the command name.
std::string GetName() const
Get the command name.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
std::string GetUsage() const
Get the command usage string.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetDescription() const
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
std::string GetName() const
Get the command name.
std::string GetDescription() const
std::string GetUsage() const
Get the command usage string.
std::string GetDescription() const
std::string GetName() const
Get the command name.
std::string GetUsage() const
Get the command usage string.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
std::string GetName() const
Get the command name.
std::string GetUsage() const
Get the command usage string.
std::string GetDescription() const
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetUsage() const
Get the command usage string.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
std::string GetName() const
Get the command name.
std::string GetDescription() const
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetDescription() const
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
std::string GetUsage() const
Get the command usage string.
std::string GetName() const
Get the command name.
std::string GetName() const
Get the command name.
std::string GetUsage() const
Get the command usage string.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetDescription() const
std::string GetDescription() const
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
std::string GetName() const
Get the command name.
std::string GetUsage() const
Get the command usage string.
std::string GetName() const
Get the command name.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetDescription() const
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
std::string GetUsage() const
Get the command usage string.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetName() const
Get the command name.
std::string GetUsage() const
Get the command usage string.
std::string GetDescription() const
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
std::string GetName() const
Get the command name.
std::string GetDescription() const
std::string GetUsage() const
Get the command usage string.
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.
Main namespace for the application.