diff -r 000000000000 -r 96612d01cf9f videofeeds/server/IptvEpgManager/inc/CIptvEpgVodClientImpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videofeeds/server/IptvEpgManager/inc/CIptvEpgVodClientImpl.h Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,169 @@ +/* +* Copyright (c) 2004-2005 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: +* +*/ + + + + +#ifndef CIPTVEPGVODCLIENTIMPL_H +#define CIPTVEPGVODCLIENTIMPL_H + +// INCLUDES +#include +#include "CIptvUtil.h" + +// FORWARD DECLARATIONS +class CIptvEpgDb; +class CIptvVodContentCategoryBriefDetails; +class CIptvVodContentContentBriefDetails; +class CIptvVodContentContentFullDetails; +class CIptvEpgSession; +class CIptvMediaContent; +class CIptvSearchManager; + +// CLASS DECLARATION +class CIptvEpgVodClientImpl : public CBase + { + public: + + /** + * Two-phased constructor. + * @param + */ + static CIptvEpgVodClientImpl* NewL( CIptvEpgDb& aEpgDb, + CIptvEpgSession& aSession, + CIptvSearchManager* aSearchManager ); + + /** + * Destructor. + */ + ~CIptvEpgVodClientImpl(); + + /** + * Get list of ECG categories. + * The ownership of the returned list is transferred to caller. + * The order of categories is defined by database originated from service provider. + * @since + * @param aParentCategoryId Points to category ID which sub-categories should be listed. If NULL, the root is referenced. + * @param aCategoryList Reference to a storage where pointer to created category list is returned. + * @return Error code, KErrNone if no errors, + * KErrCouldNotConnect if server is needs permission for connection, otherwise one of the system wide error codes. + */ + TInt GetEcgCategoryListL(TIptvCategoryId aParentCategoryId, RPointerArray& aCategoryList); + + /** + * Get full detais of one category item. + * The ownership of the returned data is transferred to caller. + * @since Engine 1.1 + * @param aCategoryId Selected category ID identifier. + * @param aCategory Reference to a full details data returned. + * @return Error code, KErrNone if no errors. + */ + TInt GetCategoryDetailsL(TIptvCategoryId aCategoryId, CIptvVodContentCategoryBriefDetails& aCategory); + + /** + * Get parent category ID identifier. + * This method allows application to browse toward root category, then two consecutive calls are needed. + * @since + * @param aCategoryId Points to category ID which parent category is requested. + * @param aParentId Reference to a storage where parent ID is returned. + * @return Error code, KErrNone if no errors, + * KErrCouldNotConnect if server is needs permission for connection, otherwise one of the system wide error codes. + */ + TInt GetParentCategoryL(TIptvCategoryId aCategoryId, TIptvCategoryId& aParentId); + + /** + * Get list of ECG contents in the specified category in order defined by database originated from service provider. + * The ownership of the returned list is transferred to caller. + * @since + * @param aCategoryId Selected category ID identifier + * @param aSearchString A search string used to filter contents search. If NULL, no filtering issued. + * @param aFrom The start index for listed contents. If NULL, start from the first one. + * @param aAmount Amount of content elementes to be listes. If NULL, all starting from aFrom. + * @param aTotalAmount Poiter to a variable where total amount of content is returned. + * @param aEcgList Reference to returned ECG list items. + * @return Error code, KErrNone if no errors, + * KErrCouldNotConnect if server is needs permission for connection, otherwise one of the system wide error codes. + */ + TInt GetEcgListL(TIptvCategoryId aCategoryId, TDesC& aSearchString, TUint32 aFrom, TUint32 aAmount, TUint32& aTotalAmount, RPointerArray& aEcgList); + + /** + * Get list of all ECG contents in alphabetical order. + * The ownership of the returned list is transferred to caller. + * @since + * @param aSearchString A search string used to filter contents search. If NULL, no filtering issued. + * @param aFrom The start index for listed contents. If NULL, start from the first one. + * @param aAmount Amount of content elementes to be listes. If NULL, all starting from aFrom. + * @param aTotalAmount Poiter to a variable where total amount of content is returned. + * @param aEcgList Reference to returned ECG list items. + * @return Error code, KErrNone if no errors, + * KErrCouldNotConnect if server is needs permission for connection, otherwise one of the system wide error codes. + */ + TInt GetEcgAllListL(TDesC& aSearchString, TUint32 aFrom, TUint32 aAmount, TUint32& aTotalAmount, RPointerArray& aEcgList); + + /** + * Get full detais of one content item. + * The ownership of the returned data is transferred to caller. + * @since + * @param aContentId Selected content ID identifier. + * @param aContentFullDetails Reference to returned full details data. + * @return Error code, KErrNone if no errors, + * KErrCouldNotConnect if server is needs permission for connection, otherwise one of the system wide error codes. + */ + TInt GetContentDetailsL(TIptvContentId aContentId, CIptvVodContentContentFullDetails& aContentFullDetails); + + /** + * Get time when service was last updated. + * @since + * @param aTime Reference to TTime object. + * @return Error code, KErrNone if no errors, otherwise one of the system wide error codes. + */ + TInt GetUpdateTimeL(TTime& aTime); + + // Engine 1.1 + TInt GetContentAccessListL(TUint32 aContentId, RPointerArray& aContents); + CIptvMediaContent* GetContentAccessL(TUint32 aContentId, TUint32 aIndex); + TInt SetLastPositionL(TUint32 aId, TUint32 aIndex, TUint32 aPosition); + TInt SetMpxIdL( TUint32 aContentId, TUint32 aCaIndex, TUint32 aMpxId ); + TBool IsVodUpdateNeededL(); + private: // New functions + /** + * C++ default constructor. + */ + CIptvEpgVodClientImpl( CIptvEpgDb& aEpgDb, + CIptvEpgSession& aSession, + CIptvSearchManager* aSearchManager ); + + /** + * By default Symbian 2nd phase constructor is private. + * @param + */ + void ConstructL(); + + private: // Data members + + CIptvEpgDb& iEpgDb; + + CIptvSearchManager* iSearchManager; + + RArray iCategories; + + CIptvEpgSession& iSession; + }; + +#endif // CIPTVEPGVODCLIENTIMPL_H + +// End of File