40 : LogsWorker(readAllEvents), |
40 : LogsWorker(readAllEvents), |
41 mFsSession(fsSession), |
41 mFsSession(fsSession), |
42 mStrings(strings), |
42 mStrings(strings), |
43 mEvents(events), |
43 mEvents(events), |
44 mObserver(observer), |
44 mObserver(observer), |
45 mGlobalObserverSet(false) |
45 mGlobalObserverSet(false), |
|
46 mPendingRead(false) |
46 { |
47 { |
47 LOGS_QDEBUG( "logs [ENG] -> LogsReader::LogsReader()" ) |
48 LOGS_QDEBUG( "logs [ENG] -> LogsReader::LogsReader()" ) |
48 |
49 |
49 mLogClient = &logClient; |
50 mLogClient = &logClient; |
50 initializeReadStates(); |
51 initializeReadStates(); |
110 // ---------------------------------------------------------------------------- |
111 // ---------------------------------------------------------------------------- |
111 // |
112 // |
112 void LogsReader::updateDetails(bool clearCached) |
113 void LogsReader::updateDetails(bool clearCached) |
113 { |
114 { |
114 LOGS_QDEBUG( "logs [ENG] -> LogsReader::updateDetails()" ) |
115 LOGS_QDEBUG( "logs [ENG] -> LogsReader::updateDetails()" ) |
|
116 |
|
117 if ( clearCached ){ |
|
118 mContactCache.clear(); |
|
119 } |
115 foreach (LogsEvent* event, mEvents){ |
120 foreach (LogsEvent* event, mEvents){ |
116 event->prepareForContactMatching(); |
121 event->prepareForContactMatching(); |
117 } |
122 if ( clearCached && event->contactMatched() ){ |
118 if ( clearCached ) { |
123 event->setContactMatched( false ); |
119 mContactCache.clear(); |
124 event->setRemoteParty(""); |
120 } |
125 } |
121 LogsReaderStateFillDetails* fillDetailsState = |
126 } |
122 new LogsReaderStateFillDetails(*this, *this); |
127 |
123 fillDetailsState->fillDetails(); |
128 start(); |
124 delete fillDetailsState; |
129 |
125 LOGS_QDEBUG( "logs [ENG] <- LogsReader::updateDetails()" ) |
130 LOGS_QDEBUG( "logs [ENG] <- LogsReader::updateDetails()" ) |
126 } |
131 } |
127 |
132 |
128 // ---------------------------------------------------------------------------- |
133 // ---------------------------------------------------------------------------- |
129 // LogsReader::markEventSeen |
134 // LogsReader::markEventSeen |
148 LOGS_QDEBUG_2( "logs [ENG] <- LogsReader::readDuplicates(), err:", err ) |
153 LOGS_QDEBUG_2( "logs [ENG] <- LogsReader::readDuplicates(), err:", err ) |
149 return err; |
154 return err; |
150 } |
155 } |
151 |
156 |
152 // ---------------------------------------------------------------------------- |
157 // ---------------------------------------------------------------------------- |
|
158 // LogsReader::lock |
|
159 // ---------------------------------------------------------------------------- |
|
160 // |
|
161 int LogsReader::lock(bool locked) |
|
162 { |
|
163 bool prevLocked = mLocked; |
|
164 mLocked = locked; |
|
165 LOGS_QDEBUG_3( "logs [ENG] -> LogsReader::lock(), prev and new locked:", |
|
166 prevLocked, mLocked ) |
|
167 if ( prevLocked && !mLocked && mPendingRead ){ |
|
168 // Read attempt occured while locked, read now when not anymore locked |
|
169 start(); |
|
170 } |
|
171 return 0; |
|
172 } |
|
173 |
|
174 // ---------------------------------------------------------------------------- |
153 // LogsReader::RunError |
175 // LogsReader::RunError |
154 // ---------------------------------------------------------------------------- |
176 // ---------------------------------------------------------------------------- |
155 // |
177 // |
156 TInt LogsReader::RunError(TInt error) |
178 TInt LogsReader::RunError(TInt error) |
157 { |
179 { |
167 // LogsReader::startL |
189 // LogsReader::startL |
168 // ---------------------------------------------------------------------------- |
190 // ---------------------------------------------------------------------------- |
169 // |
191 // |
170 void LogsReader::startL() |
192 void LogsReader::startL() |
171 { |
193 { |
|
194 if ( mLocked ){ |
|
195 LOGS_QDEBUG( "logs [ENG] <-> LogsReader::startL(), locked" ) |
|
196 mPendingRead = true; |
|
197 User::Leave( KErrAccessDenied ); |
|
198 } |
172 prepareReadingL(); |
199 prepareReadingL(); |
173 |
200 |
174 initializeReadStates(); |
201 initializeReadStates(); |
175 |
202 |
176 if ( currentState().enterL() ){ |
203 if ( currentState().enterL() ){ |
177 SetActive(); |
204 SetActive(); |
178 } |
205 } |
|
206 |
|
207 mPendingRead = false; |
179 } |
208 } |
180 |
209 |
181 // ---------------------------------------------------------------------------- |
210 // ---------------------------------------------------------------------------- |
182 // LogsReader::markEventSeenL |
211 // LogsReader::markEventSeenL |
183 // ---------------------------------------------------------------------------- |
212 // ---------------------------------------------------------------------------- |
420 new LogsStateSearchingEvent(*this); |
449 new LogsStateSearchingEvent(*this); |
421 LogsReaderStateFindingDuplicates* findingDuplicates = |
450 LogsReaderStateFindingDuplicates* findingDuplicates = |
422 new LogsReaderStateFindingDuplicates(*this, *this); |
451 new LogsReaderStateFindingDuplicates(*this, *this); |
423 LogsReaderStateReadingDuplicates* readingDuplicates = |
452 LogsReaderStateReadingDuplicates* readingDuplicates = |
424 new LogsReaderStateReadingDuplicates(*this, *this); |
453 new LogsReaderStateReadingDuplicates(*this, *this); |
|
454 LogsReaderStateMergingDuplicates* mergingDuplicates = |
|
455 new LogsReaderStateMergingDuplicates(*this, *this); |
425 LogsReaderStateReadingDuplicatesDone* done = |
456 LogsReaderStateReadingDuplicatesDone* done = |
426 new LogsReaderStateReadingDuplicatesDone(*this, *this); |
457 new LogsReaderStateReadingDuplicatesDone(*this, *this); |
427 filtering->setNextState(*searching); |
458 filtering->setNextState(*searching); |
428 searching->setNextState(*findingDuplicates); |
459 searching->setNextState(*findingDuplicates); |
429 findingDuplicates->setNextState(*readingDuplicates); |
460 findingDuplicates->setNextState(*readingDuplicates); |
430 readingDuplicates->setNextState(*done); |
461 readingDuplicates->setNextState(*mergingDuplicates); |
|
462 mergingDuplicates->setNextState(*done); |
431 mDuplicateReadingStates.append(filtering); |
463 mDuplicateReadingStates.append(filtering); |
432 mDuplicateReadingStates.append(searching); |
464 mDuplicateReadingStates.append(searching); |
433 mDuplicateReadingStates.append(findingDuplicates); |
465 mDuplicateReadingStates.append(findingDuplicates); |
434 mDuplicateReadingStates.append(readingDuplicates); |
466 mDuplicateReadingStates.append(readingDuplicates); |
|
467 mDuplicateReadingStates.append(mergingDuplicates); |
435 mDuplicateReadingStates.append(done); |
468 mDuplicateReadingStates.append(done); |
436 } |
469 } |
437 mCurrentStateMachine = &mDuplicateReadingStates; |
470 mCurrentStateMachine = &mDuplicateReadingStates; |
438 setCurrentState(*mDuplicateReadingStates.at(0)); |
471 setCurrentState(*mDuplicateReadingStates.at(0)); |
439 } |
472 } |