/******************************************************************************** * Copyright (c) 2025-2026 ZF Friedrichshafen AG * * This program and the accompanying materials are made available under the * terms of the Apache License Version 2.0 which is available at * https://www.apache.org/licenses/LICENSE-2.0 * * SPDX-License-Identifier: Apache-2.0 * * Contributors: * Denisa Ros - initial API and implementation ********************************************************************************/ #if defined(__unix__) #include "watchdog.h" void CUnixTunnelConnectionWatchDog::AddConnectionImpl(const std::shared_ptr& connection) { std::lock_guard lock(m_Mutex); m_Connections[connection.get()] = connection; } void CUnixTunnelConnectionWatchDog::RemoveConnection(const void* connection) { if (!connection) { return; } std::shared_ptr removed; { std::lock_guard lock(m_Mutex); auto it = m_Connections.find(connection); if (it == m_Connections.end()) { return; } removed = std::move(it->second); m_Connections.erase(it); } removed.reset(); } void CUnixTunnelConnectionWatchDog::Clear() { std::map> localConnections; { std::lock_guard lock(m_Mutex); localConnections.swap(m_Connections); } localConnections.clear(); } #endif // defined(__unix__)