ASCO Aerial Autonomy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
robot_system_container.h
Go to the documentation of this file.
1 #pragma once
2 
9 template <class RobotSystemT> class RobotSystemContainer {
10  // Add friend classes that can use the robot system
11  template <class RobotSystemT1, class LogicStateMachineT>
12  friend class InternalActionFunctor;
13 
14  template <class EventT, class RobotSystemT1, class LogicStateMachineT>
15  friend class ActionFunctor;
16 
17  template <class EventT, class RobotSystemT1, class LogicStateMachineT>
18  friend class GuardFunctor;
19 
20  template <class RobotSystemT1, class LogicStateMachineT>
22 
23  template <class RobotSystemT1, class LogicStateMachineT>
25 
26 protected:
30  RobotSystemT &robot_system_;
31 
37  RobotSystemT &operator()() { return robot_system_; }
38 
39 public:
45  RobotSystemContainer(RobotSystemT &robot_system)
46  : robot_system_(robot_system) {}
47 };
RobotSystemT & operator()()
Convenience function to return robot system.
Definition: robot_system_container.h:37
Internal action that returns whether it processed an event.
Definition: base_functors.h:208
Action functor that does not require the event triggering it.
Definition: base_functors.h:113
Action Functor for a given event, robot system, state machine.
Definition: base_functors.h:68
Action Functor for a given event, robot system, state machine.
Definition: base_functors.h:20
RobotSystemT & robot_system_
robot system i.e stored.
Definition: robot_system_container.h:30
Container class that stores robot system and provides it to only selected friend classes.
Definition: robot_system_container.h:9
RobotSystemContainer(RobotSystemT &robot_system)
Constructor to store robot system.
Definition: robot_system_container.h:45
Guard functor that does not require the event triggering it.
Definition: base_functors.h:157