blob: fd9b387807dc8afc6c1ebda086b30c5fdd0cdcd8 [file] [log] [blame]
Brian Silverman26e4e522015-12-17 01:56:40 -05001/*----------------------------------------------------------------------------*/
Brian Silverman1a675112016-02-20 20:42:49 -05002/* Copyright (c) FIRST 2011-2016. All Rights Reserved. */
Brian Silverman26e4e522015-12-17 01:56:40 -05003/* Open Source Software - may be modified and shared by FRC teams. The code */
Brian Silverman1a675112016-02-20 20:42:49 -05004/* must be accompanied by the FIRST BSD license file in the root directory of */
5/* the project. */
Brian Silverman26e4e522015-12-17 01:56:40 -05006/*----------------------------------------------------------------------------*/
7
8#ifndef __COMMAND_GROUP_ENTRY_H__
9#define __COMMAND_GROUP_ENTRY_H__
10
11class Command;
12
13class CommandGroupEntry {
14 public:
15 typedef enum {
16 kSequence_InSequence,
17 kSequence_BranchPeer,
18 kSequence_BranchChild
19 } Sequence;
20
21 CommandGroupEntry() = default;
22 CommandGroupEntry(Command *command, Sequence state, double timeout = -1.0);
23 bool IsTimedOut() const;
24
25 double m_timeout = -1.0;
26 Command *m_command = nullptr;
27 Sequence m_state = kSequence_InSequence;
28};
29
30#endif