--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpsharing/upnpcontentserver/src/upnpcontainercheckerao.cpp Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,838 @@
+/*
+* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: This module handlers the cleaning and creating of the
+ * filesystem to mediaserver
+ *
+*/
+
+
+
+
+
+#include <e32debug.h>
+#include "upnpcommonutils.h"
+#include "upnpcontentserverdefs.h"
+#include "upnpcontainercheckerao.h"
+#include "upnpunsharerao.h"
+
+_LIT( KComponentLogfile, "contentserver.txt");
+#include "upnplog.h"
+
+// CONSTANTS
+const TInt KDefaultBrowseReqCount( 100 );
+const TInt KDefaultBrowseStartingInd( 0 );
+
+using namespace UpnpContentServer;
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::CUpnpContainerCheckerAo()
+// C++ constructor.
+// --------------------------------------------------------------------------
+//
+CUpnpContainerCheckerAo::CUpnpContainerCheckerAo(
+ MUpnpSharingCallback* aCallback ) :
+ CActive( CActive::EPriorityIdle ),
+ iCallback( aCallback )
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ iCurrentOperation = ENotActive;
+ iState = EIdle;
+ iTotalMatches = KErrNotFound;
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::~CUpnpContainerCheckerAo()
+// C++ destructor.
+// --------------------------------------------------------------------------
+//
+CUpnpContainerCheckerAo::~CUpnpContainerCheckerAo()
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ delete iFileSharing;
+ iFileSharing = NULL;
+ iMediaServer.Close();
+
+ if ( IsActive() )
+ {
+ __LOG1("CUpnpContainerCheckerAo destructor IsActive iCurrentOp=%d",
+ iCurrentOperation );
+ iCurrentOperation = ENotActive;
+ TRequestStatus* stat = &iStatus;
+ User::RequestComplete( stat, KErrNone );
+ }
+
+ Cancel();
+
+ Cleanup();
+
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::ValidateContainerStructureL
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+TInt CUpnpContainerCheckerAo::ValidateContainerStructureL(
+ RArray<TInt>* aIds )
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+
+ CActiveScheduler::Add( this );
+ TInt err( KErrNotFound );
+
+ iClientIds = aIds;
+
+ // First initialize resources
+ iOperationMode = EValidateContainers;
+ iCurrentOperation = EInitialize;
+ SelfComplete( KErrNone );
+
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ return err;
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::GetDefaultContainerIdsL
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+TInt CUpnpContainerCheckerAo::CheckDefaultContainersL(
+ RArray<TInt>* aIds )
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ iOperationMode = ECheckDefaultContainers;
+ TInt err( KErrNone );
+
+ iClientIds = aIds;
+
+ CActiveScheduler::Add( this );
+ iCurrentOperation = EInitialize;
+ SelfComplete( KErrNone );
+
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ return err;
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::RequestStop
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::RequestStop(
+ MUpnpSharingCallback::TSharingStopType aStopType )
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ iStopRequested = aStopType;
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::InitializeL
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+TInt CUpnpContainerCheckerAo::InitializeL()
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ // First initialize resources
+ iFileSharing = CUpnpFileSharing::NewL();
+ TInt error( iMediaServer.Connect() );
+ if ( error )
+ {
+ __LOG8_1( "iMediaServer.Connect err: %d",error );
+ }
+ User::LeaveIfError( error );
+
+ if ( !error )
+ {
+ // start offline if not started
+ TInt status( RUpnpMediaServerClient::EStopped );
+ error = iMediaServer.Status( status );
+ if ( !error && status == RUpnpMediaServerClient::EStopped )
+ {
+ error = iMediaServer.StartOffline();
+ }
+ }
+
+ SelfComplete( error );
+ iCurrentOperation = EQueryDefaultContainers;
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ return error;
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::QueryDefaultContainerIdsL
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::QueryDefaultContainerIdsL()
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ iState = EResolveDefaultContainerIds;
+
+ CUpnpBrowseCriteria* browseCriteria = CreateBrowseCriteriaLC();
+
+ delete iContainerList;
+ iContainerList = NULL;
+
+ iContainerList = CUpnpContainerList::NewL();
+
+ // Get shared containers to iContainerList
+ iFileSharing->GetSharedContainerListL( KRootContainerId,
+ *browseCriteria,
+ *iContainerList,
+ iMatchCount,
+ iStatus );
+ iCurrentOperation = EQueryDefaultContainersResult;
+ CleanupStack::PopAndDestroy( browseCriteria );
+ SetActive();
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::QueryDefaultContainerIdsResultL
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::QueryDefaultContainerIdsResultL()
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ CUpnpContainer* tmpContainer( NULL );
+ if ( !iContainerList )
+ {
+ User::Leave( KErrGeneral );
+ }
+ switch ( iContainerPosition )
+ {
+ case CUpnpContainerCheckerAo::EImageAndVideo :
+ {
+ tmpContainer =
+ UPnPCommonUtils::FindContainerByTitle( *iContainerList,
+ KImageContainerName );
+ if ( tmpContainer )
+ {
+ iImageVideoContainerId = UPnPCommonUtils::DesC8ToInt(
+ tmpContainer->Id() );
+ iContainerList->RemoveAndDestroy( tmpContainer->Id() );
+ tmpContainer = NULL;
+ iContainerPosition++;
+ iCurrentOperation = EQueryDefaultContainersResult;
+ SelfComplete( KErrNone );
+ }
+ else
+ {
+ iCurrentOperation = EShareContainer;
+ ShareContainerL( iContainerPosition );
+ }
+ }
+ break;
+ case CUpnpContainerCheckerAo::EMusic :
+ {
+ tmpContainer =
+ UPnPCommonUtils::FindContainerByTitle( *iContainerList,
+ KMusicContainerName );
+ if ( tmpContainer )
+ {
+ iMusicContainerId = UPnPCommonUtils::DesC8ToInt(
+ tmpContainer->Id() );
+ iContainerList->RemoveAndDestroy( tmpContainer->Id() );
+ tmpContainer = NULL;
+ iContainerPosition++;
+ iCurrentOperation = EQueryDefaultContainersResult;
+ SelfComplete( KErrNone );
+ }
+ else
+ {
+ iCurrentOperation = EShareContainer;
+ ShareContainerL( iContainerPosition );
+ }
+ }
+ break;
+ case CUpnpContainerCheckerAo::EUploaded :
+ {
+ tmpContainer =
+ UPnPCommonUtils::FindContainerByTitle( *iContainerList,
+ KUploadedContainerName );
+ if ( tmpContainer )
+ {
+ iUploadContainerId = UPnPCommonUtils::DesC8ToInt(
+ tmpContainer->Id() );
+ iContainerList->RemoveAndDestroy( tmpContainer->Id() );
+ tmpContainer = NULL;
+ iContainerPosition++;
+ iCurrentOperation = EQueryDefaultContainersResult;
+ SelfComplete( KErrNone );
+ }
+ else
+ {
+ iCurrentOperation = EShareContainer;
+ ShareContainerL( iContainerPosition );
+ }
+ }
+ break;
+ default :
+ {
+ // Store IDs of possible unwanted containers
+ if ( iOperationMode != ECheckDefaultContainers )
+ {
+ for ( TInt i(0); i< iContainerList->ObjectCount(); i++ )
+ {
+ tmpContainer = static_cast< CUpnpContainer* >(
+ iContainerList->operator[]( i ));
+ iSharedContainerIds.Append(
+ UPnPCommonUtils::DesC8ToInt( tmpContainer->Id() ) );
+ }
+
+
+ iState = EUnshareExtraContainers;
+ iCurrentOperation = EUnshareContainer;
+ }
+ else
+ {
+ iCurrentOperation = ENotActive;
+ }
+
+ // Just add the Ids to client
+ if ( iClientIds )
+ {
+ iClientIds->Reset();
+ iClientIds->Append( iImageVideoContainerId );
+ iClientIds->Append( iMusicContainerId );
+ iClientIds->Append( iUploadContainerId );
+ iClientIds->Compress();
+ }
+ delete iContainerList;
+ iContainerList = NULL;
+ SelfComplete( KErrNone );
+ }
+ break;
+ }
+
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::RunL
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::RunL()
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ if ( iStatus.Int() )
+ {
+ __LOG1( "Error: %d", iStatus.Int() );
+ }
+
+ if ( iStatus.Int() == KErrCorrupt )
+ {
+ if ( iRecoverError == ENoError )
+ {
+ iRecoverError = EDropAllContent;
+ }
+ else
+ {
+ iCurrentOperation = ENotActive;
+ iRecoverError = ENoError;
+ }
+ }
+ else if ( iStatus.Int() == KErrNoMemory ||
+ iStatus.Int() == KErrDiskFull ||
+ iStatus.Int() == KErrServerTerminated )
+ {
+ iCurrentOperation = ENotActive;
+ SelfComplete( iStatus.Int() );
+ }
+
+
+ if ( iRecoverError )
+ {
+ switch ( iRecoverError )
+ {
+ case EDropAllContent :
+ {
+ iFileSharing->DropAllContentL( iStatus );
+ iRecoverError = EDropAllContentResult;
+ SetActive();
+ }
+ break;
+ case EDropAllContentResult :
+ {
+ if ( iStatus.Int() == KErrCorrupt )
+ {
+ iCurrentOperation = ENotActive;
+ SelfComplete( iStatus.Int() );
+ }
+ else
+ {
+ iRecoverError = ENoError;
+ SelfComplete( KErrNone );
+ }
+ }
+ break;
+ default:
+ __LOG1( "Error: %d", __LINE__ );
+ break;
+ }
+
+ }
+ else
+ {
+
+ if ( iStopRequested == MUpnpSharingCallback::ESharingPause )
+ {
+ delete iFileSharing;
+ iFileSharing = NULL;
+ iFileSharing = CUpnpFileSharing::NewL();
+ TInt e = iMediaServer.Stop(
+ RUpnpMediaServerClient::EStopSilent );
+ if ( e )
+ {
+ __LOG1( "Error: %d", e );
+ }
+ e = iMediaServer.StartOffline();
+ if ( e )
+ {
+ __LOG1( "Error: %d", e );
+ }
+ iStopRequested = MUpnpSharingCallback::ESharingNoStop;
+ }
+
+ switch ( iCurrentOperation )
+ {
+ case EInitialize :
+ {
+ InitializeL();
+ }
+ break;
+ case EQueryDefaultContainers :
+ {
+ QueryDefaultContainerIdsL();
+ }
+ break;
+ case EQueryDefaultContainersResult :
+ {
+ QueryDefaultContainerIdsResultL();
+ }
+ break;
+ case EUnshareItemList :
+ {
+ UnshareItemListL();
+ }
+ break;
+ case EQueryItemFromMediaServer :
+ {
+ QueryContainerItemsL();
+ }
+ break;
+ case EQueryItemFromMediaServerResult :
+ {
+ QueryItemFromCdsResultL();
+ }
+ break;
+ case EShareContainer :
+ {
+ __LOG1( "Error: %d", __LINE__ );
+ }
+ break;
+ case EShareContainerResult :
+ {
+ ShareContainerResult();
+ }
+ break;
+ case ENotActive :
+ {
+ Cleanup();
+ if ( iCallback )
+ {
+ iCallback->CompleteSharingOperationL( iStatus.Int(), 0 );
+ }
+ }
+ // all operations requested done
+ break;
+ case EUnshareContainer :
+ {
+ UnshareContainerL();
+ }
+ break;
+ case EUnshareContainerResult :
+ {
+ UnshareContainerResultL();
+ }
+ break;
+ default :
+ {
+ __LOG1( "Error: %d", __LINE__ );
+ break;
+ }
+ }
+ }
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::DoCancel
+// Cancels active object
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::DoCancel()
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ // NOTE: The cancelling of mediaserver request must be made in destructor
+ // because there is no cancel in CUpnpFileSharing
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::RunError
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+TInt CUpnpContainerCheckerAo::RunError( TInt aError )
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ if ( aError )
+ {
+ __LOG8_1( "CUpnpContainerCheckerAo::RunError", aError );
+ }
+ TInt ret( KErrNone );
+ if ( aError == KErrNoMemory ||
+ aError == KErrDiskFull ||
+ aError == KErrCorrupt )
+ {
+ iCurrentOperation = ENotActive;
+ SelfComplete( aError );
+ }
+ else
+ {
+
+ }
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ return ret;
+ }
+
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::QueryItemFromCdsResultL
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::QueryItemFromCdsResultL()
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ TInt objCount( iItemList->ObjectCount() );
+ if ( objCount && ( iExecStatus < iTotalMatches ) )
+ {
+ iCurrentOperation = EUnshareItemList;
+ }
+ else
+ {
+ if ( iState == EEmptyRootContainerItems )
+ {
+ iState = EEmptyUploadedContainerItems;
+ iCurrentOperation = EQueryItemFromMediaServer;
+ }
+ else
+ {
+ iState = EIdle;
+ iCurrentOperation = ENotActive;
+ }
+ iExecStatus = 0;
+ iTotalMatches = KErrNotFound;
+
+ }
+
+ SelfComplete( KErrNone );
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::UnshareItemListL
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::UnshareItemListL()
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+
+ iExecStatus += iItemList->ObjectCount();
+ iFileSharing->UnshareItemListL( *iItemList, iMatchCount, iStatus );
+
+ delete iItemList;
+ iItemList = NULL;
+ iCurrentOperation = EQueryItemFromMediaServer;
+ SetActive();
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::ShareContainerL
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::ShareContainerL( TInt aPos )
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ iTmpContainer = CUpnpContainer::NewL();
+ iTmpContainer->SetParentIdL( *UPnPCommonUtils::IntToDesC8LC(
+ KRootContainerId ) );
+ CleanupStack::PopAndDestroy(); //UPnPCommonUtils::IntToDesC8LC
+ iTmpContainer->SetObjectClassL( KStorageFolderContainerClass );
+
+ switch ( aPos )
+ {
+ case CUpnpContainerCheckerAo::EImageAndVideo :
+ {
+ iTmpContainer->SetTitleL( KImageContainerName );
+ }
+ break;
+ case CUpnpContainerCheckerAo::EMusic :
+ {
+ iTmpContainer->SetTitleL( KMusicContainerName );
+ }
+ break;
+ case CUpnpContainerCheckerAo::EUploaded :
+ {
+ iTmpContainer->SetTitleL( KUploadedContainerName );
+ }
+ break;
+ default :
+ break;
+ }
+ if ( iTmpContainer )
+ {
+ iFileSharing->ShareContainerL(
+ *UPnPCommonUtils::IntToDesC8LC( KRootContainerId ),
+ *iTmpContainer,
+ iStatus );
+ iCurrentOperation = EShareContainerResult;
+ CleanupStack::PopAndDestroy(); // UPnPCommonUtils::IntToDesC8LC
+ iCurrentOperation = EShareContainerResult;
+ SetActive();
+ }
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::ShareContainerResult
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::ShareContainerResult( )
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ if ( !iStatus.Int() )
+ {
+ // Store the IDs
+ if ( iContainerPosition == CUpnpContainerCheckerAo::EUploaded )
+ {
+ iUploadContainerId = UPnPCommonUtils::DesC8ToInt(
+ iTmpContainer->Id() );
+ }
+
+ else if ( iContainerPosition ==
+ CUpnpContainerCheckerAo::EImageAndVideo )
+ {
+ iImageVideoContainerId = UPnPCommonUtils::DesC8ToInt(
+ iTmpContainer->Id() );
+ }
+ else if ( iContainerPosition == CUpnpContainerCheckerAo::EMusic )
+ {
+ iMusicContainerId = UPnPCommonUtils::DesC8ToInt(
+ iTmpContainer->Id() );
+ }
+
+
+ }
+ delete iTmpContainer;
+ iTmpContainer = NULL;
+
+ iCurrentOperation = EQueryDefaultContainersResult;
+ iContainerPosition++;
+ SelfComplete( KErrNone );
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::UnshareContainerL
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::UnshareContainerL()
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ iCurrentOperation = EUnshareContainerResult;
+ switch ( iState )
+ {
+ case EEmptyUploadedContainer :
+ {
+ __LOG1( "Error: %d", __LINE__ );
+ }
+ break;
+ case EUnshareExtraContainers :
+ {
+ if ( iSharedContainerIds.Count() )
+ {
+ iSharedContainerIds.Compress();
+ iFileSharing->UnshareContainerL( iSharedContainerIds[ 0 ],
+ iStatus );
+ iSharedContainerIds.Remove( 0 );
+ SetActive();
+ }
+ else
+ {
+ iState = EEmptyRootContainerItems;
+ QueryContainerItemsL();
+ }
+ }
+ break;
+ default :
+ {
+ __LOG1( "Error: %d", __LINE__ );
+ }
+ break;
+ }
+
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::UnshareContainerResultL
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::UnshareContainerResultL()
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ if ( iState == EEmptyUploadedContainer )
+ {
+ __LOG1( "Error: %d", __LINE__ );
+ }
+ else if ( iState == EUnshareExtraContainers )
+ {
+ if ( iSharedContainerIds.Count() )
+ {
+ iCurrentOperation = EUnshareContainer;
+ }
+ else
+ {
+ iState = EEmptyRootContainerItems;
+ iCurrentOperation = EQueryItemFromMediaServer;
+ }
+ SelfComplete( KErrNone );
+ }
+
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::QueryContainerItemsL
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::QueryContainerItemsL()
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ delete iItemList;
+ iItemList = NULL;
+ iItemList = CUpnpItemList::NewL();
+ TInt containerId( KRootContainerId );
+ if ( iState == EEmptyUploadedContainerItems )
+ {
+ containerId = iUploadContainerId;
+ }
+ CUpnpBrowseCriteria* browseCriteria = CreateBrowseCriteriaLC();
+ if ( iTotalMatches == KErrNotFound )
+ {
+ iFileSharing->GetSharedItemListL (
+ containerId, *browseCriteria,
+ *iItemList, iTotalMatches, iStatus );
+ }
+ else
+ {
+ TInt tmp( 0 );
+ iFileSharing->GetSharedItemListL (
+ containerId, *browseCriteria,
+ *iItemList, tmp, iStatus );
+ }
+ iCurrentOperation = EQueryItemFromMediaServerResult;
+ CleanupStack::PopAndDestroy( browseCriteria );
+ SetActive();
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::CreateBrowseCriteriaLC
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+CUpnpBrowseCriteria* CUpnpContainerCheckerAo::CreateBrowseCriteriaLC() const
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ CUpnpBrowseCriteria* browseCriteria = CUpnpBrowseCriteria::NewLC();
+ browseCriteria->SetRequestedCount( KDefaultBrowseReqCount );
+ browseCriteria->SetStartingIndex( KDefaultBrowseStartingInd );
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ return browseCriteria;
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::Cleanup
+// ( other items are commented in header )
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::Cleanup()
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ iExecStatus = 0;
+ iTotalMatches = KErrNotFound;
+ iImageVideoContainerId = 0;
+ iMusicContainerId = 0;
+ iUploadContainerId = 0;
+ iContainerPosition = 0;
+ iClientIds = NULL;
+ delete iItemList;
+ iItemList = NULL;
+ delete iContainerList;
+ iContainerList = NULL;
+ delete iTmpContainer;
+ iTmpContainer = NULL;
+ iSharedContainerIds.Close();
+ iState = EIdle;
+ iCurrentOperation = ENotActive;
+ if ( IsAdded() )
+ {
+ Deque();
+ }
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// --------------------------------------------------------------------------
+// CUpnpContainerCheckerAo::SelfComplete
+// Start observing events
+// --------------------------------------------------------------------------
+//
+void CUpnpContainerCheckerAo::SelfComplete( TInt aError )
+ {
+ __LOG8_1( "%s begin.", __PRETTY_FUNCTION__ );
+ SetActive();
+ TRequestStatus* stat = &iStatus;
+ User::RequestComplete( stat, aError );
+ __LOG8_1( "%s end.", __PRETTY_FUNCTION__ );
+ }
+
+// End of File