videofeeds/server/tsrc/IptvTestUtility/src/CIptvTestDlFileInfo.cpp
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/server/tsrc/IptvTestUtility/src/CIptvTestDlFileInfo.cpp	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,414 @@
+/*
+* Copyright (c) 2002-2004 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:   implements functionality for storing and logging*
+*/
+
+
+
+
+// INCLUDE FILES
+#include "CIptvTestDlFileInfo.h"
+#include "VCXTestLog.h"
+
+
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES  
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+_LIT(KIPTVTestLoggerFolder,"IPTV");
+_LIT(KIPTVTestLoggerFile,"IptvDlLog.txt");
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CIptvTestDlFileInfo::NewL
+//  
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CIptvTestDlFileInfo* CIptvTestDlFileInfo::NewL()
+    {
+    VCXLOGLO1(">>>CIptvTestDlFileInfo::NewL");   
+    CIptvTestDlFileInfo* self = new (ELeave) CIptvTestDlFileInfo();
+    CleanupStack::PushL(self);
+    self->ConstructL( );
+    CleanupStack::Pop();
+    VCXLOGLO1("<<<CIptvTestDlFileInfo::NewL");   
+    return self;    
+    }
+// -----------------------------------------------------------------------------
+// CIptvTestDlFileInfo::~CIptvTestDlFileInfo
+// destructor
+// -----------------------------------------------------------------------------
+//    
+EXPORT_C CIptvTestDlFileInfo::~CIptvTestDlFileInfo()
+    {
+    VCXLOGLO1(">>>CIptvTestDlFileInfo::~CIptvTestDlFileInfo");
+    if(iDlFileInfoError==EDlFileInfoDlGoing) 
+        {
+        iDlFileInfoError=EDlFileInfoDestructorCalled;
+        iStopTime.HomeTime();
+        Print();
+        }
+    
+    iDlEvents.Close();
+    
+    if(iContentUrl)
+        {
+        delete iContentUrl;
+        iContentUrl = NULL;
+        }
+        
+    if(iIptvTestLogger)
+	    {
+	    delete iIptvTestLogger;
+	    iIptvTestLogger=NULL;	
+	    }
+	    
+    VCXLOGLO1("<<<CIptvTestDlFileInfo::~CIptvTestDlFileInfo");   
+    }
+
+// -----------------------------------------------------------------------------
+// CIptvTestDlFileInfo::CIptvTestDlFileInfo
+// 
+// -----------------------------------------------------------------------------
+//
+CIptvTestDlFileInfo::CIptvTestDlFileInfo()
+    {
+    VCXLOGLO1(">>>CIptvTestDlFileInfo::CIptvTestDlFileInfo");   
+    
+    VCXLOGLO1("<<<CIptvTestDlFileInfo::CIptvTestDlFileInfo");       
+    }
+// -----------------------------------------------------------------------------
+// CIptvTestDlFileInfo::ConstructL()
+// 
+// -----------------------------------------------------------------------------
+//    
+void CIptvTestDlFileInfo::ConstructL( )
+    {
+    VCXLOGLO1(">>>CIptvTestDlFileInfo::ConstructL");   
+    iIptvTestLogger = CIptvTestLogger::NewL(KIPTVTestLoggerFolder(), KIPTVTestLoggerFile());
+    iDlSucceed = EFalse;
+    VCXLOGLO1("<<<CIptvTestDlFileInfo::ConstructL");       
+    }
+
+
+// -----------------------------------------------------------------------------
+// CIptvTestDlFileInfo::DlStarted
+// stores download information
+// -----------------------------------------------------------------------------
+//
+void CIptvTestDlFileInfo::DlStarted(
+        							TUint32 aIapId,
+        							TDesC& aIapName,
+        							TIptvServiceId aServiceId,
+        							TDesC& aServiceName,
+        							TIptvContentId aContentId,
+        							TIptvDownloadType aDlType,
+        							HBufC* aDlUrl 
+        							)
+    {
+    VCXLOGLO1(">>>CIptvTestDlFileInfo::DlStarted"); 
+      
+    iStartTime.HomeTime();	
+    iDlFileInfoError = EDlFileInfoDlGoing;
+ 	iIapId = aIapId;
+ 	iIapName.Append(aIapName);
+ 	iServiceId = aServiceId;
+ 	iServiceName.Append(aServiceName);
+ 	iContentId = aContentId;
+ 	iDlType = aDlType;
+ 	
+ 	if(!iContentUrl)
+ 	    {
+ 	    iContentUrl = aDlUrl;
+ 	    }
+ 	else
+     	{
+     	// panic?!
+     	VCXLOGLO1("Pointer lost -> memory leak!!!!!!!!!!!!!!!!!!");       
+     	}   
+ 	VCXLOGLO1("<<<CIptvTestDlFileInfo::DlStarted");   
+	}
+// -----------------------------------------------------------------------------
+// CIptvTestDlFileInfo::DlUpdateState
+// stores download information
+// -----------------------------------------------------------------------------
+//	        
+void CIptvTestDlFileInfo::DlUpdateState( 
+        						TUint32 aState,
+        						TIptvDlError aError)
+	{
+	VCXLOGLO1(">>>CIptvTestDlFileInfo::DlUpdateState");
+	
+	TIptvTestDlEvents dlEvent;	
+	dlEvent.SetValues(aState,aError);
+    iDlEvents.Append(dlEvent);	  
+	
+	if(aState == KIptvVodDlDownloadSucceeded)
+	{
+	    iDlSucceed = ETrue;
+	}
+	
+	VCXLOGLO1("<<<CIptvTestDlFileInfo::DlUpdateState");   	
+	}
+// -----------------------------------------------------------------------------
+// CIptvTestDlFileInfo::DlGoing
+// stores download information
+// -----------------------------------------------------------------------------
+//	        
+void CIptvTestDlFileInfo::DlGoing( TDesC& aFullPath,
+								TUint32 aState, 
+								TIptvDlError aError )
+    {
+    VCXLOGLO1(">>>CIptvTestDlFileInfo::DlGoing"); 
+    iFullPath.Zero();  
+	iFullPath.Append(aFullPath);
+	TIptvTestDlEvents dlEvent;	
+	dlEvent.SetValues(aState,aError);
+    iDlEvents.Append(dlEvent);
+	VCXLOGLO1("<<<CIptvTestDlFileInfo::DlGoing");   
+    }
+// -----------------------------------------------------------------------------
+// CIptvTestDlFileInfo::DlStopped
+// stores download information
+// -----------------------------------------------------------------------------
+//        						
+void CIptvTestDlFileInfo::DlStopped(
+						TUint32	aFileSize,
+        				TUint32 aState, 
+        				TIptvDlError aError)
+    {
+    VCXLOGLO1(">>>CIptvTestDlFileInfo::NewL");   
+	iStopTime.HomeTime();
+	if(iDlFileInfoError==EDlFileInfoDlGoing)
+	    {
+	    iDlFileInfoError = EDlFileInfoIdle;
+        }
+	iFileSize = aFileSize;
+	TIptvTestDlEvents dlEvent;	
+	dlEvent.SetValues(aState,aError);
+    iDlEvents.Append(dlEvent);
+	VCXLOGLO1("<<<CIptvTestDlFileInfo::NewL");   
+    }
+// -----------------------------------------------------------------------------
+// CIptvTestDlFileInfo::DlStartFailed
+// stores download information
+// -----------------------------------------------------------------------------
+//        						
+void CIptvTestDlFileInfo::DlStartFailed(
+        				TIptvDlError aError)
+    {
+    VCXLOGLO1(">>>CIptvTestDlFileInfo::DlStartFailed");   
+	iStopTime.HomeTime();
+	TIptvTestDlEvents dlEvent;	
+	dlEvent.SetValues(0,aError);
+    iDlEvents.Append(dlEvent);
+	iDlFileInfoError = EDlFileInfoStartFailed;
+	VCXLOGLO1("<<<CIptvTestDlFileInfo::DlStartFailed");   
+    }
+// -----------------------------------------------------------------------------
+// CIptvTestDlFileInfo::GetFileName
+// retuns fullpath of the file
+// -----------------------------------------------------------------------------
+//
+TDesC& CIptvTestDlFileInfo::GetFileName()
+    {
+    VCXLOGLO1(">>>CIptvTestDlFileInfo::GetFileName");   
+    VCXLOGLO1("<<<CIptvTestDlFileInfo::GetFileName");   
+    return iFullPath;
+    }
+// -----------------------------------------------------------------------------
+// CIptvTestDlFileInfo::DlTimeOut
+// Prints and removes download information when download didn't get ready in time.
+// -----------------------------------------------------------------------------
+//        							
+void CIptvTestDlFileInfo::DlTimeOut()
+    {
+    VCXLOGLO1(">>>CIptvTestDlFileInfo::DlTimeOut"); 
+    iStopTime.HomeTime();
+    iDlFileInfoError = EDlFileInfoTimeOut;
+    VCXLOGLO1("<<<CIptvTestDlFileInfo::DlTimeOut"); 
+    }
+// -----------------------------------------------------------------------------
+// CIptvTestDlFileInfo::Print
+// Print information about download to log
+// -----------------------------------------------------------------------------
+//        							
+void CIptvTestDlFileInfo::Print()
+{
+    VCXLOGLO1(">>>CIptvTestDlFileInfo::Print");   
+	_LIT(KDateString,"%D%M%Y%/0%1%/1%2%/2%3%/3");
+    _LIT(KTimeString,"%-B%:0%H%:1%T%:2%S%.%*C2%:3%-B");
+
+    TBuf<255> logBuf;
+
+	TBuf<30> startDateString;
+    TBuf<30> startTimeString;    
+    
+    TBuf<30> endDateString;
+    TBuf<30> endTimeString;
+    
+    TBuf<30> eventTimeString;
+    
+    TTimeIntervalSeconds tTimeSeconds;
+    TUint32 dlTime = 0;
+    TUint32 dlSpeed = 0;
+    TInt i = 0;
+    
+    iStartTime.FormatL(startDateString,KDateString);
+    iStartTime.FormatL(startTimeString,KTimeString);
+    
+    iStopTime.FormatL(endDateString,KDateString);
+    iStopTime.FormatL(endTimeString,KTimeString);
+	
+	iIptvTestLogger->Log(_L("--------------------------------------------------------------------------"));
+    iIptvTestLogger->Log(_L("Download start: %S %S"),&startDateString, &startTimeString);
+    logBuf.AppendFormat(_L("serviceid: %d, Servicename: %S"),iServiceId, &iServiceName);    
+    iIptvTestLogger->Log(_L("%S"),&logBuf);
+    logBuf.Zero();
+    
+    logBuf.AppendFormat(_L("IapId: %d, Iapname: %S"),iIapId, &iIapName);
+    iIptvTestLogger->Log(_L("%S"),&logBuf);
+    logBuf.Zero();
+    
+    logBuf.AppendFormat(_L("ContentId: %d"),iContentId);
+    iIptvTestLogger->Log(_L("%S"),&logBuf);
+    logBuf.Zero();
+    if(iContentUrl)
+        {
+        iIptvTestLogger->Log(_L("Download URL: %S"),iContentUrl);
+        }
+    else
+        {
+        iIptvTestLogger->Log(_L("Download URL: not found"));    
+        }
+    iIptvTestLogger->Log(_L("Videoname: %S"),&iFullPath);
+    
+    logBuf.AppendFormat(_L("Filesize (bytes): %d"),iFileSize);
+    iIptvTestLogger->Log(_L("%S"),&logBuf);
+    logBuf.Zero();
+     
+    iIptvTestLogger->Log(_L("Download stop: %S %S"),&endDateString, &endTimeString);
+    
+    //Download time
+    iStopTime.SecondsFrom(iStartTime,tTimeSeconds);//calculates time difference
+    dlTime = tTimeSeconds.Int();
+    logBuf.AppendFormat(_L("Download time (sec): %d"),dlTime);
+    iIptvTestLogger->Log(_L("%S"),&logBuf);
+    logBuf.Zero();
+    
+    //Download speed  
+    if(dlTime>0)
+        {
+        dlSpeed = iFileSize / dlTime;    
+        }
+    logBuf.AppendFormat(_L("Download speed (bytes/sec): %d"),dlSpeed);
+    iIptvTestLogger->Log(_L("%S"),&logBuf);
+    logBuf.Zero();
+    
+    iIptvTestLogger->Log(_L("Events from Iptvserver:"));
+    
+    for(i = 0; i < iDlEvents.Count(); i++)
+        {
+        iDlEvents[i].iTime.FormatL(eventTimeString,KTimeString);
+        logBuf.AppendFormat(_L("time: %S state: %d   error: %d"),&eventTimeString, iDlEvents[i].iState,iDlEvents[i].iError);
+        iIptvTestLogger->Log(_L("%S"),&logBuf);
+        logBuf.Zero();
+        }
+        
+    if(iDlSucceed)
+        {
+        iIptvTestLogger->Log(_L("Download succeeded"));
+        }
+    else
+        {
+        iIptvTestLogger->Log(_L("Download didn't succeed"));
+        }
+    
+    if(iDlFileInfoError==EDlFileInfoTimeOut)
+        {
+        iIptvTestLogger->Log(_L("Timeout, download didn't get ready!"));
+        }
+    else if(iDlFileInfoError==EDlFileInfoStartFailed)
+        {
+        iIptvTestLogger->Log(_L("Download didn't start at all!"));
+        }
+    else if(iDlFileInfoError==EDlFileInfoDestructorCalled)
+        {
+        iIptvTestLogger->Log(_L("Destructor of testcase called, download didn't get ready!"));
+        }
+    else
+        {
+        //do nothing    
+        }
+    
+    iIptvTestLogger->Log(_L("--------------------------------------------------------------------------"));   
+    VCXLOGLO1("<<<CIptvTestDlFileInfo::Print");   
+}
+TIptvTestDlEvents::TIptvTestDlEvents()
+    {
+    iState = 0;
+    }
+
+TIptvTestDlEvents::~TIptvTestDlEvents()
+    {
+    }
+    
+void TIptvTestDlEvents::SetValues(
+                                TUint32 aState,
+                                TIptvDlError aError)
+    {
+    iTime.HomeTime();
+	iState = aState;
+	iError  = aError; 
+    }
+//  End of File  
+/*
+--------------------------------------------------------------------------
+Download start failed: 22/06/2006 16:38:33.05
+Serviceid: 0, Servicename: Kärppäkanava
+IapId: 11, Iapname: Ethernet with Daemon Dynamic IP
+ContentId = 2
+Dltype = 2
+error = 4
+--------------------------------------------------------------------------
+
+--------------------------------------------------------------------------
+Download start: 22/06/2006 16:38:33.05
+Serviceid: 0, Servicename: Kärppäkanava
+IapId: 11, Iapname: Ethernet with Daemon Dynamic IP
+ContentId = 2
+Videoname: Karpat-Assat 2-1
+Filename: e:\E147423941116553376000000003.3gp
+Filesize (bytes):1942653
+Download time (s):102
+Download stop: 22/06/2006 16:39:14.28
+error = 133
+Downloads going start: 1    end: 1
+--------------------------------------------------------------------------
+
+*/