blob: 5f2f7fb5d78f1e336fad1c4593abc4e5b78e24da [file] [log] [blame]
Brian Silvermanb691f5e2015-08-02 11:37:55 -07001#ifndef Y2015_ACTORS_STACK_ACTOR_H_
2#define Y2015_ACTORS_STACK_ACTOR_H_
Daniel Pettidfc90ba2015-02-17 21:42:15 -08003
4#include <stdint.h>
5
6#include <memory>
7
8#include "aos/common/actions/actions.h"
9#include "aos/common/actions/actor.h"
Brian Silvermanb691f5e2015-08-02 11:37:55 -070010#include "y2015/actors/stack_action.q.h"
11#include "y2015/actors/fridge_profile_lib.h"
Daniel Pettidfc90ba2015-02-17 21:42:15 -080012
13namespace frc971 {
14namespace actors {
15
Austin Schuh6e242ac2015-03-07 17:08:21 -080016class StackActor : public FridgeActorBase<StackActionQueueGroup> {
Daniel Pettidfc90ba2015-02-17 21:42:15 -080017 public:
18 explicit StackActor(StackActionQueueGroup *queues);
19
Austin Schuhdc171012015-02-22 21:36:55 -080020 bool RunAction(const StackParams &params) override;
Daniel Pettidfc90ba2015-02-17 21:42:15 -080021};
22
23typedef aos::common::actions::TypedAction<StackActionQueueGroup> StackAction;
24
25// Makes a new stackActor action.
Austin Schuhdc171012015-02-22 21:36:55 -080026::std::unique_ptr<StackAction> MakeStackAction(const StackParams &params);
Daniel Pettidfc90ba2015-02-17 21:42:15 -080027
28} // namespace actors
29} // namespace frc971
30
31#endif