コード例 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LogFilePipelineStage"/> class.
 /// </summary>
 public LogFilePipelineStage()
 {
     mSetting_Path                = RegisterSetting("Path", sDefault_Path);
     mSetting_Purpose             = RegisterSetting("Purpose", sDefault_Purpose);
     mSetting_WriteMode           = RegisterSetting("WriteMode", sDefault_WriteMode);
     mSetting_MaximumMessageCount = RegisterSetting("MaximumMessageCount", sDefault_MaximumMessageCount);
     mSetting_MaximumMessageAge   = RegisterSetting("MaximumMessageAge", sDefault_MaximumMessageAge);
 }
コード例 #2
0
 private static void RegisterSetting_TypedInterface <T>(
     IProcessingPipelineStageSetting <T> setting,
     object defaultValue,
     string defaultValueAsString)
 {
     Assert.True(setting.HasDefaultValue);
     Assert.False(setting.HasValue);
     Assert.Equal(defaultValue, setting.DefaultValue);
     Assert.Equal(defaultValue, setting.Value);
     Assert.Equal(defaultValueAsString, setting.DefaultValueAsString);
     Assert.Equal(defaultValueAsString, setting.ValueAsString);
 }
コード例 #3
0
        private static void SetSetting_TypedInterface <T>(
            IProcessingPipelineStageSetting <T> setting,
            object value,
            string valueAsString)
        {
            Assert.False(setting.HasDefaultValue);
            Assert.Throws <InvalidOperationException>(() => setting.DefaultValue);
            Assert.Throws <InvalidOperationException>(() => setting.DefaultValueAsString);

            Assert.True(setting.HasValue);
            Assert.Equal(value, setting.Value);
            Assert.Equal(valueAsString, setting.ValueAsString);
        }
            /// <summary>
            /// Binds the setting proxy to another pipeline stage configuration.
            /// </summary>
            /// <param name="configuration">The configuration the proxy should bind to.</param>
            /// <param name="raiseChangedEvent">
            /// <c>true</c> to notify clients that the setting has changed;
            /// otherwise <c>false</c>.
            /// </param>
            void IUntypedSettingProxy.SetProxyTarget(IProcessingPipelineStageConfiguration configuration, bool raiseChangedEvent)
            {
                lock (mSync)
                {
                    if (mConfiguration != configuration)
                    {
                        // Exchange the configuration, rebind the PropertyChanged handler and fire the PropertyChanged event
                        // to notify clients to re-evaluate the setting.
                        mConfiguration = configuration;
                        mSetting?.UnregisterSettingChangedEventHandler(OnSettingPropertyChanged);
                        mSetting = mValueToStringConverter != null && mStringToValueConverter != null
                                                                   ? mConfiguration.RegisterSetting(mSettingName, mDefaultSettingValue, mValueToStringConverter, mStringToValueConverter)
                                                                   : mConfiguration.RegisterSetting(mSettingName, mDefaultSettingValue);

                        mSetting?.RegisterSettingChangedEventHandler(OnSettingPropertyChanged, false);
                        if (raiseChangedEvent)
                        {
                            mStage.ProcessSettingChanged(this);
                        }
                    }
                }
            }
コード例 #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FileWriterPipelineStage"/> class.
 /// </summary>
 public FileWriterPipelineStage()
 {
     mSetting_Append = RegisterSetting("Append", Default_Append);
     mSetting_Path   = RegisterSetting("Path", Default_Path);
 }
コード例 #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ConsoleWriterPipelineStage"/> class.
 /// </summary>
 public ConsoleWriterPipelineStage()
 {
     mDefaultStreamSetting = RegisterSetting(SettingName_DefaultStream, ConsoleOutputStream.Stdout);
 }