iaupdate/IAD/firmwareupdate/inc/iaupdatefwsyncprofile.h
author Simon Howkins <simonh@symbian.org>
Mon, 22 Nov 2010 12:04:39 +0000
branchRCL_3
changeset 84 e6c5e34cd9b9
parent 0 ba25891c3a9e
child 77 d1838696558c
permissions -rw-r--r--
Adjusted to avoid exports, etc, from a top-level bld.inf

/*
* Copyright (c) 2008 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:    
*
*/




#ifndef CIAUPDATEFWSYNCPROFILE_H
#define CIAUPDATEFWSYNCPROFILE_H

//  INCLUDES
#include <e32base.h>
#include <SyncMLClient.h>
#include <SyncMLClientDM.h>
#include "iaupdatefwconst.h"

/**
* CIAUpdateFWSyncProfile 
*
* CIAUpdateFWSyncProfile is used for getting/setting sync profile settings.
*/
NONSHARABLE_CLASS (CIAUpdateFWSyncProfile) : public CBase
    {
	enum TOpenMode
		{
	    EOpenRead,
	    EOpenReadWrite
		};
		
    public:
        /**
        * Two-phased constructor.
        * @param aParam
        */
        static CIAUpdateFWSyncProfile* NewLC( const TInt aApplicationId,
                                          RSyncMLSession* aSyncSession);

        /**
        * Two-phased constructor.
        * @param aParam
        */
         static CIAUpdateFWSyncProfile* NewL( const TInt aApplicationId,
                                         RSyncMLSession* aSyncSession );

	    /**
        * Destructor.
        */
        virtual ~CIAUpdateFWSyncProfile();

    private:
        /**
        * C++ default constructor.
        * @param aParam
        */
	    CIAUpdateFWSyncProfile( const TInt aApplicationId,
	                        RSyncMLSession* aSyncSession );

        /**
        * By default Symbian 2nd phase constructor is private.
        */
	    void ConstructL();
	    
    public:
        /**
		* Open profile
        * @param aProfileId Profile id to open
        * @param aOpenMode Opening mode
		* @return None
        */
         void OpenL( TInt aProfileId, TInt aOpenMode );
        
        /**
		* Create profile
        * @param None.
		* @return Profile ID.
        */
         TInt CreateL();
        
        /**
		* Create copy profile
        * @param aProfileId Profile that is used for copying
		* @return None
        */
         void CreateCopyL( TInt aProfileId );
        
        /**
		* Save profile
        * @param None
		* @return None
        */
         void SaveL();
        
	public:
        
        /**
		* Set name for profile
        * @param aText name for profile
		* @return None
        */
         void SetNameL(const TDesC& aText);
        
        /**
		* Get profile name
        * @param aText name for profile
		* @return None
        */
         void GetName( TDes& aText );
        
        /**
		* Set creator id for the profile
        * @param aCreatorId creator id
		* @return None
        */
         void SetCreatorId(TInt aCraetorId);
        
        /**
		* Get creator id
        * @param None
		* @return creator id
        */
         TInt CreatorId();
        
        /**
		* Get profile id
        * @param None
		* @return Currently open profile id
        */
         TInt ProfileId();
        
        /**
		* Check if delete is allowed
        * @param None
		* @return ETrue if allowed
        */
         TBool DeleteAllowed();
        
        /**
		* Has profile been synced
        * @param None
		* @return ETrue if synced
        */
		 TBool IsSynced();
        
        /**
		* Last sync time
        * @param None
		* @return Time of sync
        */
		 TTime LastSync();
		
		/**
		* Last Success sync time
        * @param None
		* @return Time of sync
        */
		 TTime LastSuccessSync();

    // settings that connection dialog displays
    public:
        /**
		* Set server id
        * @param aText server id
		* @return None
        */
         void SetServerIdL(const TDesC& aText);
        
        /**
		* Get server id
        * @param aText server id
		* @return NOne
        */
         void GetServerId(TDes& aText);
        
        /**
		* Get server password
        * @param aText server password
		* @return None
        */
         void GetServerPassword( TDes& aText );
        
        /**
		* Set server password
        * @param aText server password
		* @return None
        */
         void SetServerPasswordL( const TDesC& aText );
        
        /**
		* Get protocol version
        * @param None
		* @return Version
        */
         TInt ProtocolVersion();
        
        /**
		* Set Protocol version
        * @param aProtocolVersion protocol version
		* @return None
        */
         void SetProtocolVersionL( TInt aProtocolVersion );
        
        /**
		* Get bearer type
        * @param None
		* @return bearer type
        */
         TInt BearerType();
        
        /**
		* Set bearer type
        * @param aId bearer type
		* @return None
        */
         void SetBearerTypeL( TInt aId );
        
        /**
		* Get accesspoint
        * @param None
		* @return accespoint
        */
         TInt AccessPointL();
        
        /**
		* Set accesspoint
        * @param aId accespoint id
		* @return None
        */
         void SetAccessPointL(const TInt aId);
        
        /**
		* Get host address
        * @param aText host address
        * @param aPort host port
		* @return None
        */
         void GetHostAddress( TDes& aText, TInt& aPort );
        
        /**
		* set host address
        * @param aText host address
        * @param aPort host 
		* @return None
        */
         void SetHostAddressL( const TDesC& aText, const TInt aPort );
        
        /**
		* Get port number 
        * @param None
		* @return port number
        */
         TInt PortNumber();
        
        /**
		* Set port number
        * @param aPortNumber port number
		* @return None
        */
         void SetPortNumber( TInt aPortNumber );
        
        /**
		* Get user name
        * @param aText user name
		* @return None
        */
         void GetUserName( TDes& aText );
        
        /**
		* Set user name
        * @param aText user name
		* @return None
        */
         void SetUserNameL( const TDesC& aText );
        
        /**
		* Get user password
        * @param aText user password
		* @return None
        */
         void GetPassword( TDes& aText );
        
        /**
		* Set user password
        * @param aText user password
		* @return None
        */
         void SetPasswordL( const TDesC& aText );
        
        /**
		* Set server alert state
        * @param aState server alert state
		* @return None
        */        
         void SetSASyncStateL( TInt aState );
        
        /**
		* Get Server alert state
        * @param None
		* @return server alert state
        */
         TInt SASyncState();
        
        /**
		* Set http used state
        * @param aEnable ETrue if http authentication needs to be used
		* @return None
        */
         void SetHttpUsedL( TBool aEnable );
        
        /**
		* Check whether http authentication is used
        * @param None
		* @return ETrue if http authentication is used
        */
         TBool HttpUsedL();
        
        /**
		* Get http user name
        * @param aText user name
		* @return None
        */        
         void GetHttpUserNameL( TDes& aText );
        
        /**
		* Set http user name
        * @param aText user name
		* @return None
        */
         void SetHttpUserNameL( const TDesC& aText );
        
        /**
		* Get http password
        * @param aText password
		* @return None
        */
         void GetHttpPasswordL( TDes& aText );
        
        /**
		* Set http password
        * @param aText password
		* @return None
        */
         void SetHttpPasswordL( const TDesC& aText );
 
               
    public:
       
        /**
		* Return latest history job
        * @param None
		* @return CSyncMLHistoryJob*
        */        
         const CSyncMLHistoryJob* LatestHistoryJob();
        
        /**
		* Open connection
        * @param None
		* @return None
        */
         void OpenConnection();
        
        /**
		* Open history log
        * @param None
		* @return None
        */
         void OpenHistoryLog();

        /**
		* Close history log
        * @param None
		* @return None
        */        
         void CloseHistoryLog();

        /**
		* Return DevMan profile
        * @param None
		* @return RSyncMLDevManProfile&
        */
         RSyncMLDevManProfile& Profile();
        
        /**
		* Return SyncML Session
        * @param None
		* @return RSyncMLSession&
        */
         RSyncMLSession& Session();
        
    public:
        /**
		* Get connection name
        * @param aText name
        * @param aPropertyPos position at the array
		* @return None
        */
         void GetConnectionPropertyNameL( TDes8& aText, TInt aPropertyPos );
        
    private:
    
        /**
		* Copy values from one profile to another
        * @param aSource source profile
		* @return None
        */    
        void CopyValuesL( CIAUpdateFWSyncProfile* aSource );

	private:
	    // profile id
        TInt                    iProfileId;
        // Log open
        TBool                   iHistoryLogOpen;
        // Connection open
        TBool                   iConnectionOpen;
        // Port number
        TInt                    iPortNumber;
   		// needed for setting creator id
		TInt                    iApplicationId;
		// long buffer for string handling 
		TBuf<KBufSize255>       iBuf;
		// long buffer for string handling 
		TBuf8<KBufSize255>      iBuf8;
   		// sync session
		RSyncMLSession*         iSyncSession;
		// sync profile
		RSyncMLDevManProfile    iProfile;
		// history log
		RSyncMLHistoryLog       iHistoryLog;
		// sync connection
		RSyncMLConnection       iConnection;
    };

#endif  // CIAUpdateFWSYNCPROFILE_H

// End of file