/// <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;
                    }
                }
            }
        }
Example #3
0
        /// <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++;
                }
            }
        }
Example #4
0
        /// <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);
                }
            }
        }