25#include <unordered_map>
27#include "modules/planning/planning_interface_base/scenario_base/proto/scenario_pipeline.pb.h"
50class DependencyInjector;
58 virtual bool Init(std::shared_ptr<DependencyInjector> injector,
59 const std::string& name);
106 template <
typename T>
123 return apollo::cyber::common::LoadConfig<T>(
config_path_, config);
Frame holds all data for one planning cycle.
const ScenarioStatusType & GetScenarioStatus() const
Get the scenario status.
const std::string & GetMsg() const
std::shared_ptr< Stage > current_stage_
virtual ScenarioResult Process(const common::TrajectoryPoint &planning_init_point, Frame *frame)
virtual bool Init(std::shared_ptr< DependencyInjector > injector, const std::string &name)
const std::string GetStage() const
virtual ScenarioContext * GetContext()=0
Get the scenario context.
void Reset()
Reset the scenario, used before entering the scenario.
virtual bool IsTransferable(const Scenario *other_scenario, const Frame &frame)
Each scenario should define its own transfer condition, i.e., when it should allow to transfer from o...
virtual bool Enter(Frame *frame)
const ScenarioStatusType & GetStatus() const
virtual ~Scenario()=default
std::unordered_map< std::string, const StagePipeline * > stage_pipeline_map_
std::shared_ptr< Stage > CreateStage(const StagePipeline &stage_pipeline)
Each scenario should define its own stages object's creation scenario will call stage's Stage::Proces...
virtual bool Exit(Frame *frame)
bool LoadConfig(T *config)
ScenarioResult scenario_result_
std::shared_ptr< DependencyInjector > injector_
ScenarioPipeline scenario_pipeline_config_
const std::string & Name() const
Planning module main class.