Beispiel #1
0
        protected void DoPoll(IPolledConfigurationSource source, IConfiguration config)
        {
            m_Log.Debug("Polling started");
            PollResult result;

            try
            {
                result       = source.Poll(false, GetNextCheckPoint(m_CheckPoint));
                m_CheckPoint = result.CheckPoint;
                RaisePollingCompletedEvent(new PollingEventArgs(PollingEventArgs.EventType.Success, result, null));
            }
            catch (Exception e)
            {
                m_Log.Error("Error getting result from polling source", e);
                RaisePollingCompletedEvent(new PollingEventArgs(PollingEventArgs.EventType.Failure, null, e));
                return;
            }
            try
            {
                PopulateProperties(result, config);
            }
            catch (Exception e)
            {
                m_Log.Error("Error occured applying properties", e);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Do an initial poll from the source and apply the result to the configuration.
        /// </summary>
        /// <param name="source">source of the configuration</param>
        /// <param name="config">Configuration to apply the polling result</param>
        protected void InitialLoad(IPolledConfigurationSource source, IConfiguration config)
        {
            PollResult result;

            try
            {
                result       = source.Poll(true, null);
                m_CheckPoint = result.CheckPoint;
                RaisePollingCompletedEvent(new PollingEventArgs(PollingEventArgs.EventType.Success, result, null));
            }
            catch (Exception e)
            {
                RaisePollingCompletedEvent(new PollingEventArgs(PollingEventArgs.EventType.Failure, null, e));
                m_Log.Error("Unable to load properties source from " + source, e);
                return;
            }
            try
            {
                PopulateProperties(result, config);
            }
            catch (Exception e)
            {
                m_Log.Error("Unable to applying properties.", e);
            }
        }
 /// <summary>
 /// Start polling the configuration source with the specified scheduler.
 /// </summary>
 /// <param name="source">PolledConfigurationSource to poll</param>
 /// <param name="scheduler">
 /// AbstractPollingScheduler whose <see cref="AbstractPollingScheduler.SchedulePollingAction"/> will be used to determine the polling schedule
 /// </param>
 public void StartPolling(IPolledConfigurationSource source, AbstractPollingScheduler scheduler)
 {
     lock (m_ObjectLock)
     {
         m_Scheduler = scheduler;
         m_Source = source;
         Init(source, scheduler);
         scheduler.StartPolling(source, this);
     }
 }
Beispiel #4
0
 /// <summary>
 /// Start polling the configuration source with the specified scheduler.
 /// </summary>
 /// <param name="source">PolledConfigurationSource to poll</param>
 /// <param name="scheduler">
 /// AbstractPollingScheduler whose <see cref="AbstractPollingScheduler.SchedulePollingAction"/> will be used to determine the polling schedule
 /// </param>
 public void StartPolling(IPolledConfigurationSource source, AbstractPollingScheduler scheduler)
 {
     lock (m_ObjectLock)
     {
         m_Scheduler = scheduler;
         m_Source    = source;
         Init(source, scheduler);
         scheduler.StartPolling(source, this);
     }
 }
Beispiel #5
0
 /// <summary>
 /// Schedule the polling action of the configuration source
 /// </summary>
 protected override void SchedulePollingAction(IPolledConfigurationSource source, IConfiguration config)
 {
     lock (m_ObjectLock)
     {
         if (m_Timer != null)
         {
             throw new InvalidOperationException("The polling thread is working now.");
         }
         m_Timer = new Timer(s => DoPoll(source, config), null, m_InitialDelayMillis, m_DelayMillis);
     }
 }
 /// <summary>
 /// Schedule the polling action of the configuration source
 /// </summary>
 protected override void SchedulePollingAction(IPolledConfigurationSource source, IConfiguration config)
 {
     lock (m_ObjectLock)
     {
         if (m_Timer != null)
         {
             throw new InvalidOperationException("The polling thread is working now.");
         }
         m_Timer = new Timer(s => DoPoll(source, config), null, m_InitialDelayMillis, m_DelayMillis);
     }
 }
 /// <summary>
 /// Do an initial poll from the source and apply the result to the configuration.
 /// </summary>
 /// <param name="source">source of the configuration</param>
 /// <param name="config">Configuration to apply the polling result</param>
 protected void InitialLoad(IPolledConfigurationSource source, IConfiguration config)
 {
     PollResult result;
     try
     {
         result = source.Poll(true, null);
         m_CheckPoint = result.CheckPoint;
         RaisePollingCompletedEvent(new PollingEventArgs(PollingEventArgs.EventType.Success, result, null));
     }
     catch (Exception e)
     {
         RaisePollingCompletedEvent(new PollingEventArgs(PollingEventArgs.EventType.Failure, null, e));
         m_Log.Error("Unable to load properties source from " + source, e);
         return;
     }
     try
     {
         PopulateProperties(result, config);
     }
     catch (Exception e)
     {
         m_Log.Error("Unable to applying properties.", e);
     }
 }
 /// <summary>
 /// Create an instance and start polling the configuration source
 /// </summary>
 /// <param name="config">Configuration to delegate to</param>
 /// <param name="source"><see cref="IPolledConfigurationSource"/> to poll get new/changed properties</param>
 /// <param name="scheduler"><see cref="AbstractPollingScheduler"/> to provide the polling schedule</param>
 public ConfigurationWithPollingSource(IConfiguration config, IPolledConfigurationSource source, AbstractPollingScheduler scheduler)
 {
     m_Config = config;
     m_Scheduler = scheduler;
     scheduler.StartPolling(source, this);
 }
Beispiel #9
0
 /// <summary>
 /// Schedule the polling action of the configuration source
 /// </summary>
 protected abstract void SchedulePollingAction(IPolledConfigurationSource source, IConfiguration config);
Beispiel #10
0
 /// <summary>
 /// Initiate the first poll of the configuration source and schedule the action.
 /// </summary>
 /// <param name="source">Configuration source being polled</param>
 /// <param name="config">Configuration where the properties will be updated</param>
 public void StartPolling(IPolledConfigurationSource source, IConfiguration config)
 {
     InitialLoad(source, config);
     SchedulePollingAction(source, config);
 }
 protected void DoPoll(IPolledConfigurationSource source, IConfiguration config)
 {
     m_Log.Debug("Polling started");
     PollResult result;
     try
     {
         result = source.Poll(false, GetNextCheckPoint(m_CheckPoint));
         m_CheckPoint = result.CheckPoint;
         RaisePollingCompletedEvent(new PollingEventArgs(PollingEventArgs.EventType.Success, result, null));
     }
     catch (Exception e)
     {
         m_Log.Error("Error getting result from polling source", e);
         RaisePollingCompletedEvent(new PollingEventArgs(PollingEventArgs.EventType.Failure, null, e));
         return;
     }
     try
     {
         PopulateProperties(result, config);
     }
     catch (Exception e)
     {
         m_Log.Error("Error occured applying properties", e);
     }
 }
Beispiel #12
0
 /// <summary>
 /// Create an instance and start polling the configuration source
 /// </summary>
 /// <param name="config">Configuration to delegate to</param>
 /// <param name="source"><see cref="IPolledConfigurationSource"/> to poll get new/changed properties</param>
 /// <param name="scheduler"><see cref="AbstractPollingScheduler"/> to provide the polling schedule</param>
 public ConfigurationWithPollingSource(IConfiguration config, IPolledConfigurationSource source, AbstractPollingScheduler scheduler)
 {
     m_Config    = config;
     m_Scheduler = scheduler;
     scheduler.StartPolling(source, this);
 }
 /// <summary>
 /// Initialize the configuration. This method is called in <see cref="DynamicConfiguration"/> and <see cref="StartPolling"/>
 /// before the initial polling. The default implementation does nothing.
 /// </summary>
 /// <param name="source"></param>
 /// <param name="scheduler"></param>
 protected virtual void Init(IPolledConfigurationSource source, AbstractPollingScheduler scheduler)
 {
 }
 /// <summary>
 /// Initiate the first poll of the configuration source and schedule the action.
 /// </summary>
 /// <param name="source">Configuration source being polled</param>
 /// <param name="config">Configuration where the properties will be updated</param>
 public void StartPolling(IPolledConfigurationSource source, IConfiguration config)
 {
     InitialLoad(source, config);
     SchedulePollingAction(source,config);
 }
 /// <summary>
 /// Create an instance and start polling the configuration source.
 /// </summary>
 /// <param name="source">PolledConfigurationSource to poll</param>
 /// <param name="scheduler">
 /// AbstractPollingScheduler whose <see cref="AbstractPollingScheduler.SchedulePollingAction"/> will be used to determine the polling schedule
 /// </param>
 public DynamicConfiguration(IPolledConfigurationSource source, AbstractPollingScheduler scheduler) : this()
 {
     StartPolling(source, scheduler);
 }
Beispiel #16
0
 /// <summary>
 /// Initialize the configuration. This method is called in <see cref="DynamicConfiguration"/> and <see cref="StartPolling"/>
 /// before the initial polling. The default implementation does nothing.
 /// </summary>
 /// <param name="source"></param>
 /// <param name="scheduler"></param>
 protected virtual void Init(IPolledConfigurationSource source, AbstractPollingScheduler scheduler)
 {
 }
 /// <summary>
 /// Schedule the polling action of the configuration source
 /// </summary>
 protected abstract void SchedulePollingAction(IPolledConfigurationSource source, IConfiguration config);
Beispiel #18
0
 /// <summary>
 /// Create an instance and start polling the configuration source.
 /// </summary>
 /// <param name="source">PolledConfigurationSource to poll</param>
 /// <param name="scheduler">
 /// AbstractPollingScheduler whose <see cref="AbstractPollingScheduler.SchedulePollingAction"/> will be used to determine the polling schedule
 /// </param>
 public DynamicConfiguration(IPolledConfigurationSource source, AbstractPollingScheduler scheduler) : this()
 {
     StartPolling(source, scheduler);
 }