diff -r 6385c4c93049 -r 8e6fa1719340 pushmtm/Plugins/WhiteListAdapterInc/WhiteListAdapter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pushmtm/Plugins/WhiteListAdapterInc/WhiteListAdapter.h Wed Sep 01 12:31:04 2010 +0100 @@ -0,0 +1,221 @@ +/* +* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Handles white list settings in provisioning. +* +*/ + + +#ifndef WHITELISTADAPTER_H +#define WHITELISTADAPTER_H + +// INCLUDE FILES + // User includes +#include "WhiteListAdapterDef.h" + // System includes +#include +#include +#include + +// FORWARD DECLARATIONS + +class CPushMtmSettings; +class CWPCharacteristic; +class CWPParameter; +class MWPPairVisitor; +class TWhiteListAdapterItem; + +// CLASS DECLARATION + +/** +* An ECOM adapter plug-in. It is responsible for maintaining data in a +* WAP Provisioning pushed message : we get appropriate physical proxy +* addresses from the message and store them in Push MTM settings. It is the +* Push Content Handler that will use these addresses to filter out +* unauthorized pushed SL messages. +* Note : although an adapter should always be prepared for displaying the +* processed and stored settings in the appropriate format, the stored items +* in this specific adapter will _never_ be displayed. Thus, ItemCount, +* SummaryTitle and SummaryText methods have been written considering this +* approach. +*/ +class CWhiteListAdapter : public CWPAdapter, + public MMsvSessionObserver, + public MWPContextExtension + { + public : // construction, destruction + /** + * Two-phased constructor. + */ + static CWhiteListAdapter* NewL(); + + /** + * Destructor. + */ + ~CWhiteListAdapter(); + + public : // from CWPAdapter + + /** + * Check the number of settings items. + * @see CWPAdapter + */ + /*virtual*/ TInt ItemCount() const; + + /** + * Returns the title of the nth summary line. + * @see CWPAdapter + */ + /*virtual*/ const TDesC16& SummaryTitle( TInt aIndex ) const; + + /** + * Returns the text of the nth summary line. + * @see CWPAdapter + */ + /*virtual*/ const TDesC16& SummaryText( TInt aIndex ) const; + + /** + * Saves one setting handled by the adapter. + * @see CWPAdapter + */ + /*virtual*/ void SaveL( TInt aItem ); + + /** + * Returns ETrue if the adapter can set the settings as default. + * @see CWPAdapter + */ + /*virtual*/ TBool CanSetAsDefault( TInt aItem ) const; + + /** + * Adapter sets the settings as default. + * @see CWPAdapter + */ + /*virtual*/ void SetAsDefaultL( TInt aItem ); + + /** + * Calls the pair visitor for each detail line of an item. + * @see CWPAdapter + */ + /*virtual*/ TInt DetailsL( TInt aItem, MWPPairVisitor& aVisitor ); + + /** + * Returns a pointer to a context extension. + * @param aExtension + * Contains a pointer to MWPContextExtension if supported. + * @return KErrNotSupported if not supported, KErrNone otherwise + */ + /*virtual*/ TInt ContextExtension( MWPContextExtension*& aExtension ); + + public: // From MWPVisitor (inheritance is through CWPAdapter) + + /** + * Called for each characteristic found. + * @see MWPVisitor + */ + /*virtual*/ void VisitL( CWPCharacteristic& aCharacteristic ); + + /** + * Called for each parameter found. + * @see MWPVisitor + */ + /*virtual*/ void VisitL( CWPParameter& aParameter ); + + /** + * Called for each link to a logical proxy or access point. + * @see MWPVisitor + */ + /*virtual*/ void VisitLinkL( CWPCharacteristic& aCharacteristic ); + + public : // from MMsvSessionObserver + /** + * Indicates an event has occurred. + * @see MMsvSessionObserver + */ + /*virtual*/ void HandleSessionEventL( TMsvSessionEvent aEvent, + TAny* aArg1, + TAny* aArg2, + TAny* aArg3 ); + + private : // construction + /** + * Constructor. + */ + CWhiteListAdapter(); + + /** + * Second-phase constructor. + */ + void ConstructL(); + + private : // internal new methods + /** + * This method is for interpreting a string as push support. + * If the value of the string is '1', then push is enabled, + * if it's equal to '0', then push is disabled, otherwise the proxy + * does not care of push. + * @param aPushSupport String to be processed. + * @return TPushSupport enumeration value. + */ + TPushSupport ResolvePushSupport( const TDesC& aPushSupport ); + + private: // From MWPContextExtension + + /** + * Returns the data used for saving. + * @param aIndex The index of the data + * @return The data. Ownership is transferred. + */ + const TDesC8& SaveDataL( TInt aIndex ) const; + + /** + * Deletes a saved item. + * @param aSaveData The data used for saving + */ + void DeleteL( const TDesC8& aSaveData ); + + /** + * Returns the UID of the adapter. + * @return UID + */ + TUint32 Uid() const; + + private : // data members + + RPointerArray iItems; ///< Physical proxies + + /** + * These items are parts of the current logical proxy and have not + * been added to the final item array (i.e. iItems array), because + * further processing is needed. + */ + RPointerArray iItemsToBeAdded; + + TPushSupport iLogicalProxyPushSupport; + + TBool iPhysicalProxyIsVisited; ///< In order to differentiate + ///< if we are visiting a + ///< ph. or a log. proxy + + TWhiteListAdapterItem* iCurrentItem; ///< Current physical proxy. + ///< Has. + + CMsvSession* iMsvSession; ///< Session to the Message + ///< Server. Has. + CPushMtmSettings* iPushMtmSettings; ///< Push MTM Settings object. + ///< Has. + }; + +#endif // WHITELISTADAPTER_H + +// End of file \ No newline at end of file