internetradio2.0/ircommon/src/irotaupdate.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 18 Aug 2010 09:40:26 +0300
changeset 14 896e9dbc5f19
permissions -rw-r--r--
Revision: 201031 Kit: 201033

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

#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 = 0;
	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" );
	iUpdateInterval = aStream.ReadInt32L();
	TInt 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." );
	}