protected override void ConfigureContainer() { base.ConfigureContainer(); // Register the IUnityContainer so that we can access services from the // HTTP server's module handlers. ServiceRegistry.RegisterContainer(Container); var serializer = new ConfigurationFileSerializer(); var config = serializer.Read(); var sourceMgr = new FacialDetectionSourceManager(config); var sessionMgr = new RtspSessionManager(); var rtspHandler = new RtspRequestHandler(sourceMgr, sessionMgr); var dispatcher = new DefaultRequestDispatcher(); dispatcher.RegisterHandler("/stream", rtspHandler); var rtspServer = new RtspServer(config.RtspPort, dispatcher); var httpServer = new HttpServer(config.HttpPort); Container.RegisterInstance(config); Container.RegisterInstance(sessionMgr); Container.RegisterInstance(rtspServer); Container.RegisterInstance(httpServer); Container.RegisterInstance <IDetectionSourceManager>(sourceMgr); Container.RegisterType <IDataSourcesManager, DataSourcesManager>(new ContainerControlledLifetimeManager()); Container.RegisterInstance <ISerenityService>(new SerenityService(), new ContainerControlledLifetimeManager()); }
public bool TryAddRequestHandler(RtspMethod method, RtspRequestHandler handler) { Exception any; if (false == Common.Collections.DictionaryExtensions.TryAdd(m_RequestHandlers, method, handler, out any)) { try { Media.Common.Extensions.Exception.ExceptionExtensions.RaiseTaggedException(this, "Custom Handler already registered", any); } catch (Exception ex) { if (Logger != null) Logger.LogException(ex); } return false; } return true; }