fotaapplication/fotaserver/inc/FotaIPCTypes.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 09:07:52 +0200
changeset 0 b497e44ab2fc
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2005-2006 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:   interprocess messages
*
*/



// INCLUDES
#include "FotaIPCTypes.h"
#include <centralrepository.h>
#include "fotaserverPrivateCRKeys.h"

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

// ---------------------------------------------------------------------------
// TDownloadIPCParams::TDownloadIPCParams 
// ---------------------------------------------------------------------------
TDownloadIPCParams::TDownloadIPCParams () : iPkgId(-1),iProfileId(0)
        , iSendAlert(ETrue)
        , iIapId(-1), iPkgSize(0), iSessionType(0), iUpdateLtr (0)
{
    iPkgName        = KNullDesC8;
    iPkgVersion     = KNullDesC8;
}

// ---------------------------------------------------------------------------
// TDownloadIPCParams::TDownloadIPCParams 
// ---------------------------------------------------------------------------
TDownloadIPCParams::TDownloadIPCParams (const TDownloadIPCParams& p )
                           : iPkgId ( p.iPkgId ), iProfileId (p.iProfileId )
                           , iSendAlert( p.iSendAlert )
                           , iIapId(p.iIapId), iPkgSize(p.iPkgSize), iSessionType(p.iSessionType), iUpdateLtr (p.iUpdateLtr)
    {
    iPkgName        = p.iPkgName;
    iPkgVersion     = p.iPkgVersion;
    }



// ---------------------------------------------------------------------------
// TPackageState::TPackageState
// ---------------------------------------------------------------------------
TPackageState::TPackageState( RFotaEngineSession::TState aState, TInt aResult)
    : TDownloadIPCParams (),  iState(aState), iResult(aResult)
    						,iSmlTryCount( KDefaultSmlTryCount )
    {
    }


// ---------------------------------------------------------------------------
// TPackageState::TPackageState
// ---------------------------------------------------------------------------
TPackageState::TPackageState( RFotaEngineSession::TState aState) 
    : TDownloadIPCParams (), iState(aState), iResult(-1) 
    						,iSmlTryCount( KDefaultSmlTryCount )
    {
	SetSmlTryCount();
    }


// ---------------------------------------------------------------------------
// TPackageState::TPackageState
// ---------------------------------------------------------------------------
TPackageState::TPackageState( TDownloadIPCParams p) : 
    TDownloadIPCParams(p),iState(RFotaEngineSession::EIdle), iResult(-1)
    					 ,iSmlTryCount( KDefaultSmlTryCount )
    {  
    SetSmlTryCount();
    
    }


// ---------------------------------------------------------------------------
// TPackageState::TPackageState
// ---------------------------------------------------------------------------
TPackageState::TPackageState() : TDownloadIPCParams () 
            ,iState(RFotaEngineSession::EIdle), iResult(-1)
            ,iSmlTryCount( KDefaultSmlTryCount )
    {
    SetSmlTryCount();
    }


// ---------------------------------------------------------------------------
// TPackageState::SetSmlTryCount()
// ---------------------------------------------------------------------------
void TPackageState::SetSmlTryCount()
{
	 TInt err = KErrNone;
	 TInt retry = 0;
	 CRepository *centrep = NULL;
      TRAP(err, centrep = CRepository::NewL( KCRUidFotaServer ) );
    	    if ( centrep ) 
        	{
        	err = centrep->Get( KGenericAlertRetries, retry );
        	delete centrep; centrep = NULL;
        	}
        	if(err == KErrNone)
        	{
        		
            	    if(retry < 0 )
            	    {
            	    iSmlTryCount = KDefaultSmlTryCount;
            	    }
                  	else if( retry == 0 )
               	    {
               	     iSmlTryCount = 2 ;
               	    }
                	else if (retry > KMaximumSmlTryCount )
               	    {
               	     iSmlTryCount = KMaximumSmlTryCount + 1;
               	    }
                   	else
                    {
                	  iSmlTryCount = retry + 1;
                    }
        	    }
        	 else
        	    {
        	    iSmlTryCount = KDefaultSmlTryCount;
        	    }
}
// ---------------------------------------------------------------------------
// TPackageState::ExternalizeL 
// ---------------------------------------------------------------------------
void TPackageState::ExternalizeL ( RWriteStream& aStream )
    {
    aStream.WriteInt16L (iState); aStream.WriteInt16L (iResult); 
    }


// ---------------------------------------------------------------------------
// TPackageState::InternalizeL
// ---------------------------------------------------------------------------
void TPackageState::InternalizeL(RReadStream& /*aStream*/) 
    {
    }


// ---------------------------------------------------------------------------
// TPackageState::operator=
// ---------------------------------------------------------------------------
TPackageState& TPackageState::operator= ( const TDownloadIPCParams& a )
    {
    iPkgId      = a.iPkgId;
    iProfileId  = a.iProfileId;
    iPkgName    = a.iPkgName;
    iPkgVersion = a.iPkgVersion;
    iIapId		= a.iIapId;
    iPkgSize	= a.iPkgSize;
    iSessionType= a.iSessionType;
    iUpdateLtr 	= a.iUpdateLtr;

    return *this;
    }


// ---------------------------------------------------------------------------
// TPackageState::operator=
// ---------------------------------------------------------------------------
TPackageState& TPackageState::operator=(const TPackageState& a)
    {
    iPkgId      = a.iPkgId; 
    iProfileId  = a.iProfileId; 
    iPkgName    = a.iPkgName; 
    iPkgVersion = a.iPkgVersion;
    iIapId		= a.iIapId;
    iPkgSize	= a.iPkgSize;
    iSessionType= a.iSessionType;
    iUpdateLtr	= a.iUpdateLtr;
    iState      = a.iState;  
    iResult     = a.iResult;
    iSmlTryCount= a.iSmlTryCount;
    return *this;
    }
 
            
// End of File