#ifndef BSP_Q7S_INITMISSION_H_
#define BSP_Q7S_INITMISSION_H_

#include <vector>

#include "fsfw/tasks/definitions.h"
#include "mission/pollingSeqTables.h"

using pst::AcsPstCfg;

class PeriodicTaskIF;
class TaskFactory;

namespace scheduling {
void initMission();
void initTasks();

void createPstTasks(TaskFactory& factory, TaskDeadlineMissedFunction missedDeadlineFunc,
                    std::vector<PeriodicTaskIF*>& taskVec, AcsPstCfg cfg);
void createPusTasks(TaskFactory& factory, TaskDeadlineMissedFunction missedDeadlineFunc,
                    std::vector<PeriodicTaskIF*>& taskVec);
void createTestTasks(TaskFactory& factory, TaskDeadlineMissedFunction missedDeadlineFunc,
                     std::vector<PeriodicTaskIF*>& taskVec);
};  // namespace scheduling

#endif /* BSP_Q7S_INITMISSION_H_ */