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

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

+ KeySearcher: display of aggregated linkmanager statistics
o KeySearcher: job identifier extended with sample decryption data to preserve decryption algorithm settings

File size: 7.1 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 BigInteger localFinishedChunks;
11        public BigInteger LocalFinishedChunks
12        {
13            get { return localFinishedChunks; }
14            set
15            {
16                localFinishedChunks = value;
17                OnPropertyChanged("LocalFinishedChunks");
18            }
19        }
20
21        private BigInteger currentChunk;
22        public BigInteger CurrentChunk
23        {
24            get { return currentChunk; }
25            set
26            {
27                currentChunk = value;
28                OnPropertyChanged("CurrentChunk");
29            }
30        }
31
32        private double progressOfCurrentChunk;
33        public double ProgressOfCurrentChunk
34        {
35            get { return progressOfCurrentChunk; }
36            set
37            {
38                progressOfCurrentChunk = value;
39                OnPropertyChanged("ProgressOfCurrentChunk");
40            }
41        }
42
43        private bool isCurrentProgressIndeterminate;
44        public bool IsCurrentProgressIndeterminate
45        {
46            get { return isCurrentProgressIndeterminate; }
47            set
48            {
49                isCurrentProgressIndeterminate = value;
50                OnPropertyChanged("IsCurrentProgressIndeterminate");
51            }
52        }
53
54        private BigInteger keysPerSecond;
55        public BigInteger KeysPerSecond
56        {
57            get { return keysPerSecond; }
58            set
59            {
60                keysPerSecond = value;
61                OnPropertyChanged("KeysPerSecond");
62            }
63        }
64
65        private string remainingTime;
66        public string RemainingTime
67        {
68            get { return remainingTime; }
69            set
70            {
71                remainingTime = value;
72                OnPropertyChanged("RemainingTime");
73            }
74        }
75
76        private BigInteger totalAmountOfParticipants;
77        public BigInteger TotalAmountOfParticipants
78        {
79            get { return totalAmountOfParticipants; }
80            set
81            {
82                totalAmountOfParticipants = value;
83                OnPropertyChanged("TotalAmountOfParticipants");
84            }
85        }
86
87        private string estimatedFinishDate;
88        public string EstimatedFinishDate
89        {
90            get { return estimatedFinishDate; }
91            set
92            {
93                estimatedFinishDate = value;
94                OnPropertyChanged("EstimatedFinishDate");
95            }
96        }
97
98        private BigInteger totalDhtRequests;
99        public BigInteger TotalDhtRequests
100        {
101            get { return totalDhtRequests; }
102            set
103            {
104                totalDhtRequests = value;
105                OnPropertyChanged("TotalDhtRequests");
106            }
107        }
108
109        private BigInteger requestsPerNode;
110        public BigInteger RequestsPerNode
111        {
112            get { return requestsPerNode; }
113            set
114            {
115                requestsPerNode = value;
116                OnPropertyChanged("RequestsPerNode");
117            }
118        }
119
120        private BigInteger retrieveRequests;
121        public BigInteger RetrieveRequests
122        {
123            get { return retrieveRequests; }
124            set
125            {
126                retrieveRequests = value;
127                OnPropertyChanged("RetrieveRequests");
128            }
129        }
130
131        private BigInteger removeRequests;
132        public BigInteger RemoveRequests
133        {
134            get { return removeRequests; }
135            set
136            {
137                removeRequests = value;
138                OnPropertyChanged("RemoveRequests");
139            }
140        }
141
142        private BigInteger storeRequests;
143        public BigInteger StoreRequests
144        {
145            get { return storeRequests; }
146            set
147            {
148                storeRequests = value;
149                OnPropertyChanged("StoreRequests");
150            }
151        }
152
153        private TimeSpan dhtOverheadInReadableTime;
154        public TimeSpan DhtOverheadInReadableTime
155        {
156            get { return dhtOverheadInReadableTime; }
157            set
158            {
159                dhtOverheadInReadableTime = value;
160                OnPropertyChanged("DhtOverheadInReadableTime");
161            }
162        }
163
164        private string dhtOverheadInPercent;
165        public string DhtOverheadInPercent
166        {
167            get { return dhtOverheadInPercent; }
168            set
169            {
170                dhtOverheadInPercent = value;
171                OnPropertyChanged("DhtOverheadInPercent");
172            }
173        }
174
175        public ObservableCollection<ResultEntry> TopList { get; set; }
176
177        private bool isSearchingForReservedNodes;
178        public bool IsSearchingForReservedNodes
179        {
180            get { return isSearchingForReservedNodes; }
181            set
182            {
183                isSearchingForReservedNodes = value;
184                OnPropertyChanged("IsSearchingForReservedNodes");
185            }
186        }
187
188        public StatusContainer()
189        {
190            EstimatedFinishDate = "-";
191            DhtOverheadInPercent = "-";
192            TopList = new ObservableCollection<ResultEntry>();
193            TotalAmountOfParticipants = 1;
194            IsSearchingForReservedNodes = false;
195        }
196
197        private long storedBytes;
198        public long StoredBytes
199        {
200            get { return storedBytes; }
201            set
202            {
203                storedBytes = value;
204                OnPropertyChanged("StoredBytes");
205            }
206        }
207
208        private long retrievedBytes;
209        public long RetrievedBytes
210        {
211            get { return retrievedBytes; }
212            set
213            {
214                retrievedBytes = value;
215                OnPropertyChanged("RetrievedBytes");
216            }
217        }
218
219        private long sentBytesByLinkManager;
220        public long SentBytesByLinkManager
221        {
222            get { return sentBytesByLinkManager; }
223            set
224            {
225                sentBytesByLinkManager = value;
226                OnPropertyChanged("SentBytesByLinkManager");
227            }
228        }
229
230        private long receivedBytesByLinkManager;
231        public long ReceivedBytesByLinkManager
232        {
233            get { return receivedBytesByLinkManager; }
234            set
235            {
236                receivedBytesByLinkManager = value;
237                OnPropertyChanged("ReceivedBytesByLinkManager");
238            }
239        }
240
241        #region INotifyPropertyChanged Members
242
243        [field: NonSerialized]
244        public event PropertyChangedEventHandler PropertyChanged;
245
246        private void OnPropertyChanged(string propertyName)
247        {
248            if (PropertyChanged != null)
249                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
250        }
251
252        #endregion
253    }
254}
Note: See TracBrowser for help on using the repository browser.