logsui/logsengine/logssymbianos/src/logsreader.cpp
changeset 15 76d2cf7a585e
parent 9 68f3171a5819
child 17 90fe74753f71
equal deleted inserted replaced
13:52d644758b05 15:76d2cf7a585e
    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 }