44 [](
const std::shared_ptr<::apollo::cyber::Node>& node,
51 const std::shared_ptr<::apollo::cyber::Node>& node,
55 AERROR <<
"Failed to create lidar with parameter: "
56 << parameter.DebugString();
std::unique_ptr< LidarDriver > CreateObject(const LidarParameter::LidarBrand &id, Args &&... args)
Creates and transfers membership of an object of type matching id.
bool Register(const LidarParameter::LidarBrand &id, LidarDriver * creator)
Registers the class given by the creator function, linking it to id.
LidarDriverFactory(const apollo::drivers::lidar::config &config)
void RegisterLidarClients()
Register the lidar driver of all brands.
std::unique_ptr< LidarDriver > CreateLidarDriver(const std::shared_ptr<::apollo::cyber::Node > &node, const apollo::drivers::lidar::config ¶meter)
Create a pointer to a specified brand of lidar.
The class which defines the lidar driver .
static VelodyneDriver * CreateDriver(const std::shared_ptr<::apollo::cyber::Node > &node, const Config &config)
Defines the LidarFactory class.
optional apollo::drivers::velodyne::Config velodyne
optional LidarParameter::LidarBrand brand