tsrc/provisioningenginestub/inc/cwpadapter.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 11 Jun 2010 13:36:18 +0300
changeset 22 496ad160a278
parent 0 f0cf47e981f9
permissions -rw-r--r--
Revision: 201021 Kit: 2010123

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


#ifndef CWPADAPTER_H
#define CWPADAPTER_H

// INCLUDES
#include <E32Base.h>
#include "MWPVisitor.h"

// FORWARD DECLARATIONS
class MWPPairVisitor;
class MWPContextExtension;

// DATA TYPES
enum TWPSaveLeaveCode
    {
    EWPAccessPointsProtected = -49152,
    EWPCommsDBLocked = -49153,
    EWPBookmarksLocked = -49154
    };

// CLASS DECLARATION

/**
 * CWPAdapter has to be implemented by each adapter.
 * CWPAdapter contains only pure virtual methods, which must be 
 * implemented by adapters, and inline methods, which can be
 * used by adapters or engine. Inlining prevents circular binary
 * dependency.
*
*  @lib ProvisioningEngine
*  @since 2.0
 */ 
class CWPAdapter : public CBase, public MWPVisitor
    {
    public:

        /**
        * Destructor.
        */
        IMPORT_C ~CWPAdapter();

    public:

        /**
        * Check the number of settings items.
        * @return Number of items
        */
        virtual TInt ItemCount() const = 0;

        /**
        * Returns the title of the nth summary line. 
        * @param aIndex Number of summary line
        * @return Summary line title
        */
        virtual const TDesC16& SummaryTitle(TInt aIndex) const = 0;
        
        /**
        * Returns the text of the nth summary line. 
        * @param aIndex Number of summary line
        * @return Summary line text
        */
        virtual const TDesC16& SummaryText(TInt aIndex) const = 0;
        
        /**
        * Saves one setting handled by the adapter.
        * @param Setting number
        */
        virtual void SaveL( TInt aItem ) = 0;

        /**
        * Returns ETrue if the adapter can set the settings as default.
        * @param Setting number
        * @return ETrue if the setting can be made default
        */
        virtual TBool CanSetAsDefault( TInt aItem ) const = 0;

        /**
        * Adapter sets the settings as default.
        * @param Setting number
        */
        virtual void SetAsDefaultL( TInt aItem ) = 0;

        /**
        * Calls the pair visitor for each detail line of an item.
        * @param aItem Item whose details are needed
        * @param aVisitor Pair visitor
        * @return KErrNotSupported if not supported
        */
        virtual TInt DetailsL( TInt aItem, MWPPairVisitor& aVisitor ) = 0;

    public: // From MWPVisitor

        void VisitL(CWPCharacteristic& aCharacteristic) = 0;
        void VisitL(CWPParameter& aParameter) = 0;
        void VisitLinkL(CWPCharacteristic& aCharacteristic ) = 0;

    };

#endif /* CWPADAPTER_H */