| 179 | } |
| 180 | |
| 181 | bool ChannelManager::removeDriver(fl::shared_ptr<IChannelDriver> driver) { |
| 182 | if (!driver) { |
| 183 | FL_WARN("ChannelManager::removeDriver() - Null driver provided"); |
| 184 | return false; |
| 185 | } |
| 186 | |
| 187 | // Find and remove the driver from the list |
| 188 | for (size_t i = 0; i < mDrivers.size(); ++i) { |
| 189 | if (mDrivers[i].driver == driver) { |
| 190 | FL_DBG("ChannelManager: Removing driver '" << mDrivers[i].name << "'"); |
| 191 | |
| 192 | mDrivers[i].driver->setPollNeededCallback(IChannelDriver::PollNeededCallback()); |
| 193 | |
| 194 | // Remove using vector::erase (preserves sort order) |
| 195 | mDrivers.erase(mDrivers.begin() + i); |
| 196 | return true; // Engine found and removed |
| 197 | } |
| 198 | } |
| 199 | |
| 200 | // Engine not found |
| 201 | FL_WARN("ChannelManager::removeDriver() - Engine " << driver.get() << " not found in registry"); |
| 202 | return false; |
| 203 | } |
| 204 | |
| 205 | void ChannelManager::clearAllDrivers() { |
| 206 | FL_DBG("ChannelManager: Waiting for all drivers to become READY before clearing"); |
no test coverage detected