--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/clientapi/inc/CIptvMyVideosClient.h Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,756 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: My Videos Client API header file.*
+*/
+
+
+
+
+#ifndef CIPTVMYVIDEOSCLIENT_H
+#define CIPTVMYVIDEOSCLIENT_H
+
+#include <e32base.h>
+#include "CIptvUtil.h"
+#include "MIptvMyVideos.h"
+#include "RIptvClientSession.h"
+
+class CIptvMyVideosVideoBriefDetails;
+class CIptvMyVideosVideoFullDetails;
+class CIptvMyVideosFolder;
+class CIptvMyVideosGlobalFileId;
+class CIptvMyVideosGlobalFolderId;
+class MIptvMyVideosClientObserver;
+class CIptvMyVideosContentUpdateObserver;
+class CIptvMyVideosTotalVideoLengthObserver;
+class CIptvMyVideosCopyOrMoveObserver;
+
+/**
+ * My Videos Client API.
+ *
+ * @lib IptvEngineClient.dll
+ * @since
+ */
+class CIptvMyVideosClient : public CActive,
+ public MIptvMyVideos
+ {
+
+public:
+
+ /**
+ * Two-phased constructor.
+ *
+ * @param aClientObserver Observer.
+ * @param aMaintenance In MDS version only MDS maintenance handling client
+ * sets this parameter to true. In legacy DB version maintenance is
+ * performed by default and for example MobileTV client should set
+ * this to true to SKIP the maintenance.
+ * @return New CIptvMyVideosClient object.
+ */
+ static IMPORT_C CIptvMyVideosClient* NewL(
+ MIptvMyVideosClientObserver& aClientObserver,
+ TBool aMaintenance = EFalse );
+
+ /**
+ * Two-phased constructor.
+ *
+ * @param aClientObserver Observer.
+ * @param aMaintenance In MDS version only MDS maintenance handling client
+ * sets this parameter to true. In legacy DB version maintenance is
+ * performed by default and for example MobileTV client should set
+ * this to true to SKIP the maintenance.
+ * @return New CIptvMyVideosClient object.
+ */
+ static IMPORT_C CIptvMyVideosClient* NewLC(
+ MIptvMyVideosClientObserver& aClientObserver,
+ TBool aMaintenance = EFalse );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CIptvMyVideosClient();
+
+// From MIptvMyVideos
+
+ /**
+ * Gets folder list in the alphabetical order.
+ *
+ * @param aParentFolderId Points to folder ID which sub-folders should be listed.
+ * Note that the root folder ID is generated by CIptvMyVideosGlobalFolderId::NewRootFolderL().
+ * @param aFrom The start index for listed folders.
+ * @param aAmount Amount of folders to be listed. If zero, all are listed.
+ * @param aTotalAmount Reference to a variable where total amount of folders is returned.
+ * @param aFolderList Reference to a list of items returned.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt GetFolderListL(
+ CIptvMyVideosGlobalFolderId& aParentFolderId,
+ TUint32 aFrom,
+ TUint32 aAmount,
+ TUint32& aTotalAmount,
+ RPointerArray<CIptvMyVideosFolder>& aFolderList );
+
+ /**
+ * Gets parent forlder ID identifier.
+ * Note that at the beginning of the browse operation, the root folder ID is generated by
+ * CIptvMyVideosGlobalFolderId::NewRootFolderL().
+ *
+ * @param aFolderId Points to a folder ID which parent folder is requested.
+ * @param aParentFolder Reference to a storage where to parent folder ID is returned.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt GetParentFolderL(
+ CIptvMyVideosGlobalFolderId& aFolderId,
+ CIptvMyVideosGlobalFolderId& aParentFolder );
+
+ /**
+ * Gets folder name.
+ *
+ * @param aFolderId ID of the folder which name is requested.
+ * @param aName On return, name of the folder.
+ * @return KErrNone or one of the system wide error codes.
+ */
+ IMPORT_C TInt GetFolderNameL(
+ CIptvMyVideosGlobalFolderId& aFolderId,
+ TDes& aName);
+
+ /**
+ * Delete folder asynchronously.
+ * Deletion includes all sub forlders and files at the tree.
+ * MIptvMyVideosClientObserver::DeleteResponse is called when operation is finished.
+ *
+ * @param aFolderId Points to folder ID to be deleted.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt DeleteFolderReqL(
+ CIptvMyVideosGlobalFolderId& aFolderId );
+
+ /**
+ * Delete folder.
+ * Deletion includes all sub forlders and files at the tree.
+ *
+ * @param aFolderId Points to folder ID to be deleted.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt DeleteFolderL(
+ CIptvMyVideosGlobalFolderId& aFolderId );
+
+ /**
+ * Gets a video list in a chronological order.
+ *
+ * @param aParentFolderId Points to folder ID which video files should be listed.
+ * Note that the root folder ID is generated by
+ * CIptvMyVideosGlobalFolderId::NewRootFolderL().
+ * @param aFrom The start index for listed folders.
+ * @param aAmount Amount of folders to be listed. If zero, all listed.
+ * @param aTotalAmount Reference to a variable where total amount of folders is returned.
+ * @param aVideoList Reference to a list of items returned.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt GetVideoListL(
+ CIptvMyVideosGlobalFolderId& aParentFolderId,
+ TUint32 aFrom,
+ TUint32 aAmount,
+ TUint32& aTotalAmount,
+ RPointerArray<CIptvMyVideosVideoBriefDetails>& aVideoList );
+
+ /**
+ * Gets full video details.
+ *
+ * @param aFileId Identifier to a video file requested.
+ * @param aFullDetails Reference to a list of items returned.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt GetVideoDetailsL(
+ CIptvMyVideosGlobalFileId& aFileId,
+ CIptvMyVideosVideoFullDetails& aFullDetails );
+
+ /**
+ * Gets full video details by file localpath
+ *
+ * @since R2.0
+ * @param aLocalPath Path to video file, used as search key.
+ * @param aFullDetails Reference to a item to be returned.
+ * @return Error code, KErrNone if no errors, KErrNotFound if there is no such
+ * video. On unexpected error, one of the other system wide error codes.
+ */
+ IMPORT_C TInt GetVideoDetailsForPathL(
+ const TDesC& aLocalPath,
+ CIptvMyVideosVideoFullDetails& aFullDetails );
+
+ /**
+ * Requests total video lengt and total file size (sum of all videos).
+ * The result is returned asynchronously trough observer callback.
+ *
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt GetTotalVideoLengthRequestL();
+
+ /**
+ * Sets video details information.
+ *
+ * @param aVideoFullDetails New video details information.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt SetVideoDetailsL(
+ CIptvMyVideosVideoFullDetails& aVideoFullDetails );
+
+ /**
+ * Deletes a video asynchronously.
+ * Operation includes clean up that removes files from file system,
+ * deletes data related to FileId and releases FileId identifier.
+ * MIptvMyVideosClientObserver::DeleteResponse is called when operation is finished.
+ *
+ * @param aFileId File ID identifier for the video to be deleted.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt DeleteVideoReqL(
+ CIptvMyVideosGlobalFileId& aFileId );
+
+ /**
+ * Deletes a video.
+ * Operation includes clean up that removes files from file system,
+ * deletes data related to FileId and releases FileId identifier.
+ *
+ * @param aFileId File ID identifier for the video to be deleted.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt DeleteVideoL(
+ CIptvMyVideosGlobalFileId& aFileId );
+
+ /**
+ * Copy video file asynchronously to another My Videos Folder.
+ * Target drive must be different that source drive.
+ * MIptvMyVideosClientObserver::CopyOrMoveComplete is called when operation is finished.
+ *
+ * @param aSourceFileId Source video file ID to be copied.
+ * @param aTargetFolderId My Videos target folder where to be copied. Note if target is a root,
+ * that root folder ID is generated by CIptvMyVideosGlobalFolderId::NewRootFolderL() with a drive letter.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt CopyReqL(
+ CIptvMyVideosGlobalFileId& aSourceFileId,
+ CIptvMyVideosGlobalFolderId& aTargetFolderId );
+
+ /**
+ * Copy video file synchronously to another My Videos Folder.
+ * Target drive must be different that source drive.
+ *
+ * @param aSourceFileId Source video file ID to be copied.
+ * @param aTargetFolderId My Videos target folder where to be copied. Note if target is a root, that root
+ * folder ID is generated by CIptvMyVideosGlobalFolderId::NewRootFolderL() with a drive letter.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt CopyL(
+ CIptvMyVideosGlobalFileId& aSourceFileId,
+ CIptvMyVideosGlobalFolderId& aTargetFolderId );
+
+ /**
+ * Copy My Videos folder tree and videos asynchronously.
+ * Target drive must be different that source drive.
+ * MIptvMyVideosClientObserver::CopyOrMoveComplete is called when operation is finished.
+ *
+ * @param aSourceFolderId Source folder ID to be copied.
+ * @param aTargetFolderId My Videos target folder where to be copied. Note if target is a root, that
+ * root folder ID is generated by CIptvMyVideosGlobalFolderId::NewRootFolderL() with a drive letter.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt CopyReqL(
+ CIptvMyVideosGlobalFolderId& aSourceFolderId,
+ CIptvMyVideosGlobalFolderId& aTargetFolderId );
+
+ /**
+ * Copy My Videos folder tree and videos synchronously.
+ * Target drive must be different that source drive.
+ *
+ * @param aSourceFolderId Source folder ID to be copied.
+ * @param aTargetFolderId My Videos target folder where to be copied. Note if target is a root, that
+ * root folder ID is generated by CIptvMyVideosGlobalFolderId::NewRootFolderL() with a drive letter.
+ * @param aFailed On return, count of items that could not be copied.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt CopyL(
+ CIptvMyVideosGlobalFolderId& aSourceFolderId,
+ CIptvMyVideosGlobalFolderId& aTargetFolderId,
+ TUint32& aFailed );
+
+ /**
+ * Move video file to another My Videos Folder asynchronously.
+ * If target is in an another physical file system drive, actual video contents is also moved.
+ * MIptvMyVideosClientObserver::CopyOrMoveComplete is called when operation is finished.
+ *
+ * @param aSourceFileId Source video file ID to be moved.
+ * @param aTargetFolderId My Videos target folder where to be moved. Note if target is a root, that
+ * root folder ID is generated by CIptvMyVideosGlobalFolderId::NewRootFolderL() with a drive letter.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt MoveReqL(
+ CIptvMyVideosGlobalFileId& aSourceFileId,
+ CIptvMyVideosGlobalFolderId& aTargetFolderId );
+
+ /**
+ * Move video file to another My Videos Folder synchronously.
+ * If target is in an another physical file system drive, actual video contents is also moved.
+ *
+ * @param aSourceFileId Source video file ID to be moved.
+ * @param aTargetFolderId My Videos target folder where to be moved. Note if target is a root, that root
+ * folder ID is generated by CIptvMyVideosGlobalFolderId::NewRootFolderL() with a drive letter.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt MoveL(
+ CIptvMyVideosGlobalFileId& aSourceFileId,
+ CIptvMyVideosGlobalFolderId& aTargetFolderId );
+
+ /**
+ * Move My Videos folder tree and videos asynchronously.
+ * If target is in an another physical file system drive, actual video contents is also moved.
+ * MIptvMyVideosClientObserver::CopyOrMoveComplete is called when operation is finished.
+ *
+ * @param aSourceFolderId Source folder ID to be moved.
+ * @param aTargetFolderId My Videos target folder where to be moved. Note if target is a root, that
+ * root folder ID is generated by CIptvMyVideosGlobalFolderId::NewRootFolderL() with a drive letter.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt MoveReqL(
+ CIptvMyVideosGlobalFolderId& aSourceFolderId,
+ CIptvMyVideosGlobalFolderId& aTargetFolderId );
+
+ /**
+ * Move My Videos folder tree and videos synchronously.
+ * If target is in an another physical file system drive, actual video contents is also moved.
+ *
+ * @param aSourceFolderId Source folder ID to be moved.
+ * @param aTargetFolderId My Videos target folder where to be moved. Note if target is a root, that root
+ * folder ID is generated by CIptvMyVideosGlobalFolderId::NewRootFolderL() with a drive letter.
+ * @param aFailed On return, count of items that could not be moved.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt MoveL(
+ CIptvMyVideosGlobalFolderId& aSourceFolderId,
+ CIptvMyVideosGlobalFolderId& aTargetFolderId,
+ TUint32& aFailed );
+
+ /**
+ * Cancels any ongoing move or copy operation.
+ * MIptvMyVideosClientObserver::CopyOrMoveComplete is called when cancel is actually done.
+ *
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt CancelCopyOrMoveL();
+
+ /**
+ * Rename My Videos folder.
+ *
+ * @param aFolderId Folder to be renamed.
+ * @param aName New name string.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt RenameDatabaseFolderL(
+ CIptvMyVideosGlobalFolderId& aFolderId,
+ TDesC& aName );
+
+ /**
+ * Create a new My Videos folder.
+ *
+ * @param aParentFolderId Parent folder ID where the new folder is created. Note if the parent folder is a root,
+ * that root folder ID is generated by CIptvMyVideosGlobalFolderId::NewRootFolderL() with a drive letter.
+ * @param aName Name fot the new folder.
+ * @param aNewFolderId Reference to a storage where new folder ID is returned.
+ * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt NewDatabaseFolderL(
+ CIptvMyVideosGlobalFolderId& aParentFolderId,
+ TDesC& aName,
+ CIptvMyVideosGlobalFolderId& aNewFolderId );
+
+ /**
+ * Adds a new video entry to the database.
+ *
+ * @since R2.0
+ * @param aFullDetails Full details structure of the video to be added to database.
+ * Note, this parameter is both input and output parameter.
+ * @param aVideoType Type of video, see enumeration TVideoType.
+ * @param aSizeEstimateInKiloBytes Estimate of the size of the new video. Method will ensure
+ * that there is enough free space on disk for the video.
+ * @return Error code, KErrNone if no errors, KErrNotSupported if video type to add is not supported,
+ * KErrArgument if arguments are invalid, KErrDiskFull if there is no space for new video,
+ * KErrNotReady if external resources are not available, and possibly other error in
+ * unexpected error cases.
+ */
+ IMPORT_C TInt CreateVideoL(
+ CIptvMyVideosVideoFullDetails& aFullDetails,
+ TVideoType aVideoType,
+ TUint32 aSizeEstimateInKiloBytes );
+
+ /**
+ * Ensures that there is enough of free space on disk for new video. This version of the
+ * method cannot change the used drive, it just tries to free space on current drive.
+ *
+ * @since R2.0
+ * @param aFileId Global File ID of the file that needs the space.
+ * @param aRequiredSpaceInKiloBytes Required space (size of file) in kilobytes.
+ * @return Error code, KErrNone if no errors, KErrArgument if the argument is invalid,
+ * KErrDiskFull if cannot free enough space for video, and possibly other error
+ * in unexpected error cases.
+ */
+ IMPORT_C TInt EnsureFreeSpaceL(
+ CIptvMyVideosGlobalFileId& aFileId,
+ TUint32 aRequiredSpaceInKiloBytes );
+
+ /**
+ * Ensures that there is enough of free space on disk for new video. This version of the
+ * method might transfer the video to another drive if current drive cannot provide enough
+ * of free space. If the video is transferred, the original video entry is removed.
+ *
+ * @since R2.0
+ * @param aCurrentFileId Global File ID of the file that needs the space.
+ * @param aRequiredSpaceInKiloBytes Required space (size of file) in kilobytes.
+ * @param aNewFileId Possible new Global File ID of the file if file needs to
+ * be re-located on another drive. Matches original File ID
+ * if there is no need for re-location.
+ * @return Error code, KErrNone if no errors, KErrArgument if the argument is invalid,
+ * KErrDiskFull if video needs to be re-located to another drive, KErrCancel if
+ * cannot free enough space for video, and possibly other error in unexpected
+ * error cases.
+ */
+ IMPORT_C TInt EnsureFreeSpaceL(
+ CIptvMyVideosGlobalFileId& aCurrentFileId,
+ TUint32 aRequiredSpaceInKiloBytes,
+ CIptvMyVideosGlobalFileId& aNewFileId );
+
+ /**
+ * Count total video length and total file size (sum of all videos).
+ *
+ * @param aTotalPlayTime Total play time (not used).
+ * @param aTotalFileSize Total file size in kilo bytes.
+ * @return Error code,
+ * KErrNone if no errors,
+ * otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt GetTotalVideoLengthL(
+ TIptvPlayTime& aTotalPlayTime,
+ TIptvFileSize& aTotalFileSize );
+
+ /**
+ * Deletes all videos which are under downloading.
+ *
+ * @return Error code,
+ * KErrNone if no errors,
+ * otherwise one of the system wide error codes.
+ */
+ IMPORT_C TInt DeleteAllDownloadsL();
+
+private:
+
+ /**
+ * From CActive, handles an active object’s request completion event.
+ */
+ void RunL();
+
+ /**
+ * From CActive, implements cancellation of an outstanding request.
+ * This function is called as part of the active object’s Cancel().
+ */
+ void DoCancel();
+
+ /**
+ * From CActive, handles errors in RunL method.
+ */
+ TInt RunError( TInt aError );
+
+ /**
+ * C++ default constructor.
+ *
+ * @param aClientObserver Observer.
+ */
+ CIptvMyVideosClient( MIptvMyVideosClientObserver& aClientObserver );
+
+ /**
+ * Symbian 2nd phase constructor.
+ *
+ * @param aMaintenance In MDS version only MDS maintenance handling client
+ * sets this parameter to true. In legacy DB version maintenance is
+ * performed by default and for example MobileTV client should set
+ * this to true to SKIP the maintenance.
+ */
+ void ConstructL( TBool aMaintenance );
+
+protected: // Sending of initial requests to server.
+
+ /**
+ * Send request to server.
+ *
+ * @param aMessage Message to send.
+ * @param aFileIdParam Message parameter, global file Id.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt SendRequestL(
+ TInt aMessage, CIptvMyVideosGlobalFileId& aFileIdParam );
+
+ /**
+ * Send request to server.
+ *
+ * @param aMessage Message to send.
+ * @param aSourceFileId Message parameter, global file Id.
+ * @param aTargetFolderId Message parameter, global folder Id.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt SendRequestL(
+ TInt aMessage,
+ CIptvMyVideosGlobalFileId& aSourceFileId,
+ CIptvMyVideosGlobalFolderId& aTargetFolderId );
+
+ /**
+ * Send request to server.
+ *
+ * @param aMessage Message to send.
+ * @param aFolderIdParam Message parameter, global folder Id.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt SendRequestL(
+ TInt aMessage, CIptvMyVideosGlobalFolderId& aFolderIdParam );
+
+ /**
+ * Send request to server.
+ *
+ * @param aMessage Message to send.
+ * @param aFolderId Message parameter, global folder Id.
+ * @param aName Message parameter, name.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt SendRequestL(
+ TInt aMessage,
+ CIptvMyVideosGlobalFolderId& aFolderId,
+ const TDesC& aName );
+
+ /**
+ * Send request to server.
+ *
+ * @param aMessage Message to send.
+ * @param aSourceFolderId Message parameter, global folder Id.
+ * @param aTargetFolderId Message parameter, global folder Id.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt SendRequestL(
+ TInt aMessage,
+ CIptvMyVideosGlobalFolderId& aSourceFolderId,
+ CIptvMyVideosGlobalFolderId& aTargetFolderId );
+
+ /**
+ * Send request to server.
+ *
+ * @param aMessage Message to send.
+ * @param aFolderIdParam Message parameter, global folder Id.
+ * @param aUintParam1 Message parameter, TUint32.
+ * @param aUintParam2 Message parameter, TUint32.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt SendRequestL(
+ TInt aMessage,
+ CIptvMyVideosGlobalFolderId& aFolderIdParam,
+ TUint32 aUintParam1,
+ TUint32 aUintParam2 );
+
+ /**
+ * Send request to server.
+ *
+ * @param aMessage Message to send.
+ * @param aVideoFullDetails Message parameter, video full details.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt SendRequestL(
+ TInt aMessage,
+ CIptvMyVideosVideoFullDetails& aVideoFullDetails );
+
+ /**
+ * Send request to server.
+ *
+ * @param aMessage Message to send.
+ * @param aVideoFullDetails Message parameter, video full details.
+ * @param aUintParam1 Message parameter, TUint32.
+ * @param aUintParam2 Message parameter, TUint32.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt SendRequestL(
+ TInt aMessage,
+ CIptvMyVideosVideoFullDetails& aVideoFullDetails,
+ TUint32 aUintParam1,
+ TUint32 aUintParam2 );
+
+ /**
+ * Send request to server.
+ *
+ * @param aMessage Message to send.
+ * @param aFileIdParam Message parameter, global file Id.
+ * @param aUintParam Message parameter, TUint32.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt SendRequestL(
+ TInt aMessage,
+ CIptvMyVideosGlobalFileId& aFileIdParam,
+ TUint32 aUintParam );
+
+protected: // Handling servers replies to initial requests.
+
+ /**
+ * Handles received size reply and starts data request.
+ *
+ * @param aMessage Message.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt HandleMyVideosSizeReqL( TInt aMessage );
+
+ /**
+ * Generic method for finishing request with no response data.
+ *
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt HandleMyVideosReqL();
+
+ /**
+ * Handle get folder list data request.
+ *
+ * @param aTotalAmount On return, total amount of folders.
+ * @param aFolderList On return, folder list.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt HandleMyVideosGetFolderListDataReqL(
+ TUint32& aTotalAmount,
+ RPointerArray<CIptvMyVideosFolder>& aFolderList );
+
+ /**
+ * Handle get parent folder data request.
+ *
+ * @param aParentFolder On return, parent folder Id.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt HandleMyVideosGetParentFolderDataReqL(
+ CIptvMyVideosGlobalFolderId& aParentFolder );
+
+ /**
+ * Handle get folder name data request.
+ *
+ * @param On return, name.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt HandleMyVideosGetFolderNameDataReqL( TDes& aName );
+
+ /**
+ * Handle get video list data request.
+ *
+ * @param On return, total amount of videos.
+ * @param On return, list of videos.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt HandleMyVideosGetVideoListDataReqL(
+ TUint32& aTotalAmount,
+ RPointerArray<CIptvMyVideosVideoBriefDetails>& aVideoList );
+
+ /**
+ * Handle get video full details data request.
+ *
+ * @param On return, video full details.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt HandleMyVideosGetVideoDetailsDataReqL(
+ CIptvMyVideosVideoFullDetails& aFullDetails );
+
+ /**
+ * Handle copy folder data request.
+ *
+ * @param aFailed On return, count of failed items.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt HandleMyVideosCopyFolderDataReqL(
+ TUint32& aFailed );
+
+ /**
+ * Handle move folder data request.
+ *
+ * @param aFailed On return, count of failed items.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt HandleMyVideosMoveFolderDataReqL( TUint32& aFailed );
+
+ /**
+ * Handle new database folder data request.
+ *
+ * @param On return, Global folder Id of new folder.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt HandleMyVideosNewDatabaseFolderDataReqL(
+ CIptvMyVideosGlobalFolderId& aNewFolderId );
+
+ /**
+ * Handle ensure free space data request.
+ *
+ * @param On return, Global File Id of new file.
+ * @return KErrNone or one of system wide error codes.
+ */
+ TInt HandleMyVideosEnsureFreeSpaceDataReqL(
+ CIptvMyVideosGlobalFileId& aNewFileId );
+
+ /**
+ * Checks if a string has any of the characters that are invalid
+ * as a part of file name.
+ *
+ * @param aString String to check.
+ * @return ETrue if string inludes invalid characters.
+ */
+ TBool HasInvalidFileNameChars( const TDesC& aString );
+
+private: // Data
+
+ /**
+ * iClientObserver A referense to observer of the client which is making the requests.
+ */
+ MIptvMyVideosClientObserver& iClientObserver;
+
+ /**
+ * iSession, the server session.
+ */
+ RIptvClientSession iSession;
+
+ /**
+ * iMsg Heap object to restore memory for IPC messaging.
+ */
+ HBufC8* iMsg;
+
+ /**
+ * iMsgPtr Passed to RIptvClientSession object to store the sent and received data.
+ * Points to iData heap object.
+ */
+ TPtr8 iMsgPtr;
+
+ /**
+ * Observer for content update messages from server.
+ */
+ CIptvMyVideosContentUpdateObserver* iContentUpdateObserver;
+
+ /**
+ * Observer for total video length responses from server.
+ */
+ CIptvMyVideosTotalVideoLengthObserver* iTotalVideoLengthObserver;
+
+ /**
+ * Observer for copy or move completed responses from server.
+ */
+ CIptvMyVideosCopyOrMoveObserver* iCopyOrMoveObserver;
+
+ /**
+ * Active request of this object.
+ */
+ TInt iActiveRequest;
+ };
+
+#endif // CIPTVMYVIDEOSCLIENT_H