![]() |
WPILibC++ 2025.3.1
|
Schedules a given command when this command is initialized and ends when it ends, but does not directly run it. More...
#include <frc2/command/ProxyCommand.h>
Public Member Functions | |
WPI_IGNORE_DEPRECATED | ProxyCommand (wpi::unique_function< Command *()> supplier) |
Creates a new ProxyCommand that schedules the supplied command when initialized, and ends when it is no longer scheduled. | |
ProxyCommand (wpi::unique_function< CommandPtr()> supplier) | |
Creates a new ProxyCommand that schedules the supplied command when initialized, and ends when it is no longer scheduled. | |
WPI_UNIGNORE_DEPRECATED | ProxyCommand (Command *command) |
Creates a new ProxyCommand that schedules the given command when initialized, and ends when it is no longer scheduled. | |
ProxyCommand (std::unique_ptr< Command > command) | |
Creates a new ProxyCommand that schedules the given command when initialized, and ends when it is no longer scheduled. | |
ProxyCommand (ProxyCommand &&other)=default | |
void | Initialize () override |
void | End (bool interrupted) override |
bool | IsFinished () override |
void | InitSendable (wpi::SendableBuilder &builder) override |
![]() | |
CommandHelper ()=default | |
CommandPtr | ToPtr () &&override |
Schedules a given command when this command is initialized and ends when it ends, but does not directly run it.
Use this for including a command in a composition without adding its requirements, but only if you know what you are doing. If you are unsure, see the WPILib docs for a complete explanation of proxy semantics. Do not proxy a command from a subsystem already required by the composition, or else the composition will cancel itself when the proxy is reached. If this command is interrupted, it will cancel the command.
This class is provided by the NewCommands VendorDep
|
explicit |
Creates a new ProxyCommand that schedules the supplied command when initialized, and ends when it is no longer scheduled.
Use this for lazily creating proxied commands at runtime. Proxying should only be done to escape from composition requirement semantics, so if only initialization time command construction is needed, use DeferredCommand
instead.
supplier | the command supplier |
DeferredCommand
is confusing and opens potential footguns for users who do not fully understand the semantics and implications of proxying, but who simply want runtime construction. Users who do know what they are doing and need a supplier-constructed proxied command should instead defer a proxy command.
|
explicit |
Creates a new ProxyCommand that schedules the supplied command when initialized, and ends when it is no longer scheduled.
Use this for lazily creating proxied commands at runtime. Proxying should only be done to escape from composition requirement semantics, so if only initialization time command construction is needed, use DeferredCommand
instead.
supplier | the command supplier |
DeferredCommand
is confusing and opens potential footguns for users who do not fully understand the semantics and implications of proxying, but who simply want runtime construction. Users who do know what they are doing and need a supplier-constructed proxied command should instead defer a proxy command.
|
explicit |
Creates a new ProxyCommand that schedules the given command when initialized, and ends when it is no longer scheduled.
command | the command to run by proxy |
|
explicit |
Creates a new ProxyCommand that schedules the given command when initialized, and ends when it is no longer scheduled.
Note that this constructor passes ownership of the given command to the returned ProxyCommand.
command | the command to schedule |
|
default |
|
override |
|
override |
|
override |
|
override |