videocollection/mpxmyvideoscollection/inc/vcxmyvideosopenhandler.h
changeset 0 96612d01cf9f
child 15 cf5481c2bc0b
child 26 67eb01668b0e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videocollection/mpxmyvideoscollection/inc/vcxmyvideosopenhandler.h	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,113 @@
+/*
+* Copyright (c) 2007 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:   Handles collection Open operation related functionality*
+*/
+
+
+
+#ifndef VCXMYVIDEOSOPENHANDLER_H
+#define VCXMYVIDEOSOPENHANDLER_H
+
+class CVcxMyVideosCollectionPlugin;
+class MMPXCollectionPluginObserver;
+class CVcxMyVideosMdsDb;
+
+/**
+ */
+NONSHARABLE_CLASS( CVcxMyVideosOpenHandler ) : public CBase
+    {
+    friend class CVcxMyVideosVideoCache;
+    
+public:
+    /**
+    * Two-phased constructor
+    */
+    static CVcxMyVideosOpenHandler* NewL( CVcxMyVideosCollectionPlugin& aCollection,
+            CVcxMyVideosVideoCache& aCache,
+            CVcxMyVideosMdsDb& aMds );
+
+    /**
+    * Destructor
+    */
+    virtual ~CVcxMyVideosOpenHandler();
+
+public:
+
+    /**
+    * Handle collection Open operation.
+    *
+    * @param aPath  Path to open.
+    */
+    void OpenL( const CMPXCollectionPath& aPath );
+
+    /**
+    * Leaving version of HandleCreateVideoListResp.
+    * Handler function for list fetching events. This callback is called as a response
+    * to iCache.CreateVideoListL().
+    *
+    * @param aVideoList           List of videos fetched from MDS.
+    * @param aNewItemsStartIndex  Start position for the new items added.
+    * @param aComplete            ETrue if list is complete and no more items are expected,
+    *                             EFalse if there are more to come.
+    */
+    void DoHandleCreateVideoListRespL(
+            CMPXMedia* aVideoList, TInt aNewItemsStartIndex, TBool aComplete );
+            
+private:
+    /**
+    * 2nd-phase Constructor
+    */
+    void ConstructL();
+
+    /**
+    * Default Constructor
+    */
+    CVcxMyVideosOpenHandler( CVcxMyVideosCollectionPlugin& aCollection,
+            CVcxMyVideosVideoCache& aCache,
+            CVcxMyVideosMdsDb& aMds );
+
+private: // data
+
+    /**
+    * Collection plugin main class. Owner of this object.
+    */
+    CVcxMyVideosCollectionPlugin& iCollection;
+        
+    /**
+    * Videos cache, owned by iCollection. Reference is stored here
+    * just to avoid one pointer access.
+    */
+    CVcxMyVideosVideoCache& iCache;
+    
+    /**
+    * Object for accessing MDS database, owned by iCollection. Reference is stored here
+    * just to avoid one pointer access.
+    */
+    CVcxMyVideosMdsDb& iMds;
+
+    /**
+    * The category ids being opened are stored here. These values are used
+    * to filter list when items arrive from MDS. KVcxMvcCategoryIdAll category is not listed here.
+    * This is in sync with iVideoListsBeingOpened.
+    */
+    RArray<TInt> iCategoryIdsBeingOpened;
+    
+    /**
+    * Video lists for categories being opened are stored here.
+    * This is in sync with iCategoryIdsBeingOpened.
+    */
+    RArray<CMPXMedia*> iVideoListsBeingOpened;
+    };
+
+#endif // VCXMYVIDEOSACTIVETASK_H