/// <summary> /// Initializes the LiveVideoControl web service. This is only called once, when the service is /// instantiated. /// </summary> /// <param name="train2groundClient">The T2G client to use local data store.</param> /// <param name="sessionManager">Manager for session.</param> /// <param name="requestProcessor">The request processor instance.</param> /// <param name="configuration">The configuration accessor instance.</param> public static void Initialize( IT2GManager train2groundManager, ISessionManagerExtended sessionManager, INotificationSender notificationSender, IRequestProcessor requestProcessor, ILiveVideoControlConfiguration configuration) { try { if (train2groundManager != null) { _t2gManager = train2groundManager; // Register a callback that will start streaming on new trains _t2gManager.SubscribeToElementChangeNotification( SubscriberId, new EventHandler <ElementEventArgs>(OnElementInfoChanged)); } if (sessionManager != null) { _sessionManager = sessionManager; } if (notificationSender != null) { _notificationSender = notificationSender; } if (requestProcessor != null) { _requestProcessor = requestProcessor; _requestProcessor.SetT2GManager(_t2gManager, ConfigurationSettings.AppSettings["ApplicationId"]); _requestProcessor.SetSessionMgr(_sessionManager); _requestProcessor.SetNotificationSender(_notificationSender); } if (configuration != null) { LoadConfiguration(configuration); } _initialized = true; } catch (System.Exception e) { LogManager.WriteLog(TraceType.ERROR, e.Message, "PIS.Ground.Maintenance.MaintenanceService.Initialize", e, EventIdEnum.LiveVideoControl); } }
/// <summary> /// Initializes the LiveVideoControl web service. This is only called once, when the service is /// instantiated. /// </summary> public static void Initialize() { if (!_initialized) { lock (_initializationLock) { if (!_initialized) { try { _sessionManager = new SessionManager(); _notificationSender = new NotificationSender(_sessionManager); _t2gManager = T2GManagerContainer.T2GManager; LiveVideoControlConfiguration.InitializeConfiguration(); // Register a callback that will start streaming on new trains _t2gManager.SubscribeToElementChangeNotification( SubscriberId, new EventHandler <ElementEventArgs>(OnElementInfoChanged)); _requestProcessor = new RequestProcessor(); _requestProcessor.SetT2GManager(_t2gManager, ConfigurationSettings.AppSettings["ApplicationId"]); _requestProcessor.SetSessionMgr(_sessionManager); _requestProcessor.SetNotificationSender(_notificationSender); LoadConfiguration(new LiveVideoControlConfiguration()); } catch (System.Exception e) { LogManager.WriteLog(TraceType.ERROR, e.Message, "PIS.Ground.Maintenance.MaintenanceService.Initialize", e, EventIdEnum.LiveVideoControl); } _initialized = true; } } } }
/// <summary>Initializes this object.</summary> private void Initialize() { lock (_initializationLock) { if (_initializationCount == 0) { try { _instanceCreator = this; _sessionManager = new SessionManager(); _notificationSender = new NotificationSender(_sessionManager); _t2gManager = T2GManagerContainer.T2GManager; _remoteDataStoreFactory = new RemoteDataStoreFactory(); _rtpisDataStore = new RTPISDataStore(); _requestProcessor = new RequestProcessor( _t2gManager, _rtpisDataStore); _initializationCount = 1; } catch (System.Exception e) { Uninitialize(true); LogManager.WriteLog(TraceType.ERROR, e.Message, "PIS.Ground.RealTime.RealTimeService.Initialize", e, EventIdEnum.RealTime); } } else { _initializationCount++; } } }
/// <summary>Initializes this object.</summary> /// <param name="instance">The instance that create this object</param> /// <param name="t2gManager">The manager to interact with T2G application.</param> /// <param name="sessionManager">Manager for session.</param> /// <param name="notificationSender">The object to use to send notifications.</param> /// <param name="requestProcessor">The request processor instance.</param> /// <param name="remoteDataStoreFactory">The remote data store factory.</param> /// <param name="rtpisDataStore">The rtpis data store.</param> private static void Initialize( RealTimeService instance, IT2GManager t2gManager, ISessionManagerExtended sessionManager, INotificationSender notificationSender, IRequestProcessor requestProcessor, IRemoteDataStoreFactory remoteDataStoreFactory, IRTPISDataStore rtpisDataStore) { if (instance == null) { throw new ArgumentNullException("instance"); } if (t2gManager == null) { throw new ArgumentNullException("t2gManager"); } if (sessionManager == null) { throw new ArgumentNullException("sessionManager"); } if (notificationSender == null) { throw new ArgumentNullException("notificationSender"); } if (requestProcessor == null) { throw new ArgumentNullException("requestProcessor"); } if (remoteDataStoreFactory == null) { throw new ArgumentNullException("remoteDataStoreFactory"); } if (rtpisDataStore == null) { throw new ArgumentNullException("rtpisDataStore"); } lock (_initializationLock) { try { if (_initializationCount != 0) { Uninitialize(true); } RealTimeService._instanceCreator = instance; RealTimeService._t2gManager = t2gManager; RealTimeService._sessionManager = sessionManager; RealTimeService._notificationSender = notificationSender; RealTimeService._remoteDataStoreFactory = remoteDataStoreFactory; RealTimeService._rtpisDataStore = rtpisDataStore; RealTimeService._requestProcessor = requestProcessor; _initializationCount++; } catch (System.Exception e) { Uninitialize(true); LogManager.WriteLog(TraceType.ERROR, e.Message, "PIS.Ground.RealTime.RealTimeService.Initialize", e, EventIdEnum.RealTime); } } }