blob: 369c6edccc79ccf787e1701387a03190838d02ad [file] [log] [blame]
Brian Silvermanb691f5e2015-08-02 11:37:55 -07001#ifndef Y2015_ACTIONS_DRIVETRAIN_ACTION_H_
2#define Y2015_ACTIONS_DRIVETRAIN_ACTION_H_
Ben Fredricksond69f38b2015-01-28 20:06:15 -08003
4#include <memory>
5
Brian Silvermanb691f5e2015-08-02 11:37:55 -07006#include "y2015/actors/drivetrain_action.q.h"
Ben Fredricksond69f38b2015-01-28 20:06:15 -08007#include "aos/common/actions/actor.h"
8#include "aos/common/actions/actions.h"
9
10namespace frc971 {
Daniel Petti3b1e48f2015-02-15 15:57:53 -080011namespace actors {
Ben Fredricksond69f38b2015-01-28 20:06:15 -080012
13class DrivetrainActor
14 : public aos::common::actions::ActorBase<DrivetrainActionQueueGroup> {
15 public:
16 explicit DrivetrainActor(DrivetrainActionQueueGroup* s);
17
Ben Fredrickson9fb2ab12015-02-16 16:42:08 -080018 bool RunAction(const actors::DrivetrainActionParams &params) override;
Ben Fredricksond69f38b2015-01-28 20:06:15 -080019};
20
Ben Fredrickson9fb2ab12015-02-16 16:42:08 -080021typedef aos::common::actions::TypedAction<DrivetrainActionQueueGroup>
22 DrivetrainAction;
23
Ben Fredricksond69f38b2015-01-28 20:06:15 -080024// Makes a new DrivetrainActor action.
Ben Fredrickson9fb2ab12015-02-16 16:42:08 -080025::std::unique_ptr<DrivetrainAction> MakeDrivetrainAction(
26 const ::frc971::actors::DrivetrainActionParams& params);
Ben Fredricksond69f38b2015-01-28 20:06:15 -080027
Daniel Petti3b1e48f2015-02-15 15:57:53 -080028} // namespace actors
Ben Fredricksond69f38b2015-01-28 20:06:15 -080029} // namespace frc971
30
31#endif