171
171
internal void AddGenerator (EvolutionMailIndexableGenerator generator, bool inotify_event)
173
running_generators.Add (generator);
173
lock (running_generators)
174
running_generators.Add (generator);
175
176
if (! inotify_event)
176
177
IsIndexing = true;
179
180
internal void RemoveGenerator (EvolutionMailIndexableGenerator generator)
181
running_generators.Remove (generator);
182
lock (running_generators) {
183
running_generators.Remove (generator);
183
if (running_generators.Count == 0)
185
if (running_generators.Count == 0)
187
190
protected override int ProgressPercent {
189
if (running_generators.Count == 0)
192
// An embarrassingly unscientific attempt at getting progress
193
// information from the mail backend as a whole. Unfortunately
194
// the IMAP and mbox backends don't have a common unit of
195
// measurement (IMAP has number of messages, mbox number of
196
// bytes), so we can't get anything really accurate.
197
double total_percent = 0;
199
foreach (EvolutionMailIndexableGenerator generator in running_generators)
200
total_percent += generator.ProgressPercent;
202
return (int) (total_percent / running_generators.Count);
192
lock (running_generators) {
193
if (running_generators.Count == 0)
196
// An embarrassingly unscientific attempt at getting progress
197
// information from the mail backend as a whole. Unfortunately
198
// the IMAP and mbox backends don't have a common unit of
199
// measurement (IMAP has number of messages, mbox number of
200
// bytes), so we can't get anything really accurate.
201
double total_percent = 0;
203
foreach (EvolutionMailIndexableGenerator generator in running_generators)
204
total_percent += generator.ProgressPercent;
206
return (int) (total_percent / running_generators.Count);