--- a/upnpsharing/applicationengine/src/upnpcontentshareao.cpp Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,321 +0,0 @@
-/*
-* Copyright (c) 2008 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: CUpnpContentShareAO class implementation
-*
-*/
-
-
-
-
-
-
-// INCLUDE FILES
-
-#include "upnpcontentshareao.h"
-#include "upnpfilesharingengine.h"
-
-_LIT( KComponentLogfile, "applicationengine.txt");
-#include "upnplog.h"
-
-// --------------------------------------------------------------------------
-// CUpnpContentShareAO::CUpnpContentShareAO
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// --------------------------------------------------------------------------
-//
-CUpnpContentShareAO::CUpnpContentShareAO(
- CUPnPFileSharingEngine& aEngine,
- RUpnpContentServerClient& aContentServer ):
- CActive( CActive::EPriorityStandard ),
- iEngine( aEngine ),
- iContentServer( aContentServer )
- {
- CActiveScheduler::Add( this );
- }
-
-// --------------------------------------------------------------------------
-// CUpnpContentShareAO::ConstructL()
-// --------------------------------------------------------------------------
-//
-void CUpnpContentShareAO::ConstructL()
- {
- __LOG( "CUpnpContentShareAO::ConstructL" );
- }
-
-// --------------------------------------------------------------------------
-// CUpnpContentShareAO::NewL
-// --------------------------------------------------------------------------
-//
-CUpnpContentShareAO* CUpnpContentShareAO::NewL(
- CUPnPFileSharingEngine& aEngine,
- RUpnpContentServerClient& aContentServer )
- {
- __LOG( "[UPNP_ENGINE]\t CUpnpContentShareAO::NewL begin" );
- CUpnpContentShareAO* self = CUpnpContentShareAO::NewLC(
- aEngine, aContentServer );
- CleanupStack::Pop( self );
- __LOG( "[UPNP_ENGINE]\t CUpnpContentShareAO::NewL end" );
- return self;
- }
-
-// --------------------------------------------------------------------------
-// CUpnpContentShareAO::NewLC
-// --------------------------------------------------------------------------
-//
-CUpnpContentShareAO* CUpnpContentShareAO::NewLC(
- CUPnPFileSharingEngine& aEngine,
- RUpnpContentServerClient& aContentServer )
- {
- __LOG( "[UPNP_ENGINE]\t CUpnpContentShareAO::NewLC begin" );
- CUpnpContentShareAO* self = new( ELeave )
- CUpnpContentShareAO( aEngine, aContentServer );
- CleanupStack::PushL( self );
- self->ConstructL();
- __LOG( "[UPNP_ENGINE]\t CUpnpContentShareAO::NewLC end" );
- return self;
- }
-
-// --------------------------------------------------------------------------
-// CUpnpContentShareAO::~CUpnpContentShareAO()
-// Destructor
-// --------------------------------------------------------------------------
-//
-CUpnpContentShareAO::~CUpnpContentShareAO()
- {
- __LOG( "CUpnpContentShareAO::~CUpnpContentShareAO " );
-
- iQueuedSelections.ResetAndDestroy();
- iQueuedSelections.Close();
- iQueuedTypes.Close();
-
- Cancel();
- }
-
-// --------------------------------------------------------------------------
-// CUpnpContentShareAO::ChangeSharedContentL()
-// Sends the selected indexes to server and starts sharing
-// --------------------------------------------------------------------------
-//
-void CUpnpContentShareAO::ChangeSharedContentL(
- UpnpContentServer::TUpnpMediaType aType,
- const CArrayFix<TInt>& aMarkedItems )
- {
- __LOG( "[UPNP_ENGINE]\t CUpnpContentShareAO::\
-ChangeSharedContentL begin" );
-
- if ( !IsActive() )
- {
- __ASSERTD( iQueuedTypes.Count() == 0, __FILE__, __LINE__ );
- iContentServer.ChangeSharedContentL( aType, aMarkedItems, iStatus );
- iStatus = KRequestPending;
- SetActive();
- }
- else
- {
- //remove all queued requests with this type
- RemoveQueuedObjectByType( aType );
-
- //queue this request
- CArrayFix<TInt>* selections =
- new ( ELeave ) CArrayFixFlat<TInt>( aMarkedItems.Count() );
- CleanupStack::PushL( selections );
- for ( TInt i ( 0 ); i < aMarkedItems.Count(); i++ )
- {
- selections->AppendL( aMarkedItems.At(i) );
- }
-
- AppendQueuedObjectL( aType, selections );
- CleanupStack::Pop( selections );
- __ASSERTD( iQueuedSelections.Count() == iQueuedTypes.Count(),
- __FILE__, __LINE__ );
- }
-
- __LOG( "[UPNP_ENGINE]\t CUpnpContentShareAO::\
-ChangeSharedContentL end" );
- }
-
-// --------------------------------------------------------------------------
-// CUpnpContentShareAO::RefreshSharedContentL()
-// Updates shared objects in mediaserver
-// --------------------------------------------------------------------------
-//
-void CUpnpContentShareAO::RefreshSharedContentL(
- UpnpContentServer::TUpnpMediaType aType )
- {
- __LOG( "[UPNP_ENGINE]\t CUpnpContentShareAO::\
-RefreshSharedContentL begin" );
- if ( !IsActive() )
- {
- __ASSERTD( iQueuedTypes.Count() == 0, __FILE__, __LINE__ );
- iContentServer.RefreshSharedContentL( aType, iStatus );
- iStatus = KRequestPending;
- SetActive();
- }
- else
- {
- //remove all queued requests with this type
- RemoveQueuedObjectByType( aType );
-
- //queue this request
- CArrayFix<TInt>* selections( NULL );
- AppendQueuedObjectL( aType, selections );
- __ASSERTD( iQueuedSelections.Count() == iQueuedTypes.Count(),
- __FILE__, __LINE__ );
- }
- __LOG( "[UPNP_ENGINE]\t CUpnpContentShareAO::\
-RefreshSharedContentL end" );
- }
-
-// --------------------------------------------------------------------------
-// CUpnpContentShareAO::DoCancel
-// Cancel the operation
-// --------------------------------------------------------------------------
-//
-void CUpnpContentShareAO::DoCancel()
- {
- __LOG( "[UPNP_ENGINE]\t CUpnpContentShareAO::DoCancel" );
- }
-
-// --------------------------------------------------------------------------
-// CUpnpContentShareAO::RunL
-// Function is called when active request is ready
-// --------------------------------------------------------------------------
-//
-void CUpnpContentShareAO::RunL()
- {
- __LOG( "[UPNP_ENGINE]\t CUpnpContentShareAO::RunL begin" );
- __LOG1( "[UPNP_ENGINE]\t\t status: %d", iStatus.Int() );
-
- TInt err = iStatus.Int();
- if ( err &&
- err != KErrServerBusy )
- {
- // KErrServerBusy is a response to the
- // CUpnpContentServer::RefreshSharedContentL call. Therefore we must
- // not leave without cleaning queued objects.
- // Otherwise next call to CUpnpContentShareAO::RefreshSharedContentL
- // will panic (in UDEB builds only!!!!).
-
- // Clears queued objects and leaves.
- iQueuedSelections.ResetAndDestroy();
- iQueuedTypes.Reset();
- User::Leave( err );
- }
-
- //When get the responce from the content server then change the UI
- iEngine.RequestSharingProgressL();
-
- if ( iQueuedTypes.Count() )
- {
- // Get next queued objects
- UpnpContentServer::TUpnpMediaType type = iQueuedTypes[ 0 ];
- CArrayFix<TInt>* selections = iQueuedSelections[ 0 ];
-
- // Clear arrays.
- iQueuedSelections.Remove( 0 );
- iQueuedTypes.Remove( 0 );
-
- if ( selections )
- {
- //share request
- CleanupStack::PushL( selections );
- iContentServer.ChangeSharedContentL( type, *selections, iStatus );
- CleanupStack::PopAndDestroy( selections );
- }
- else
- {
- //refresh request
- iContentServer.RefreshSharedContentL( type, iStatus );
- }
-
- iStatus = KRequestPending;
- SetActive();
- }
- __LOG( "[UPNP_ENGINE]\t CUpnpContentShareAO::RunL end" );
- }
-
-// --------------------------------------------------------------------------
-// CUpnpContentShareAO::RunError
-// Handles a leave occurring in the request completion
-// --------------------------------------------------------------------------
-//
-TInt CUpnpContentShareAO::RunError( TInt aError )
- {
- __LOG( "CUpnpContentShareAO::RunError" );
- if ( iEngine.Observer() )
- {
- iEngine.Observer()->HandleSharingDone( iEngine, aError );
- }
- return KErrNone;
- }
-
-// --------------------------------------------------------------------------
-// CUpnpContentShareAO::RemoveQueuedObjects
-// Removed queued objects by index.
-// --------------------------------------------------------------------------
-//
-void CUpnpContentShareAO::RemoveQueuedObject( TInt aIndex )
- {
- // Checks argument in udeb build.
- // USER 130 panic will occure in urel builds if argument is
- // incorrent.
- TInt count = iQueuedTypes.Count();
- __ASSERTD( aIndex >= 0 && aIndex < iQueuedTypes.Count(),
- __FILE__, __LINE__ );
-
- iQueuedTypes.Remove( aIndex );
- if ( iQueuedSelections[ aIndex ] )
- {
- delete iQueuedSelections[ aIndex ];
- }
- iQueuedSelections.Remove( aIndex );
- }
-
-// --------------------------------------------------------------------------
-// CUpnpContentShareAO::RemoveQueuedObjectByType
-// Removed queued objects by type.
-// --------------------------------------------------------------------------
-//
-void CUpnpContentShareAO::RemoveQueuedObjectByType(
- UpnpContentServer::TUpnpMediaType aType )
- {
- //remove all queued requests with this type
- for ( TInt i( iQueuedTypes.Count() - 1 ); i >= 0; i-- )
- {
- if ( iQueuedTypes[ i ] == aType )
- {
- RemoveQueuedObject( i );
- }
- }
- }
-
-// --------------------------------------------------------------------------
-// CUpnpContentShareAO::AppendQueuedObjectL
-// Appends given objects.
-// --------------------------------------------------------------------------
-//
-void CUpnpContentShareAO::AppendQueuedObjectL(
- UpnpContentServer::TUpnpMediaType aType,
- CArrayFix<TInt>* aSelections )
- {
- iQueuedTypes.AppendL( aType );
- TRAPD( err, iQueuedSelections.AppendL( aSelections ) );
- if ( err )
- {
- // Couldn't append array to the iQueuedSelections array.
- // Removes the type and leaves.
- iQueuedTypes.Remove( iQueuedTypes.Count() - 1 );
- User::Leave( err );
- }
- }