Files
allwpilib/wpilibNewCommands/src/main/native/cpp/frc2/command/ProxyScheduleCommand.cpp
Peter Johnson 64f5413253 Use wpi::span instead of wpi::ArrayRef across all libraries (#3414)
- Remove ArrayRef.h
- Add SpanExtras.h for a couple of convenience functions
2021-06-06 19:51:14 -07:00

42 lines
993 B
C++

// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
#include "frc2/command/ProxyScheduleCommand.h"
using namespace frc2;
ProxyScheduleCommand::ProxyScheduleCommand(
wpi::span<Command* const> toSchedule) {
SetInsert(m_toSchedule, toSchedule);
}
ProxyScheduleCommand::ProxyScheduleCommand(Command* toSchedule) {
SetInsert(m_toSchedule, {&toSchedule, 1});
}
void ProxyScheduleCommand::Initialize() {
for (auto* command : m_toSchedule) {
command->Schedule();
}
}
void ProxyScheduleCommand::End(bool interrupted) {
if (interrupted) {
for (auto* command : m_toSchedule) {
command->Cancel();
}
}
}
void ProxyScheduleCommand::Execute() {
m_finished = true;
for (auto* command : m_toSchedule) {
m_finished &= !command->IsScheduled();
}
}
bool ProxyScheduleCommand::IsFinished() {
return m_finished;
}