Apollo
11.0
自动驾驶开放平台
traffic_rule.cc
浏览该文件的文档.
1
/******************************************************************************
2
* Copyright 2017 The Apollo Authors. All Rights Reserved.
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*****************************************************************************/
16
21
#include "
modules/planning/planning_interface_base/traffic_rules_base/traffic_rule.h
"
22
23
#include "
cyber/class_loader/class_loader_manager.h
"
24
25
namespace
apollo
{
26
namespace
planning
{
27
28
using
apollo::common::Status
;
29
30
TrafficRule::TrafficRule
() : injector_(nullptr), config_path_(
""
), name_(
""
) {}
31
32
bool
TrafficRule::Init
(
const
std::string& name,
33
const
std::shared_ptr<DependencyInjector>& injector) {
34
injector_
= injector;
35
name_
= name;
36
37
// Get the name of this class.
38
int
status;
39
std::string class_name =
40
abi::__cxa_demangle(
typeid
(*this).name(), 0, 0, &status);
41
// Generate the traffic rule config path from PluginManager.
42
config_path_
=
apollo::cyber::plugin_manager::PluginManager::Instance
()
43
->
GetPluginConfPath
<
TrafficRule
>(
44
class_name,
"conf/default_conf.pb.txt"
);
45
return
true
;
46
}
47
48
}
// namespace planning
49
}
// namespace apollo
class_loader_manager.h
apollo::common::Status
A general class to denote the return status of an API call.
Definition
status.h:43
apollo::cyber::plugin_manager::PluginManager::GetPluginConfPath
std::string GetPluginConfPath(const std::string &class_name, const std::string &conf_name)
get plugin configuration file location
Definition
plugin_manager.h:192
apollo::cyber::plugin_manager::PluginManager::Instance
static PluginManager * Instance()
get singleton instance of PluginManager
Definition
plugin_manager.cc:203
apollo::planning::TrafficRule
Definition
traffic_rule.h:37
apollo::planning::TrafficRule::config_path_
std::string config_path_
Definition
traffic_rule.h:59
apollo::planning::TrafficRule::Init
virtual bool Init(const std::string &name, const std::shared_ptr< DependencyInjector > &injector)
Definition
traffic_rule.cc:32
apollo::planning::TrafficRule::injector_
std::shared_ptr< DependencyInjector > injector_
Definition
traffic_rule.h:57
apollo::planning::TrafficRule::name_
std::string name_
Definition
traffic_rule.h:60
apollo::planning::TrafficRule::TrafficRule
TrafficRule()
Definition
traffic_rule.cc:30
planning
Planning module main class.
apollo
class register implement
Definition
arena_queue.h:37
traffic_rule.h
modules
planning
planning_interface_base
traffic_rules_base
traffic_rule.cc