public void UnpublishCamera(string cameraId, ICollection <PublishDestination> destinations) { lock (_accessLock) { if (destinations == null) { throw new ArgumentNullException("destinations"); } PublishedCamera camera = GetPublishedCamera(cameraId); if (camera != null) { foreach (var dest in destinations) { camera.RemoveDestination(dest); DateTime aliveTime; _timeToAlive.TryRemove( new CameraPublishDestination(cameraId, dest), out aliveTime); } if (camera.Destinations.Count <= 0) { camera.CameraErrorOccurred -= new EventHandler <CameraErrorOccurredEventArgs>(OnCameraErrorOccurred); camera.Stop(); _cameras.Remove(camera); camera.Dispose(); } } } }
public void UnpublishCamera(string cameraId) { lock (_accessLock) { PublishedCamera camera = GetPublishedCamera(cameraId); if (camera != null) { foreach (var dest in camera.Destinations) { DateTime aliveTime; _timeToAlive.TryRemove( new CameraPublishDestination(cameraId, dest), out aliveTime); } camera.ClearDestination(); camera.CameraErrorOccurred -= new EventHandler <CameraErrorOccurredEventArgs>(OnCameraErrorOccurred); camera.Stop(); _cameras.Remove(camera); camera.Dispose(); } } }