internetradio2.0/datastructuressrc/irotaupdate.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 19 Apr 2010 14:01:53 +0300
changeset 0 09774dfdd46b
permissions -rw-r--r--
Revision: 201011 Kit: 201015

/*
* 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
*
*/


#include <s32strm.h>

#include "irdebug.h"
#include "irotaupdate.h"

// ======== LOCAL FUNCTIONS ========

// ======== MEMBER FUNCTIONS ========

//----------------------------------------------------------------------------
// Function : NewLC
// Function returns an instance of CIROTAUpdate
// Two phase constructor
//----------------------------------------------------------------------------
//
EXPORT_C CIROTAUpdate* CIROTAUpdate::NewLC()
	{
	IRLOG_DEBUG( "CIROTAUpdate::NewLC - Entering" );
	CIROTAUpdate* self = new (ELeave) CIROTAUpdate;
	CleanupStack::PushL(self);
	self->ConstructL();
	IRLOG_DEBUG( "CIROTAUpdate::NewLC - Exiting." );
	return self;
	}


//----------------------------------------------------------------------------
// Function : NewL
// Function returns an instance of CIROTAUpdate
// Two phase constructor
//----------------------------------------------------------------------------
//
EXPORT_C CIROTAUpdate* CIROTAUpdate::NewL()
	{
	IRLOG_DEBUG( "CIROTAUpdate::NewL - Entering" );
	CIROTAUpdate* self = CIROTAUpdate::NewLC();
	CleanupStack::Pop(self);
	IRLOG_DEBUG( "CIROTAUpdate::NewL - Exiting." );
	return self;
	}


//----------------------------------------------------------------------------
//CIROTAUpdate::ConstructL()
//standard second phase constructor
//----------------------------------------------------------------------------
//
EXPORT_C void CIROTAUpdate::ConstructL()
	{
    IRLOG_DEBUG( "CIROTAUpdate::ConstructL" );
	return;
	}


//----------------------------------------------------------------------------
//CIROTAUpdate::~CIROTAUpdate()
//standard C++ destructor
//----------------------------------------------------------------------------
//	
CIROTAUpdate::~CIROTAUpdate()
	{
    IRLOG_DEBUG( "CIROTAUpdate::~CIROTAUpdate - Entering" ); 
    delete iUpdateMethod;
    delete iVersion;
    delete iOTAUrl;
    IRLOG_DEBUG( "CIROTAUpdate::~CIROTAUpdate - Exiting." );
	}


//----------------------------------------------------------------------------
//CIROTAUpdate::SetUpdateMethod()
//Function to set update method
//----------------------------------------------------------------------------
//
EXPORT_C void CIROTAUpdate::SetUpdateMethod(const TDesC& aUpdateMethod)
	{
	IRLOG_DEBUG( "CIROTAUpdate::SetUpdateMethod - Entering" );
	iUpdateMethod=aUpdateMethod.Alloc();
	IRLOG_DEBUG( "CIROTAUpdate::SetUpdateMethod - Exiting." );
	}
	

//----------------------------------------------------------------------------
//CIROTAUpdate::SetVersion()
//Function to set version
//----------------------------------------------------------------------------
//	
EXPORT_C  void CIROTAUpdate::SetVersion(const TDesC& aVersion)
	{          
	IRLOG_DEBUG( "CIROTAUpdate::SetVersion - Entering" );
	iVersion=aVersion.Alloc();
	IRLOG_DEBUG( "CIROTAUpdate::SetVersion - Exiting." );
	}


//----------------------------------------------------------------------------
//CIROTAUpdate::SetUpdateInterval()
//Function to set update interval
//----------------------------------------------------------------------------
//
EXPORT_C void CIROTAUpdate::SetUpdateInterval(const TDesC& aUpdateInterval)
	{
	IRLOG_DEBUG( "CIROTAUpdate::SetUpdateInterval - Entering" );
	 TLex var(aUpdateInterval);
	var.Val(iUpdateInterval);
	IRLOG_DEBUG( "CIROTAUpdate::SetUpdateInterval - Exiting." );
	}
	

//----------------------------------------------------------------------------
//CIROTAUpdate::SetOTAUrl()
//Function to set OTA Url
//----------------------------------------------------------------------------
//
EXPORT_C void CIROTAUpdate::SetOTAUrl(const TDesC& aOTAUrl)
  {
    IRLOG_DEBUG( "CIROTAUpdate::SetOTAUrl - Entering" );
	iOTAUrl=aOTAUrl.Alloc();
	IRLOG_DEBUG( "CIROTAUpdate::SetOTAUrl - Exiting." );
  }
// ---------------------------------------------------------------------------
//CIROTAUpdate::ExternalizeL()
//externalizes the data
// ---------------------------------------------------------------------------
//
EXPORT_C void CIROTAUpdate::ExternalizeL(RWriteStream& aStream) const
	{
	IRLOG_DEBUG( "CIROTAUpdate::ExternalizeL - Entering" );
	aStream.WriteInt32L(iUpdateInterval);
	TInt length;
	if(iVersion)
		{
		length = iVersion->Length();
		aStream.WriteInt32L(length);
		aStream << *iVersion;
		}
	else
		{
		length = 0;
		aStream.WriteInt32L(length);
		}

	if(iOTAUrl)
		{
		length = iOTAUrl->Length();
		aStream.WriteInt32L(length);
		aStream << *iOTAUrl;
		}
	else
		{
		length = 0;
		aStream.WriteInt32L(length);
		}
		
	if(iUpdateMethod)
		{
		length = iUpdateMethod->Length();
		aStream.WriteInt32L(length);
		aStream << *iUpdateMethod;
		}
	else
		{
		length = 0;
		aStream.WriteInt32L(length);
		}
    IRLOG_DEBUG( "CIROTAUpdate::ExternalizeL - Exiting." );
	}  


// ---------------------------------------------------------------------------
//CIROTAUpdate::InternalizeL()
//internalizes the data.
// ---------------------------------------------------------------------------
//
EXPORT_C void CIROTAUpdate::InternalizeL(RReadStream& aStream)
	{
	IRLOG_DEBUG( "CIROTAUpdate::InternalizeL - Entering" );
	TInt length;
	iUpdateInterval=aStream.ReadInt32L();
	length = aStream.ReadInt32L();
	
	if(length)
		{
		iVersion = HBufC::NewL(aStream,length);
		}
		
	length = aStream.ReadInt32L();
	if(length)
		{
		iOTAUrl = HBufC::NewL(aStream,length);
		}
		
 	length = aStream.ReadInt32L();
	if(length)
		{
		iUpdateMethod = HBufC::NewL(aStream,length);
		}
	IRLOG_DEBUG( "CIRBrowseCatagoryItems::InternalizeL - Exiting." );
	}