34  for (
auto& d : drivers)
 
   35    if (d->iface == driver->iface && d->bus == driver->bus) found = d.get();
 
   37  drivers.push_back(std::move(driver));
 
 
   42  auto found = std::find(drivers.begin(), drivers.end(), driver);
 
   43  if (found == drivers.end()) 
return;
 
 
   53  while (drivers.size()) {
 
 
   63std::unique_ptr<AbstractCommDriver> kNoDriver(
nullptr);
 
   65DriverPtr& 
FindDriver(
const std::vector<DriverPtr>& drivers,
 
   66                      const std::string& iface, 
const NavAddr::Bus _bus) {
 
   67  if (_bus != NavAddr::Bus::Undef) {
 
   68    for (
const DriverPtr& d : drivers) {
 
   69      if (d->iface == iface && d->bus == _bus) {
 
   70        return const_cast<DriverPtr&
>(d);
 
   75    for (
auto&& d : drivers)
 
   76      if (d->iface == iface) 
return const_cast<DriverPtr&
>(d);
 
 
Common interface for all drivers.
The global driver registry, a singleton.
void Deactivate(DriverPtr &driver)
Remove driver from list of active drivers.
void Activate(DriverPtr driver)
Add driver to list of active drivers.
const std::vector< DriverPtr > & GetDrivers() const
EventVar evt_driverlist_change
Notified by all driverlist updates.
void CloseAllDrivers()
Close and destroy all drivers completely.
void Notify() override
Notify all listeners, no data supplied.
Communication driver layer.
DriverPtr & FindDriver(const std::vector< DriverPtr > &drivers, const std::string &iface, const NavAddr::Bus _bus)
Search list of drivers for a driver with given interface string.
Driver registration container, a singleton.