blob: 2a9d244f7e933725c46a69e07bc8b2c3db052439 [file] [log] [blame]
Comran Morshede68e3732016-03-12 14:12:11 +00001#ifndef Y2016_ACTORS_AUTONOMOUS_ACTOR_H_
2#define Y2016_ACTORS_AUTONOMOUS_ACTOR_H_
3
4#include <memory>
5
6#include "aos/common/actions/actor.h"
7#include "aos/common/actions/actions.h"
8#include "y2016/actors/autonomous_action.q.h"
9
10namespace y2016 {
11namespace actors {
12
13class AutonomousActor
14 : public ::aos::common::actions::ActorBase<AutonomousActionQueueGroup> {
15 public:
16 explicit AutonomousActor(AutonomousActionQueueGroup *s);
17
18 bool RunAction(const actors::AutonomousActionParams &params) override;
19};
20
21using AutonomousAction =
22 ::aos::common::actions::TypedAction<AutonomousActionQueueGroup>;
23
24// Makes a new AutonomousActor action.
25::std::unique_ptr<AutonomousAction> MakeAutonomousAction(
26 const ::y2016::actors::AutonomousActionParams &params);
27
28} // namespace actors
29} // namespace y2016
30
31#endif // Y2016_ACTORS_AUTONOMOUS_ACTOR_H_