--- /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 <CWPAdapter.h>
+#include <msvapi.h>
+#include <MWPContextExtension.h>
+
+// 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<TWhiteListAdapterItem> 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<TWhiteListAdapterItem> 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