source: trunk/CrypPlugins/KeySearcher/P2P/Presentation/StatusContainer.cs @ 1705

Last change on this file since 1705 was 1705, checked in by Paul Lelgemann, 12 years ago

o KeySearcher: improved visualization of local and distributed components

File size: 8.8 KB
Line 
1using System;
2using System.Collections.ObjectModel;
3using System.ComponentModel;
4using System.Numerics;
5
6namespace KeySearcher.P2P.Presentation
7{
8    public class StatusContainer : INotifyPropertyChanged
9    {
10        private string currentOperation;
11        public string CurrentOperation
12        {
13            get { return currentOperation; }
14            set
15            {
16                currentOperation = "> " + value + " <";
17                OnPropertyChanged("CurrentOperation");
18            }
19        }
20
21        private BigInteger localFinishedChunks;
22        public BigInteger LocalFinishedChunks
23        {
24            get { return localFinishedChunks; }
25            set
26            {
27                localFinishedChunks = value;
28                OnPropertyChanged("LocalFinishedChunks");
29            }
30        }
31
32        private BigInteger currentChunk;
33        public BigInteger CurrentChunk
34        {
35            get { return currentChunk; }
36            set
37            {
38                currentChunk = value;
39                OnPropertyChanged("CurrentChunk");
40            }
41        }
42
43        private double progressOfCurrentChunk;
44        public double ProgressOfCurrentChunk
45        {
46            get { return progressOfCurrentChunk; }
47            set
48            {
49                progressOfCurrentChunk = value;
50                OnPropertyChanged("ProgressOfCurrentChunk");
51            }
52        }
53
54        private bool isCurrentProgressIndeterminate;
55        public bool IsCurrentProgressIndeterminate
56        {
57            get { return isCurrentProgressIndeterminate; }
58            set
59            {
60                isCurrentProgressIndeterminate = value;
61                OnPropertyChanged("IsCurrentProgressIndeterminate");
62            }
63        }
64
65        private BigInteger keysPerSecond;
66        public BigInteger KeysPerSecond
67        {
68            get { return keysPerSecond; }
69            set
70            {
71                keysPerSecond = value;
72                OnPropertyChanged("KeysPerSecond");
73            }
74        }
75
76        private DateTime startDate;
77        public DateTime StartDate
78        {
79            get { return startDate; }
80            set
81            {
82                startDate = value;
83                OnPropertyChanged("StartDate");
84            }
85        }
86
87        private TimeSpan elapsedTime;
88        public TimeSpan ElapsedTime
89        {
90            get { return elapsedTime; }
91            set
92            {
93                elapsedTime = value;
94                OnPropertyChanged("ElapsedTime");
95            }
96        }
97
98        private TimeSpan remainingTime;
99        public TimeSpan RemainingTime
100        {
101            get { return remainingTime; }
102            set
103            {
104                remainingTime = value;
105                OnPropertyChanged("RemainingTime");
106            }
107        }
108
109        private TimeSpan remainingTimeTotal;
110        public TimeSpan RemainingTimeTotal
111        {
112            get { return remainingTimeTotal; }
113            set
114            {
115                remainingTimeTotal = value;
116                OnPropertyChanged("RemainingTimeTotal");
117            }
118        }
119
120        private BigInteger totalAmountOfParticipants;
121        public BigInteger TotalAmountOfParticipants
122        {
123            get { return totalAmountOfParticipants; }
124            set
125            {
126                totalAmountOfParticipants = value;
127                OnPropertyChanged("TotalAmountOfParticipants");
128            }
129        }
130
131        private string estimatedFinishDate;
132        public string EstimatedFinishDate
133        {
134            get { return estimatedFinishDate; }
135            set
136            {
137                estimatedFinishDate = value;
138                OnPropertyChanged("EstimatedFinishDate");
139            }
140        }
141
142        private BigInteger totalDhtRequests;
143        public BigInteger TotalDhtRequests
144        {
145            get { return totalDhtRequests; }
146            set
147            {
148                totalDhtRequests = value;
149                OnPropertyChanged("TotalDhtRequests");
150            }
151        }
152
153        private BigInteger requestsPerNode;
154        public BigInteger RequestsPerNode
155        {
156            get { return requestsPerNode; }
157            set
158            {
159                requestsPerNode = value;
160                OnPropertyChanged("RequestsPerNode");
161            }
162        }
163
164        private BigInteger retrieveRequests;
165        public BigInteger RetrieveRequests
166        {
167            get { return retrieveRequests; }
168            set
169            {
170                retrieveRequests = value;
171                OnPropertyChanged("RetrieveRequests");
172            }
173        }
174
175        private BigInteger removeRequests;
176        public BigInteger RemoveRequests
177        {
178            get { return removeRequests; }
179            set
180            {
181                removeRequests = value;
182                OnPropertyChanged("RemoveRequests");
183            }
184        }
185
186        private BigInteger storeRequests;
187        public BigInteger StoreRequests
188        {
189            get { return storeRequests; }
190            set
191            {
192                storeRequests = value;
193                OnPropertyChanged("StoreRequests");
194            }
195        }
196
197        private TimeSpan dhtOverheadInReadableTime;
198        public TimeSpan DhtOverheadInReadableTime
199        {
200            get { return dhtOverheadInReadableTime; }
201            set
202            {
203                dhtOverheadInReadableTime = value;
204                OnPropertyChanged("DhtOverheadInReadableTime");
205            }
206        }
207
208        private string dhtOverheadInPercent;
209        public string DhtOverheadInPercent
210        {
211            get { return dhtOverheadInPercent; }
212            set
213            {
214                dhtOverheadInPercent = value;
215                OnPropertyChanged("DhtOverheadInPercent");
216            }
217        }
218
219        public ObservableCollection<ResultEntry> TopList { get; set; }
220
221        private bool isSearchingForReservedNodes;
222        public bool IsSearchingForReservedNodes
223        {
224            get { return isSearchingForReservedNodes; }
225            set
226            {
227                isSearchingForReservedNodes = value;
228                OnPropertyChanged("IsSearchingForReservedNodes");
229            }
230        }
231
232        private long storedBytes;
233        public long StoredBytes
234        {
235            get { return storedBytes; }
236            set
237            {
238                storedBytes = value;
239                OnPropertyChanged("StoredBytes");
240            }
241        }
242
243        private long retrievedBytes;
244        public long RetrievedBytes
245        {
246            get { return retrievedBytes; }
247            set
248            {
249                retrievedBytes = value;
250                OnPropertyChanged("RetrievedBytes");
251            }
252        }
253
254        private long totalBytes;
255        public long TotalBytes
256        {
257            get { return totalBytes; }
258            set
259            {
260                totalBytes = value;
261                OnPropertyChanged("TotalBytes");
262            }
263        }
264
265        private long sentBytesByLinkManager;
266        public long SentBytesByLinkManager
267        {
268            get { return sentBytesByLinkManager; }
269            set
270            {
271                sentBytesByLinkManager = value;
272                OnPropertyChanged("SentBytesByLinkManager");
273            }
274        }
275
276        private long receivedBytesByLinkManager;
277        public long ReceivedBytesByLinkManager
278        {
279            get { return receivedBytesByLinkManager; }
280            set
281            {
282                receivedBytesByLinkManager = value;
283                OnPropertyChanged("ReceivedBytesByLinkManager");
284            }
285        }
286
287        private long totalBytesByLinkManager;
288        public long TotalBytesByLinkManager
289        {
290            get { return totalBytesByLinkManager; }
291            set
292            {
293                totalBytesByLinkManager = value;
294                OnPropertyChanged("TotalBytesByLinkManager");
295            }
296        }
297
298        public StatusContainer()
299        {
300            EstimatedFinishDate = "-";
301            DhtOverheadInPercent = "-";
302            TopList = new ObservableCollection<ResultEntry>();
303            TotalAmountOfParticipants = 1;
304            CurrentOperation = "Idle";
305        }
306
307        #region INotifyPropertyChanged Members
308
309        [field: NonSerialized]
310        public event PropertyChangedEventHandler PropertyChanged;
311
312        private void OnPropertyChanged(string propertyName)
313        {
314            if (PropertyChanged != null)
315                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
316        }
317
318        #endregion
319    }
320}
Note: See TracBrowser for help on using the repository browser.