blob: 0927f38d10bc87751c17926d0ccc87c67d60f96d [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
Austin Schuh88af0852016-12-04 20:31:32 -080010namespace y2015 {
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(
Austin Schuh88af0852016-12-04 20:31:32 -080026 const ::y2015::actors::DrivetrainActionParams& params);
Ben Fredricksond69f38b2015-01-28 20:06:15 -080027
Daniel Petti3b1e48f2015-02-15 15:57:53 -080028} // namespace actors
Austin Schuh88af0852016-12-04 20:31:32 -080029} // namespace y2015
Ben Fredricksond69f38b2015-01-28 20:06:15 -080030
31#endif