source: trunk/CrypPlugins/WorkspaceManager/WorkspaceManagerSettings.cs @ 1884

Last change on this file since 1884 was 1884, checked in by kopal, 11 years ago
  • created multi processor gears4net scheduler for execution engine
  • added setting for thread priority
File size: 4.5 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Cryptool.PluginBase;
6using System.ComponentModel;
7using System.Threading;
8
9namespace WorkspaceManager
10{
11    class WorkspaceManagerSettings : ISettings
12    {
13        #region ISettings Members
14        private bool hasChanges = false;
15
16        public WorkspaceManagerSettings()
17        {
18            this.Threads = "" + System.Environment.ProcessorCount;           
19        }
20
21        public bool HasChanges
22        {
23            get
24            {
25                return hasChanges;
26            }
27            set
28            {
29                hasChanges = value;
30            }
31        }
32
33        private String guiUpdateInterval = "100";
34        [TaskPane("GuiUpdateInterval", "The interval the gui should be updated in miliseconds.", null, 1, false, DisplayLevel.Beginner, ControlType.TextBox)]
35        public String GuiUpdateInterval
36        {
37            get
38            {
39                return guiUpdateInterval;
40            }
41            set
42            {
43                guiUpdateInterval = value;
44                OnPropertyChanged("GuiUpdateInterval");
45            }
46        }
47
48        private String sleepTime = "0";
49        [TaskPane("SleepTime", "The time which the execution will sleep after executing a plugin.", null, 1, false, DisplayLevel.Beginner, ControlType.TextBox)]
50        public String SleepTime
51        {
52            get
53            {
54                return sleepTime;
55            }
56            set
57            {
58                sleepTime = value;
59                OnPropertyChanged("SleepTime");
60            }
61        }
62
63        private String threads = "0";
64        [TaskPane("Threads", "The amount of used threads for scheduling.", null, 1, false, DisplayLevel.Beginner, ControlType.TextBox)]
65        public String Threads
66        {
67            get
68            {
69                return threads;
70            }
71            set
72            {
73                threads = value;
74                OnPropertyChanged("Threads");
75            }
76        }
77
78        private int threadPriority = 4;
79        [TaskPane("ThreadPriority", "Should the event handling be synchronous?", null, 1, false, DisplayLevel.Beginner, ControlType.ComboBox, new String[] { "AboveNormal", "BelowNormal", "Highest", "Lowest", "Normal" })]
80        public int ThreadPriority
81        {
82            get
83            {
84                return threadPriority;
85            }
86            set
87            {
88                threadPriority = value;
89                OnPropertyChanged("ThreadPriority");
90            }
91        } 
92
93        private bool benchmarkPlugins = false;
94        [TaskPane("BenchmarkPlugins", "Should the WorkspaceManager benchmark the amount of executed plugins per second?", null, 1, false, DisplayLevel.Beginner, ControlType.CheckBox)]
95        public bool BenchmarkPlugins
96        {
97            get
98            {
99                return benchmarkPlugins;
100            }
101            set
102            {
103                benchmarkPlugins = value;
104                OnPropertyChanged("BenchmarkPlugins");
105            }
106        }
107
108        private bool synchronousEvents = false;
109        [TaskPane("SynchronousEvents", "Should the event handling be synchronous?", null, 1, false, DisplayLevel.Beginner, ControlType.CheckBox)]
110        public bool SynchronousEvents
111        {
112            get
113            {
114                return synchronousEvents;
115            }
116            set
117            {
118                synchronousEvents = value;
119                OnPropertyChanged("SynchronousEvents");
120            }
121        }
122
123        private int logLevel = 0;
124        [TaskPane("LogLevel", "Should the event handling be synchronous?", null, 1, false, DisplayLevel.Beginner, ControlType.ComboBox, new string[] { "Debug", "Info", "Warning", "Error"})]
125        public int LogLevel
126        {
127            get
128            {
129                return logLevel;
130            }
131            set
132            {
133                logLevel = value;
134                OnPropertyChanged("LogLevel");
135            }
136        }
137
138        #endregion
139
140        #region INotifyPropertyChanged Members
141
142        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
143       
144        private void OnPropertyChanged(string p)
145        {
146            if (PropertyChanged != null)
147                PropertyChanged(this, new PropertyChangedEventArgs(p));
148        }
149
150        #endregion
151    }
152}
Note: See TracBrowser for help on using the repository browser.