diff -r 8e4539ab1889 -r c461c7fa72c2 harvester/client/src/harvesterclient.cpp --- a/harvester/client/src/harvesterclient.cpp Fri May 14 16:17:23 2010 +0300 +++ b/harvester/client/src/harvesterclient.cpp Thu May 27 13:18:43 2010 +0300 @@ -22,6 +22,7 @@ #include "harvestereventobserverao.h" #include "harvesterlog.h" #include "harvesterclientao.h" +#include "harvestersessionwatcher.h" #include "mdsutils.h" #include "harvesterrequestactive.h" #include "mdscommoninternal.h" @@ -125,6 +126,8 @@ iHEO = NULL; + iSessionWatcher = NULL; + return err; } @@ -164,6 +167,9 @@ { WRITELOG( "RHarvesterClient::Close()" ); + delete iSessionWatcher; + iSessionWatcher = NULL; + // cancels Harvest Complete request if it exist at server UnregisterHarvestComplete(); @@ -199,8 +205,8 @@ if ( iHarvesterClientAO ) { - iHarvesterClientAO->SetObserver( aObserver ); - } + iHarvesterClientAO->SetObserver( aObserver ); + } iObserver = aObserver; } @@ -408,6 +414,33 @@ } // ---------------------------------------------------------------------------------------- +// AddSessionObserver +// ---------------------------------------------------------------------------------------- +// +EXPORT_C void RHarvesterClient::AddSessionObserverL( MHarvesterSessionObserver& aObserver ) + { + if( iSessionWatcher ) + { + delete iSessionWatcher; + iSessionWatcher = NULL; + } + iSessionWatcher = CHarvesterSessionWatcher::NewL( aObserver ); + } + +// ---------------------------------------------------------------------------------------- +// RemoveSessionObserver +// ---------------------------------------------------------------------------------------- +// +EXPORT_C void RHarvesterClient::RemoveSessionObserver() + { + if( iSessionWatcher ) + { + delete iSessionWatcher; + iSessionWatcher = NULL; + } + } + +// ---------------------------------------------------------------------------------------- // RegisterHarvestComplete // ---------------------------------------------------------------------------------------- //