diff -r 64a47b97e1e1 -r f27aebe284bb logsui/logsengine/logssymbianos/src/logsreaderstates.cpp --- a/logsui/logsengine/logssymbianos/src/logsreaderstates.cpp Tue Jul 06 14:16:36 2010 +0300 +++ b/logsui/logsengine/logssymbianos/src/logsreaderstates.cpp Wed Aug 18 09:49:12 2010 +0300 @@ -20,6 +20,7 @@ #include #include #include "logsreaderstates.h" +#include "logsstatebasecontext.h" #include "logsreaderstatecontext.h" #include "logsevent.h" #include "logseventdata.h" @@ -35,9 +36,9 @@ // ---------------------------------------------------------------------------- // LogsReaderStateBase::LogsReaderStateBase( - LogsReaderStateContext& context) - : mContext(context), - mNextState(0) + LogsStateBaseContext& context, LogsReaderStateContext& readerContext) + : LogsStateBase(context), + mContext(readerContext) { } @@ -51,67 +52,6 @@ } // ---------------------------------------------------------------------------- -// LogsReaderStateFiltering::setNextState -// ---------------------------------------------------------------------------- -// -void LogsReaderStateBase::setNextState(LogsReaderStateBase& nextState) -{ - mNextState = &nextState; -} - -// ---------------------------------------------------------------------------- -// LogsReaderStateFiltering::enterNextStateL -// ---------------------------------------------------------------------------- -// -bool LogsReaderStateBase::enterNextStateL() -{ - if ( mNextState ){ - mContext.setCurrentState(*mNextState); - return mNextState->enterL(); - } - return false; -} - -// ---------------------------------------------------------------------------- -// LogsReaderStateBase::enterL -// ---------------------------------------------------------------------------- -// -bool LogsReaderStateBase::enterL() -{ - return false; -} - -// ---------------------------------------------------------------------------- -// LogsReaderStateBase::continueL -// ---------------------------------------------------------------------------- -// -bool LogsReaderStateBase::continueL() -{ - return false; -} - -// ---------------------------------------------------------------------------- -// LogsReaderStateBase::viewCount -// ---------------------------------------------------------------------------- -// -int LogsReaderStateBase::viewCountL() const - { - return mContext.logView().CountL(); - } - -// ---------------------------------------------------------------------------- -// LogsReaderStateBase::event -// ---------------------------------------------------------------------------- -// -CLogEvent& LogsReaderStateBase::event() const - { - //The RVCT compiler provides warnings "type qualifier on return type is meaningless" - //for functions that return const values. In order to avoid these numerous warnings and - //const cascading, the CLogEvent is const_casted here. - return const_cast( mContext.logView().Event() ); - } - -// ---------------------------------------------------------------------------- // LogsReaderStateBase::updateAndInsertEventL // ---------------------------------------------------------------------------- // @@ -191,32 +131,12 @@ } // ---------------------------------------------------------------------------- -// LogsReaderStateBase::duplicatesL -// ---------------------------------------------------------------------------- -// -bool LogsReaderStateBase::duplicatesL(const CLogFilter* aFilter){ - bool gettingDuplicates( false ); - if ( mContext.isRecentView() ){ - if ( aFilter ){ - gettingDuplicates = - static_cast( mContext.logView() ).DuplicatesL( - mContext.duplicatesView(), *aFilter, mContext.reqStatus() ); - } else { - gettingDuplicates = - static_cast( mContext.logView() ).DuplicatesL( - mContext.duplicatesView(), mContext.reqStatus() ); - } - } - return gettingDuplicates; -} - -// ---------------------------------------------------------------------------- // LogsReaderStateInitReading::LogsReaderStateInitReading // ---------------------------------------------------------------------------- // LogsReaderStateInitReading::LogsReaderStateInitReading( - LogsReaderStateContext& context ) - : LogsReaderStateBase(context) + LogsStateBaseContext& context, LogsReaderStateContext& readerContext ) + : LogsReaderStateBase(context, readerContext) { } @@ -236,8 +156,8 @@ // ---------------------------------------------------------------------------- // LogsReaderStateFiltering::LogsReaderStateFiltering( - LogsReaderStateContext& context ) - : LogsReaderStateBase(context), + LogsStateBaseContext& context, LogsReaderStateContext& readerContext ) + : LogsReaderStateBase(context, readerContext), mFilterList(0) { } @@ -303,9 +223,9 @@ // ---------------------------------------------------------------------------- // bool LogsReaderStateFiltering::setFilterL(CLogFilterList& filterList){ - __ASSERT_ALWAYS( mContext.isRecentView(), User::Leave( KErrNotFound ) ); - return static_cast( mContext.logView() ).SetRecentListL( - KLogNullRecentList, filterList, mContext.reqStatus() ); + __ASSERT_ALWAYS( mBaseContext.isRecentView(), User::Leave( KErrNotFound ) ); + return static_cast( mBaseContext.logView() ).SetRecentListL( + KLogNullRecentList, filterList, mBaseContext.reqStatus() ); } // ---------------------------------------------------------------------------- @@ -313,8 +233,8 @@ // ---------------------------------------------------------------------------- // LogsReaderStateFilteringAll::LogsReaderStateFilteringAll( - LogsReaderStateContext& context ) - : LogsReaderStateFiltering(context) + LogsStateBaseContext& context, LogsReaderStateContext& readerContext ) + : LogsReaderStateFiltering(context, readerContext) { } @@ -331,9 +251,9 @@ // ---------------------------------------------------------------------------- // bool LogsReaderStateFilteringAll::setFilterL(CLogFilterList& filterList){ - __ASSERT_ALWAYS( !mContext.isRecentView(), User::Leave( KErrNotFound ) ); - return static_cast( mContext.logView() ).SetFilterL( - filterList, mContext.reqStatus() ); + __ASSERT_ALWAYS( !mBaseContext.isRecentView(), User::Leave( KErrNotFound ) ); + return static_cast( mBaseContext.logView() ).SetFilterL( + filterList, mBaseContext.reqStatus() ); } // ---------------------------------------------------------------------------- @@ -341,8 +261,8 @@ // ---------------------------------------------------------------------------- // LogsReaderStateReading::LogsReaderStateReading( - LogsReaderStateContext& context ) - : LogsReaderStateBase(context), + LogsStateBaseContext& context, LogsReaderStateContext& readerContext ) + : LogsReaderStateBase(context, readerContext), mDuplicateMissedFilter(0), mCheckingMissed(false), mEventIndex(0), @@ -376,7 +296,7 @@ mDuplicateMissedFilter->SetNullFields(ELogFlagsField); } - if ( viewCountL() > 0 && mContext.logView().FirstL( mContext.reqStatus() ) ){ + if ( viewCountL() > 0 && mBaseContext.logView().FirstL( mBaseContext.reqStatus() ) ){ return true; } @@ -390,12 +310,12 @@ // bool LogsReaderStateReading::continueL() { - int& index = mContext.index(); + int& index = mBaseContext.index(); QList &events = mContext.events(); if ( mCheckingMissed ) { events.at(mEventIndex-1)->setDuplicates( - mContext.duplicatesView().CountL() ); + mBaseContext.duplicatesView().CountL() ); mCheckingMissed = false; } else { @@ -424,7 +344,7 @@ index++; if ( canContinueReadingL(index) ){ - return mContext.logView().NextL( mContext.reqStatus() ); + return mBaseContext.logView().NextL( mBaseContext.reqStatus() ); } return enterNextStateL(); } @@ -476,8 +396,8 @@ // ---------------------------------------------------------------------------- // LogsReaderStateFillDetails::LogsReaderStateFillDetails( - LogsReaderStateContext& context) - : LogsReaderStateBase(context) + LogsStateBaseContext& context, LogsReaderStateContext& readerContext ) + : LogsReaderStateBase(context, readerContext) { } @@ -539,8 +459,8 @@ // ---------------------------------------------------------------------------- // LogsReaderStateDone::LogsReaderStateDone( - LogsReaderStateContext& context ) - : LogsReaderStateBase(context) + LogsStateBaseContext& context, LogsReaderStateContext& readerContext ) + : LogsReaderStateBase(context, readerContext) { } @@ -560,65 +480,21 @@ { LOGS_QDEBUG( "logs [ENG] -> LogsReaderStateDone::enterL" ); - int numRead = qMin(mContext.index(),viewCountL()); + int numRead = qMin(mBaseContext.index(),viewCountL()); mContext.observer().readCompleted(numRead); LOGS_QDEBUG( "logs [ENG] <- LogsReaderStateDone::enterL" ); return false; -} - - -// ---------------------------------------------------------------------------- -// LogsReaderStateSearchingEvent::LogsReaderStateSearchingEvent -// ---------------------------------------------------------------------------- -// -LogsReaderStateSearchingEvent::LogsReaderStateSearchingEvent( - LogsReaderStateContext& context ) - : LogsReaderStateBase(context) -{ -} - - -// ---------------------------------------------------------------------------- -// LogsReaderStateSearchingEvent::enterL -// ---------------------------------------------------------------------------- -// -bool LogsReaderStateSearchingEvent::enterL() -{ - LOGS_QDEBUG( "logs [ENG] -> LogsReaderStateSearchingEvent::enterL" ); - if ( viewCountL() > 0 && mContext.logView().FirstL( mContext.reqStatus() ) ){ - return true; - } - return enterNextStateL(); -} - - -// ---------------------------------------------------------------------------- -// LogsReaderStateSearchingEvent::continueL -// ---------------------------------------------------------------------------- -// -bool LogsReaderStateSearchingEvent::continueL() -{ - LOGS_QDEBUG( "logs [ENG] -> LogsReaderStateSearchingEvent::continueL" ); - int& index = mContext.index(); - if ( event().Id() != mContext.currentEventId() ) { - index++; - if ( index < viewCountL() ){ - return mContext.logView().NextL( mContext.reqStatus() ); - } - } - - return enterNextStateL(); -} +} // ---------------------------------------------------------------------------- // LogsReaderStateFindingDuplicates::LogsReaderStateFindingDuplicates // ---------------------------------------------------------------------------- // LogsReaderStateFindingDuplicates::LogsReaderStateFindingDuplicates( - LogsReaderStateContext& context ) - : LogsReaderStateBase(context), + LogsStateBaseContext& context, LogsReaderStateContext& readerContext ) + : LogsReaderStateBase(context, readerContext), mDuplicateFilter(0) { } @@ -673,8 +549,8 @@ // ---------------------------------------------------------------------------- // LogsReaderStateMarkingDuplicates::LogsReaderStateMarkingDuplicates( - LogsReaderStateContext& context ) - : LogsReaderStateBase(context) + LogsStateBaseContext& context, LogsReaderStateContext& readerContext ) + : LogsReaderStateBase(context, readerContext) { } @@ -687,10 +563,10 @@ LOGS_QDEBUG( "logs [ENG] -> LogsReaderStateMarkingDuplicates::enterL" ); mGettingDuplicates = false; - if ( event().Id() == mContext.currentEventId() ) { + if ( event().Id() == mBaseContext.currentEventId() ) { // Mark event read event().SetFlags( event().Flags() | KLogEventRead ); - mContext.logClient().ChangeEvent(event(), mContext.reqStatus()); + mBaseContext.logClient().ChangeEvent(event(), mBaseContext.reqStatus()); return true; } @@ -714,8 +590,8 @@ } } else { // Mark duplicate events read - mContext.duplicatesView().SetFlagsL( - mContext.duplicatesView().Event().Flags() | KLogEventRead ); + mBaseContext.duplicatesView().SetFlagsL( + mBaseContext.duplicatesView().Event().Flags() | KLogEventRead ); } LOGS_QDEBUG( "logs [ENG] <- LogsReaderStateMarkingDuplicates::continueL" ); @@ -728,8 +604,8 @@ // ---------------------------------------------------------------------------- // LogsReaderStateReadingDuplicates::LogsReaderStateReadingDuplicates( - LogsReaderStateContext& context ) - : LogsReaderStateBase(context) + LogsStateBaseContext& context, LogsReaderStateContext& readerContext ) + : LogsReaderStateBase(context, readerContext) { } @@ -740,8 +616,8 @@ bool LogsReaderStateReadingDuplicates::enterL() { LOGS_QDEBUG( "logs [ENG] -> LogsReaderStateReadingDuplicates::enterL" ); - if ( mContext.duplicatesView().CountL() > 0 && - mContext.duplicatesView().FirstL(mContext.reqStatus()) ){ + if ( mBaseContext.duplicatesView().CountL() > 0 && + mBaseContext.duplicatesView().FirstL(mBaseContext.reqStatus()) ){ LOGS_QDEBUG( "logs [ENG] duplicates exist!"); return true; } @@ -759,11 +635,11 @@ LOGS_QDEBUG( "logs [ENG] -> LogsReaderStateReadingDuplicates::continueL" ); int nextIndex = mContext.duplicatedEvents().count(); - const CLogEvent& sourceEvent = mContext.duplicatesView().Event(); + const CLogEvent& sourceEvent = mBaseContext.duplicatesView().Event(); LogsEvent* event = new LogsEvent; constructAndInsertEventL( sourceEvent, event, nextIndex, mContext.duplicatedEvents() ); - if ( mContext.duplicatesView().NextL(mContext.reqStatus()) ) { + if ( mBaseContext.duplicatesView().NextL(mBaseContext.reqStatus()) ) { return true; } @@ -777,7 +653,8 @@ // ---------------------------------------------------------------------------- // LogsReaderStateModifyingDone::LogsReaderStateModifyingDone( - LogsReaderStateContext& context) : LogsReaderStateBase(context) + LogsStateBaseContext& context, LogsReaderStateContext& readerContext ) + : LogsReaderStateBase(context, readerContext) { } @@ -790,7 +667,7 @@ { LOGS_QDEBUG( "logs [ENG] -> LogsReaderStateModifyingDone::enterL" ); - LogsEvent* modifiedEvent = eventById(mContext.currentEventId()); + LogsEvent* modifiedEvent = eventById(mBaseContext.currentEventId()); if ( modifiedEvent ){ // Update modified event to know that it has been marked. Real // update of the event happens soon when db notifies the change. @@ -808,7 +685,8 @@ // ---------------------------------------------------------------------------- // LogsReaderStateReadingDuplicatesDone::LogsReaderStateReadingDuplicatesDone( - LogsReaderStateContext& context) : LogsReaderStateBase(context) + LogsStateBaseContext& context, LogsReaderStateContext& readerContext ) + : LogsReaderStateBase(context, readerContext) { }