diff -r 6369bfd1b60d -r 08b5eae9f9ff upnpsharing/upnpcontentserver/inc/upnpcontainercheckerao.h --- a/upnpsharing/upnpcontentserver/inc/upnpcontainercheckerao.h Mon Nov 01 13:44:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,381 +0,0 @@ -/* -* 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 -* -*/ - - - - - -#ifndef __UPNPCONTAINERCHECKERAO_H__ -#define __UPNPCONTAINERCHECKERAO_H__ - -// INCLUDES -#include - -#include -#include -#include -#include -#include -#include -#include -#include "upnpcontentserverdefs.h" -#include "upnpsharingcallback.h" - -/** - * A class to check, create and clean the default filesystem in Media server - * - * @since S60 3.1 - */ -class CUpnpContainerCheckerAo : public CActive - { - /** - * Indicates the ongoing operation of the CUpnpContainerCheckerAo - */ - enum THandlerOperations - { - EInitialize, - EQueryDefaultContainers, - EUnshareItemList, - EQueryDefaultContainersResult, - EQueryItemFromMediaServer, - EQueryItemFromMediaServerResult, - - EUnshareContainer, - EUnshareContainerResult, - - EShareContainer, - EShareContainerResult, - ENotActive - }; - - /** - * Indicates the current state of the handler - */ - enum THandlerState - { - EResolveDefaultContainerIds, - ECleanFileStructure, - EShareDefaultContainers, - EEmptyUploadedContainer, - EEmptyUploadedContainerItems, - EEmptyRootContainerItems, - EUnshareExtraContainers, - EUnshareExtraItems, - EIdle - }; - - /** - * Indicates the current state of the handler - */ - enum TErrorState - { - ENoError, - EDropAllContent, - EDropAllContentResult - }; - - /** - * The operating modes - */ - enum TOperationMode - { - EValidateContainers, - ECheckDefaultContainers - }; - -public: - /** - * The folder checking operations - */ - enum TContainerPosition - { - EImageAndVideo = 0, - EMusic, - EUploaded - }; - - /** - * C++ constructor. - * @since S60 3.1 - * @param aWait, the client side wait - */ - CUpnpContainerCheckerAo( MUpnpSharingCallback* aCallback ); - - /** - * C++ destructor. - */ - virtual ~CUpnpContainerCheckerAo(); - - /** - * Creates the default containers if they do not exist, - * empties root container and cleans uploaded container - * @since S60 3.1 - * @return Errorcode of the operation start - */ - TInt ValidateContainerStructureL( RArray* aIds ); - - /** - * Creates the default containers if they do not exist - * Add ids of the default containers to array - * @since S60 3.1 - * @param aIds The container Ids, indexed using TContainerPosition type - * @return Errorcode of the operation start - */ - TInt CheckDefaultContainersL( RArray* aIds ); - - /** - * Request this active ocject to stop as soon as is possible - * Stop is indicated to client via callback - * @since S60 3.1 - * @param aStopType Type of stop operation - */ - void RequestStop( MUpnpSharingCallback::TSharingStopType aStopType ); - - -private: - - /** - * 2nd phase constructor. - */ - void ConstructL(); - - /** - * The active object main loop - * @since S60 3.1 - */ - void RunL(); - - /** - * The active object cancel function - * @since S60 3.1 - */ - void DoCancel(); - - /** - * Perform cleanup in case RunL leaves - * @since S60 3.1 - * @return error code - */ - TInt RunError( TInt aError ); - - /** - * Perform allocating of resources needed for processing upload events - * @since S60 3.1 - * @return error code - */ - TInt InitializeL(); - - /** - * Query default container structure ids from media server - * @since S60 3.1 - */ - void QueryDefaultContainerIdsL(); - - /** - * Handle the query result - * @since S60 3.1 - */ - void QueryDefaultContainerIdsResultL(); - - /** - * Handle the item query result - * @since S60 3.1 - */ - void QueryItemFromCdsResultL(); - - /** - * Unshare the items in iItemList - * @since S60 3.1 - */ - void UnshareItemListL(); - - /** - * Share container on basis of ID - * @since S60 3.1 - */ - void ShareContainerL( TInt aPos ); - - /** - * Handle the sharing operation result - * @since S60 3.1 - */ - void ShareContainerResult( ); - - /** - * Unshares container under processing - * @since S60 3.1 - */ - void UnshareContainerL(); - - /** - * Handle result of the unshare container operation - * @since S60 3.1 - */ - void UnshareContainerResultL(); - - /** - * Query containers in root level - * @since S60 3.1 - */ - void QueryContainerItemsL(); - - /** - * Create browse criteria for media server query - * @since S60 3.1 - * @return pointer to CUpnpBrowseCriteria instance - */ - CUpnpBrowseCriteria* CreateBrowseCriteriaLC() const; - - /** - * Clean allocated resources for possible next run - * @since S60 3.1 - */ - void Cleanup(); - - /** - * Complete own request - * @since S60 3.1 - * @param aError Errorcode to use in completion - */ - void SelfComplete( TInt aError ); - - - -private: - - /** - * Media server API to share files - * owned - */ - CUpnpFileSharing* iFileSharing; - - /** - * Media server session handle - */ - RUpnpMediaServerClient iMediaServer; - - /** - * Used to hold the upper ao - * Stopped when this class has nothing to do. Not owned. - */ - MUpnpSharingCallback* iCallback; - - /** - * Hanlders current state - */ - TInt iState; - - /** - * Handlers current operation - */ - TInt iCurrentOperation; - - /** - * Id of the Images& Videos container - */ - TInt iImageVideoContainerId; - - /** - * Id of the Music container - */ - TInt iMusicContainerId; - - /** - * Id of the Upload container - */ - TInt iUploadContainerId; - - /** - * Array of shared container IDs - */ - RArray iSharedContainerIds; - - /** - * The currently processed container - * owned - */ - CUpnpContainer* iTmpContainer; - - /** - * Structure used to hold the containers queries from media server - * In practice it is used to hold "Images& VIdeos" & "Music" & "Uploaded" - * containers. - * owned - */ - CUpnpContainerList* iContainerList; - - /** - * Structure used to hold possbile unwanted items when cleaning - * some folder - * owned - */ - CUpnpItemList* iItemList; - - /** - * Holds the position of the container under processing - */ - TInt iContainerPosition; - - /** - * The number of items in item query - */ - TInt iTotalMatches; - - /** - * The position when unsharing list of items - */ - TInt iExecStatus; - - /** - * Operation mode as defined by TOperationMode - */ - TInt iOperationMode; - - /** - * Pointer to client structure to contain the container ids - * Not owned - */ - RArray* iClientIds; - - /** - * Indicates if the client has requested stop - * Value is the stop type - */ - TInt iStopRequested; - - /** - * State variable which informs if there is need to do - * error handling - */ - TInt iRecoverError; - - /** - * The number of matches returned by media server - * Not used but required by CUpnpFileSharing API - */ - TInt iMatchCount; - - /** - * temporary storage for object count when querying items from media - * server - */ - TInt iObjectCount; - }; - - -#endif // __UPNPCONTAINERCHECKERAO_H__