public MJpegServer(ILog log, MJpegServerSettings settings) { _log = log; _settings = settings; if (settings.SourceSettings.GetFormat() != ImageFormat.Jpeg) { throw new InvalidDataException("Expected input image format is jpeg!"); } _serverSource = ServerSourceFactory.Create(_log, settings.SourceSettings); var sourcei = _serverSource.GetSource(); try { _cache = sourcei.PrepareSourceServerCache(); _serverSource.SetCache(_cache); } finally { _serverSource.DisposeClient(sourcei); } _server = new WebServer(log, _settings.Uri); _server.IncomingRequest += HandleRequest; _server.Start(); }
void IDisposable.Dispose() { if (_server != null) { ((IDisposable)_server).Dispose(); _server = null; } if (_serverSource != null) { _serverSource.DisposeServer(); _serverSource = null; } if (_cache != null) { _cache.Dispose(); _cache = null; } }