diff -r 608f67c22514 -r 896e9dbc5f19 internetradio2.0/isdsclientinc/isdsclientdll.h --- a/internetradio2.0/isdsclientinc/isdsclientdll.h Tue Jul 06 14:07:20 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,399 +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: ?Description -* -*/ - - -#ifndef ISDSCLIENTDLL_H -#define ISDSCLIENTDLL_H - -#include - -#include "ircacheobserver.h" -#include "irdataproviderobserver.h" -#include "irlanguagemapper.h" -#include "irparserobserver.h" - -class CIRCacheMgmt; -class CIRDataProvider; -class CIRHttpRequestData; -class CIRIsdsPreset; -class CIRReportGenerator; -class CIRSettings; -class CIRXMLContentHandler; -class MIsdsResponseObserver; - -/** - * This class is the one which acts as a interface between UI and network - * component which interacts with the isds server.It provides the data to - * be diplayed to the UI either from cache or fetches it from the ISDS - * server. - * - * - * @code - * creates the instance of isdsclient - * iISDSClient = CIRIsdsClient::NewL(*this , iIRSettings->GetISDSBaseUrlL()); - * iISDSClient->IRIsdsClientIntefaceL(EGenre); //requests for genre data - * //requests for selected channel - * iISDSClient->IRIsdsClientIntefaceL(iIndex, CIRIsdsClient::EChannels); - * //cancels any previous requests - * iISDSClient->IRISDSCancelRequest(); - * //gets irid - * iISDSClient->IRGetIRIDL(); - * iISDSClient->GetOtaStatusL(forceUpdate);//gets ota update status - * iISDSClient->IRISDSSearchL(aIsdsSearchString); - * iISDSClient->IRISDSPostL(pathtopost); - * SyncPresetL(iUi->iFavPresets->iFavPresetList->At(aUrlIndex)->GetId(), - * iUi->iFavPresets->iFavPresetList->At(aUrlIndex)->GetLastModifiedTime()); - * iISDSClient->ReleaseResources(); - * @endcode - * - */ -NONSHARABLE_CLASS( CIRIsdsClient ): public CBase , - public MIRDataProviderObserver, - public MIRParserObserver, - public MIRCacheObserver - { -public://public data - -/** - * These Enums correspond to a particular UI event which - * requires request to be made to isds. - */ - enum TIRIsdsclientInterfaceIDs - { - EGenre, - ELanguages, - ECountries, - Ehotpicks - }; - - - enum TIRIsdsClientInterfaces - { - ECatagory, - EChannels, - EPresets, - EOtaInfo - }; -/** -*type of data recieved from ISDS -*/ - enum TDataRecieved - { - ECategoryInfoRecieved, - EChannelListRecieved, - EPresetDataRecieved, - EOtaInfoRecieved, - EIridRecieved, - ESessionLogRecieved - }; - -public: - - /** - * CIRIsdsClient::NewL(MIsdsResponseObserver& aobserver) - * Used by UI to create instance of CIRIsdsClient. - */ - IMPORT_C static CIRIsdsClient* NewL(MIsdsResponseObserver& aobserver, - const TDesC& aISDSBaseUrl); - - - /** - * CIRIsdsClient::NewLC(MIsdsResponseObserver& aobserver) - * Creates instance of CIRIsdsClient. - */ - static CIRIsdsClient* NewLC(MIsdsResponseObserver& aobserver, - const TDesC& aISDSBaseUrl); - - - /** - * CIRIsdsClient::~CIRIsdsClient() - * Destructor - */ - ~CIRIsdsClient(); - - - /** - * CIRIsdsClient::ConstructL() - * Symbian two phased constructor - */ - void ConstructL(const TDesC& aISDSBaseUrl); - - - /** - * CIRIsdsClient::CIRIsdsClient(MIsdsResponseObserver& aobserver) - * Default constructor - */ - CIRIsdsClient(MIsdsResponseObserver& aobserver); - - - /** - * void CIRIsdsClientInteface(TIRIsdsclientInterfaceIDs aISDSClientRequest) - * Called by UI to make request to ISDS for catogories - * @param :ENUM value depending on catogory which user wants to explore - */ - IMPORT_C TBool IRIsdsClientIntefaceL( - TIRIsdsclientInterfaceIDs aISDSClientRequest); - - - IMPORT_C TBool IRIsdsIsCategoryCachedL( - TIRIsdsclientInterfaceIDs aISDSClientRequest); - /** - * void CIRIsdsClientInteface(TUint aSelectedOption,TIRIsdsClientInterfaces aChoice) - * This API is used by the UI to make request for isds listed channels - * @param : aSelectedOption-returns the index of the option selected by the user - * @param : aChoice-ENUM value specifies what data is expected preset or channel data - */ - IMPORT_C TBool IRIsdsClientIntefaceL(TUint aSelectedOption, - TIRIsdsClientInterfaces aChoice,TInt aHistoryBool=EFalse); - - - IMPORT_C TBool IRIsdsIsChannelCachedL(TUint aSelectedOption); - - - - /** - * void CIRISDSCancelRequest() - * This API is used by the UI to cancel a request made. - */ - - IMPORT_C void IRISDSCancelRequest(); - - /** - * void CIRGetIRID() - * This API is used to get IR ID from isds server - * isds if it doesnt have one - */ - IMPORT_C void IRGetIRIDL(); - - /** - * void GetOtaStatusL() - * This API is used to get the OTA status from the server - * @param TBool,if ETrue the call is from UI and a call back has to be made to ui - * TBool contains the source of update (cache/isds)upon return.Used by Ui to load the - * loading screen based on this value. - */ - IMPORT_C void GetOtaStatusL(TBool& aDataFrom); - - /** - * void CIRISDSSearch(TDesC& aSearchString) - * This API is used by the UI to search channels from isds - * @param : aSearchString-search string entered by user - */ - IMPORT_C void IRISDSSearchL(const TDesC& aSearchString); - - /** - * void IRISDSPostL(TFileName &aFileName) - *function used to post the sesson logs - *@param sesson log file name - */ - IMPORT_C void IRISDSPostL(TFileName &aFileName); - - - - - IMPORT_C CIRDataProvider* GetDataProvider(); - - /* - * void IRISDSMultiSearch() - * function used to search the stations by multi conditions - * @param - */ - IMPORT_C void IRISDSMultiSearchL(const TDesC& aGenreID, const TDesC& aCountryID, const TDesC& aLanguageID, const TDesC& aSearchText); - - - - /** - * void RHttpGeneralError(TInt aErrorCode) - * It is a call back function called by the data provider - * to return error code in case of some error. - *@param error code - */ - void IRHttpGeneralError(TInt aErrCode); - - /** - * void IRHttpDataReceived(TDesC& aXmlPath) - * It is a call back function called by the data provider - * once it recieves the XML data - */ - void IRHttpDataReceived(const TDesC& aXmlPath,const CIRHttpResponseData& aResponseHeaders); - - /** - * void IRHttpContentNotChanged() - * this is call back funtion called by Dataprovider in case - * HTTP content isnt changed by ISDS - */ - void IRHttpResponseCodeReceived( TInt aResponseCode, - CIRHttpResponseData& aResponseHeaders ); - - /** - * void ParseError() - * Call back funtion called by XML parser in case of parsing error - */ - void ParseError( TInt aErrorCode ); - - /** - * void ParsedStructureL(TInt aChoice) - * Call back funtion called by XML parser after parsing is over - * @param : aChoice -specifies the type of data recieved from ISDS - */ - void ParsedStructureL(TInt aChoice); - - /** - * void CacheError() - * Called from cachemgmt in case of an error - */ - void CacheError(); - - /** - * void CacheError() - * Called from cachemgmt in case of cache failure - */ - void CacheFailed(); - - /** - * void CacheError() - * Called from cachemgmt in case cache is invalid - */ - void CacheInvalid(); - - /** - * void CacheError() - * Called from cachemgmt data retrival is successful - *@param aChoice,it gives the data type of the cache - */ - void CachedStructureL(TInt aChoice); - - /** - *void CIRIsdsClient::SyncPresetL() - *Used to syncronize presets - *@param TInt,TDesC, the preset id and the last modified tag for the preset - */ - IMPORT_C TInt SyncPresetL(TInt aPresetId,const TDesC&aIfModifiedSince); - - /** - *void CIRIsdsClient::ConvertToTimeDate() - *Used to convert the date-time stamp to Symbian DateTime format - *@param TDesC&,TDateTime& the time stamp and the DateTime ref to - *hold the new data - */ - void ConvertToTimeDate(const TDesC& aTime,TDateTime& aDateTime) const; - - /** - *ReleaseResources() - *relese the resources held by isds client - */ - IMPORT_C void ReleaseResources(); - - /** - *CIRIsdsClient::GetMultiplePresetsL() - *for multiple selected presets to be saved - *@param RArray&,TBool,the array of preset ids to be saved,return value - */ - IMPORT_C void GetMultiplePresetsL(const RArray& aIndexArray, - TBool& aDataFrom); - - /** - *CIRIsdsClient::PurgeOtaInfoL - *delete all the data cached wrt OTA - *reset the flags - *function called when the ota info available earlier is no longer valid - */ - IMPORT_C void PurgeOtaInfoL(); - - -private: - /** - *void IRHttpIssueRequestL(CIRHttpRequestData &); - *for making http request to Data Provider with Request object - *@param aRequestObject :The request object which has URL and other details - */ - void IRHttpIssueRequestL(CIRHttpRequestData &aRequestObject); - - /** - * void EncodeUrlL( TDes &aQuery ) - * Encode the url using EEscapeUrlEncoded mode, This is used in session log - * @param url to be encoded - */ - void EncodeUrlL( TDes& aQuery ); - - - - -private: - //Session log - TBuf<256> iBrowseUrl; - TInt iChannId; - - //XML parser instance - CIRXMLContentHandler* iXmlReader; - - //ISDS observer reference - MIsdsResponseObserver& iIsdsResponseObserver; - - //DataProvider instance - CIRDataProvider *iDataProvider; - - //cache mgmt - CIRCacheMgmt *iCache; - CIRSettings *iSettings; - CArrayPtrFlat* iSendPreset; - // used to store the isds base URL - HBufC* iISDSBaseUrl; - //contains catogory base URL - TBuf<256> iCatgoryURL; - //contains search base URL - TBuf<256> iSearchURL; - //contains irid base URL - TBuf<256> iGetIridUrl; - TBuf<128> iGetOtaStatus; - TBool iSyncRequest;//1 if the preset data request is a sync request,0 if general request - TInt iPresetToBeSynced;//keeps the presetid for which the sync request has been sent - TBool iDataFrom;//data from isds =1,isds =0 - TBool iCatDataFrom;//0 if isds,1 for cache - TBool iChannelDataFrom;//0 if isds,1 for cache - TBuf <256> iCachePath; - TBool iOtaReqFrom;//0 internal 1from UI - //session log - CIRReportGenerator* iBrowseReport; - //conditionalGet - TBool iConditonalGet; - TTime iLastModifiedTime; - TInt iRequestType; - TBool iForceGet; - TBool iOnceForTheUsageSession; - TBool iPostResponsePending; - TBufC8 iShortLanguageCode; - - /** - * boolean for to track whether the cache request has made or not - */ - TBool iCacheReqMade; - TBool iIRIDPending; - TBool iReqPending; - TBool iReqFromGetIRIDFunc; - TBool iReqFromSync; - - /** - * to store further pending request objects - */ - CIRHttpRequestData* iTempRequestObject; - -}; - -#endif //ISDSCLIENTDLL_H - -