diff -r 608f67c22514 -r 896e9dbc5f19 internetradio2.0/sessionloginc/irsessionlogger.h --- a/internetradio2.0/sessionloginc/irsessionlogger.h Tue Jul 06 14:07:20 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,569 +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 IRSESSIONLOGGER_H -#define IRSESSIONLOGGER_H - -#include - -#include "irsessionparams.h" -#include "mirphoneinfoobserver.h" - -class CIRSessionDb; -class CIRSessionLogger; -class CIRSettings; -class CIRNmsLogDb; -class CIRNmsLogger; -class CPhoneInfo; -class MIRLogDbStatusObserver; - -/** - * This class is used to provide usage log, various function are to log session - * information as well as others, like browse log information. Session logs can be - * stored in internel data base for last 5 session, it is deleted only if the - * response is given. If more than 5 session is happening at any point of time - * first one based on session id is removed. - * When you end a session a gzip file is generated in private path - * This zip file has (xml file) session log in xml format - * This is single ton implementation use DeleteInstance to delete its - * instance - * - * @lib irsessionlog.lib - * @since S_60 3.0 - * - */ - -//============================ class declaration ======================== - - -NONSHARABLE_CLASS(CIRReportGenerator) : public CObject, - public MIRPhoneInfoObserver - { -//member function -public: - - /** - * Function: NewL - * Two phase constructor returns the instance of CIRReportGenerator - * this is a single ton implementation - * @note Deleting this object directly is not allowed. Please use Close(). - * @note CleanupClosePushL(generator) must be used if the object is to be pushed onto cleanup stack. - * @returns instance of CIRReportGenerator - */ - IMPORT_C static CIRReportGenerator* OpenL(); - -private: - /** - * Function: ~CIRReportGenerator - * default destructor - */ - ~CIRReportGenerator(); - - /** - * Function: ConstructL - * Two phase constructor - */ - void ConstructL(); - - /** - * Function: CIRReportGenerator - * default constructor - */ - CIRReportGenerator(); - -public: - - /** - * Function: LogServerResult - * logs server connection result - * @param URL to which connection is attempted - * @param response from server - */ - IMPORT_C void LogServerResult(const TDesC& aUrl,TResponse aResult); - - /** - * Function: LogSongRecog - * logs song recog - */ - IMPORT_C void LogSongRecog(); - - /** - * Function: UpdateCurrentBrowseNetwork - * logs network during browsing - * @param mcc+ mnc code of current network - */ - IMPORT_C void UpdateCurrentBrowseNetwork(TInt aNetwork); - - /** - * Function: LogBrowse - * logs browse url and status information - * @param browse url - * @param status information - */ - IMPORT_C void LogBrowse(const TDesC8& aUrl,TInt aStatus); - - /** - * Function: SessionStartedL - * starts a new session - */ - IMPORT_C void SessionStartedL(); - /** - * Function: NmsLogStartedL - * starts a new nmslog - */ - IMPORT_C void NmsLogStartedL(); - /** - * Function: SessionEnd - * marks the a session - */ - IMPORT_C void SessionEndL( TBool aForcedTermination ); - - /** - * Function: MarkSessionStart - * marks the a start of a session - */ - IMPORT_C void MarkSessionStart(); - - /** - * Function: HandleStopEvents - * function handle session state change events - * @param ETrue if session is progressing and EFalse if not progressing - */ - IMPORT_C void HandleStopEvents(TBool aIsSessionProgressing ); - - /** - * Function: ReStorePreviousSession - * restore the previous session - * @return ETrue if restoring is possible else returns EFalse - */ - IMPORT_C TBool ReStorePreviousSession(); - - - /** - * Function: UpdateTerminatedBy - * updates the termination status - * @param terminated by information - */ - IMPORT_C void UpdateTerminatedBy(TTerminationStatus aTerminatedBy); - - /** - * Function: UpdateConnectedFrom - * connected information is stored - * @param connected from information - */ - IMPORT_C void UpdateConnectedFrom(TConnectedFrom aConnectedFrom); - - /** - * Function: BrowseUrl - * logs browse url and result - * @param URL to which connection is attempted - * @param response from server - */ - IMPORT_C void BrowseUrl(const TDesC& aBrowseUrl,TInt aStatus); - - /** - * Function: UpdateChannelID - * updates the channel id - * @param channel id - */ - IMPORT_C void UpdateChannelID(TInt aChanneldID); - - /** - * Function: UpdateCurrentNetwork - * updates the current network - * @param current network - */ - IMPORT_C void UpdateCurrentNetwork(TInt aCurrentNetwork); - - /** - * Function: UpdateHomeOperator - * updates the home network - * @param home network - */ - IMPORT_C void UpdateHomeOperator(TInt aHomeOperator); - - /** - * Function: UpdateConnectionType - * updates the connection type - * @param connection type - */ - IMPORT_C void UpdateConnectionType(const TDesC& aConnectionType); - - /** - * Function : ReponseFromISDSObtained - * This function is called when session log is successfully sent - * removes all session log entries from sessiondb - */ - IMPORT_C void ReponseFromISDSObtained(); - - - /** - * The following methods are for Nms Event Usage Logging - */ - - - /** - * Function: UpdateNmsCurrentNetwork - * logs network during Music Store launching - * @param mcc+ mnc code of current network - */ - IMPORT_C void UpdateNmsCurrentNetwork(TInt aNetwork); - - /** - * Function: UpdateNmsHomeOperator - * logs network during Music Store launching - */ - IMPORT_C void UpdateNmsHomeOperator(TInt aNetwork); - - /** - * Function: WriteNmsLogtoXmlL - * logs nmsEvents to Xml file - */ - IMPORT_C void WriteNmsLogtoXmlL(); - /** - * Function: UpdateNmsType - * updates the Nms type - * @param Nms type - */ - IMPORT_C void UpdateNmsType(const TDesC& aNmsType); - /** - * Function: UpdateNmsChannelID - * updates the Nms channel id - * @param Nms channel id - */ - IMPORT_C void UpdateNmsChannelID(TInt aChanneldID); - - /** - * The following methods are for Song Recog Event Usage Logging - */ - - /** - * The following methods are used for sending out Usage Logging - */ - - /** - * Function: SetDbStatusObserser - * @param Db Status Observer - */ - IMPORT_C void SetDbStatusObserser(MIRLogDbStatusObserver *aDbStatusObserver); - - /** - * Function: ReportSent(); - * notify that the usage report is just sent out to isds server - */ - IMPORT_C void ReportSent(); -private: - - /** - * Function: CollectSettingsData - * collect information during starting of session - * like irid, version information. - */ - void CollectSettingsData(); - - /** - * Function: WriteToXmlL - * gathers the information and generates sesion log file and zip file - * file will be stored in private path - */ - void WriteToXmlL(); - - /** - * Function: WriteSessionData - * gathers session log data and writes to XML file - * @param no of urls tried to connect in that particular session - */ - void WriteSessionData(TInt aIndex); - - /** - * Function: WriteBrowseLog - * gathers browse log data and writes to XML file - */ - void WriteBrowseLog(); - - /** - * Function: ZipFileL - * generates the zip file from the input xml file - * output file is in gzip format and is stored in private path - */ - void ZipFileL(); - - /** - * Function: FormatDateTime - * formats the date time given in "%d-%d-%d %d:%d:%d GMT\n" format - * copies the result to a descriptor - * @param reference of descriptor to which the data is to be copied - * @param time to be copied - */ - void FormatDateTime(TDes& aBuffer,TDateTime aDateTime); - - /** - * Function : WriteSessionLog - * Write buffer content to log file - */ - void WriteBufferToLogFile(); - - /** - * Function : UnForceSessionEndedL - * Write session log - * @param instance of session which ended - */ - void UnForceSessionEndedL( CIRSessionLogger* aSession ); - - /** - * Function : ForcedSessionEndedL - * Write session log - */ - void ForcedSessionEndedL(); - - - /** - * The following methods are for Nms Event Usage Logging - */ - - /** - * Function: WriteNmsLogData - * gathers Nmslog data and writes to XML file - * @param position of the log in the log data array - */ - void WriteNmsLogData(TInt aIndex); - - /** - * From MIRPhoneInfoObserver - */ - void ImeiUpdatedL(const TDesC& aImei); - -private: - - /** - * opsetting instance - */ - CIRSettings* iSettingsData; - - /** - * Phone Info - */ - CPhoneInfo* iPhoneInfo; - - /** - * instance of session logger - */ - CIRSessionLogger* iSessionLog; - - /** - * instance of nms logger - */ - CIRNmsLogger* iNmsLog; - - /** - * instance of previous session - */ - CIRSessionLogger* iPreviousSessionLog; - /** - * instance of previous session - */ - CIRNmsLogger* iPreviousNmsLog; - - /** - * instance of sessiondb - */ - CIRSessionDb* iLogSessionDb; - /** - * instance of NmsLogdb - */ - CIRNmsLogDb* iNmsLogDb; - - /** - * instance of Db Status Observer - */ - MIRLogDbStatusObserver *iDbStatusObserver; - /** - * Indicate whether Nms Log Db has been updated - */ - TBool iNmsLogDbUpdated; - /** - * Indicate whether Session Log Db has been updated - */ - TBool iSessionLogDbUpdated; - /** - * Indicate whether usage report sent to isds server has received successful response - */ - TBool iUnComfirmedReportSent; - /** - * it holds the sessions - */ - CArrayPtrFlat *iSessionData; - /** - * it holds the NmsLog - */ - CArrayPtrFlat *iNmsLogData; - - /** - * position in xml file - */ - TInt iFileWritePos; - - /** - * stores the network during browsing - */ - TInt iCurrentBrowseNetwork; - - /** - * Checks whether any error has occured while - * writing or retriving from data base - */ - TBool iSessionLogUpdationFailed; - /** - * Checks whether any error has occured while - * writing or retriving from data base - */ - TBool iNmsLogUpdationFailed; - /** - * Checks whether db creation is failure or success - */ - TBool iSessionDbCreationFailed; - /** - * Checks whether db creation is failure or success - */ - TBool iNmsDbCreationFailed; - - /* - * sets when an nms event is generated - */ - TBool iNmsEventFlag; - - /** - * log file - */ - RFile iLogFile; - - /* - * file session - */ - RFs iFsSession; - - /** - * unicode buffer - */ - //"MAX_URL_CHARACTOR_NUMBER = 255" is defined - // in iropenwebaddressview.cpp, it is 8bit len char. - // the memory should be double when tranfer 8bit to 16bit. - TBuf<512> iUniCodeBuf; //Unicode - - /** - * utf 8 buffer - */ - TBuf8<256> iUTF8Buffer; //UTF-8 - - /** - * version number - */ - TBuf<5> iReportVersion; - - /** - * irid - */ - TBuf<30> iIRId; - - /** - * Base64 encoded IMEI - */ - HBufC *iImeiBase64; - - /** - * session database file - */ - TFileName iSessFile; - /** - * session database file - */ - TFileName iNmsLogFile; - /** - * log files path - */ - TFileName iLogFilePath; - - /** - * instance of browse log - */ - TIRBrowseLog iRBrowseLog; - - /** - * session start time - */ - TTime iSessionStartTime; - - /** - * Timestamp - */ - TTime iSongRecogTimestamp; - - /** - * time stamp - */ - TTime iBrowseLogTimeStamp; - - /** - * date - */ - TDateTime iDate; - - /** - * array for storing browse log - */ - RArray iBrowseLog; - - /** - * number of browse logs written to xml - */ - TInt iBrowseLogsCntToXml; - - - /** - * The following methods are for Nms Event Usage Logging - */ - - /** - * Timestamp - */ - TTime iNmsTimestamp; - - /** - * Type of Event (i.e., "find" or "launch") - */ - TInt iNmsType; - - /** - * Nms Event Current netwrok type - */ - TInt iNmsCurrentNetwork; - - /** - * Nms Event Home Operator - */ - TInt iNmsHomeOperator; - /** - * The number of times session end called - */ - TInt iSessionEndCalled; - }; - -#endif //IRSESSIONLOGGER_H - - -