pushmtm/MtmUtilInc/WhiteListImporter.h
branchRCL_3
changeset 48 8e6fa1719340
parent 0 84ad3b177aa3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pushmtm/MtmUtilInc/WhiteListImporter.h	Wed Sep 01 12:31:04 2010 +0100
@@ -0,0 +1,128 @@
+/*
+* Copyright (c) 2003, 2004 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:  Declatarion of CWhiteListImporter.
+*
+*/
+
+
+#ifndef WHITE_LIST_CONVERTER_H
+#define WHITE_LIST_CONVERTER_H
+
+// INCLUDE FILES
+
+#include <e32base.h>
+#include <e32std.h>
+
+// FORWARD DECLARATIONS
+
+class CPushInitiatorList;
+
+// CLASS DECLARATION
+
+/**
+* Converter utility.
+* Import White List data from a comma and semicolon separated descriptor to 
+* push initiator list, or export that to a descriptor.
+*/
+class CWhiteListConverter : public CBase
+    {
+    public:     // Constructors and destructor
+
+        /**
+        * Two-phased constructor. Leaves on failure.
+        * @param aPushInitiatorList PushInitiatorList.
+        * @return The constructed importer.
+        */
+        static CWhiteListConverter* NewL( CPushInitiatorList& aPushInitiatorList );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CWhiteListConverter();
+
+    public:     // New methods
+
+        /**
+        * Import White List data from a comma and semicolon 
+        * separated descriptor.
+        * @param aSource Input descriptor.
+        * @throw KErrOverflow No more space in input buffer.
+        * @throw KErrCorrupt Corrupt input.
+        */
+        void Buffer2ListL( const TDesC& aSource );
+
+        /**
+        * Export White List data to a comma and semicolon separated descriptor.
+        * @return Output descriptor. Ownership transferred to the caller.
+        * @throw KErrOverflow No more space in input buffer.
+        * @throw KErrCorrupt Corrupt input.
+        */
+        HBufC* List2BufferL();
+
+    private:    // Constructors and destructor
+
+        /**
+        * Constructor.
+        */
+        CWhiteListConverter( CPushInitiatorList& aPushInitiatorList );
+
+        /**
+        * Second phase constructor. Leaves on failure.
+        */
+        void ConstructL();
+
+    private:    // New methods
+
+        /**
+        * Get next character and store it in iCurCh.
+        */
+        inline void GetChar();
+
+        /**
+        * Process next line = Record.
+        * @return ETrue if more lines to go, EFalse on EOS.
+        */
+        TBool NextLineL();
+
+        /**
+        * Parse next token = Unit. 
+        * Next token spans from current character up to (but excluding) 
+        * to the next stop character.
+        * @param aStopChar Stop character (terminate the token).
+        * @return Pointer to token. This may be empty string. Note that the
+        * returned pointer is valid until next call (consecutive calls reuse
+        * the same buffer).
+        */
+        TPtrC NextTokenL( TUint aStopChar );
+
+        /**
+        * Parse the separated list of White List entries and 
+        * add it to PushMtmSettings.
+        */
+        void AttrsL();
+
+    private:    // data
+
+        CPushInitiatorList& iPushInitiatorList; ///< The initiator list.
+        TLex  iSource;  ///< Helper to parse iSource.
+        TUint iCurCh;   ///< Current (lookahead) character.
+        TText* iBuf;    ///< Token buffer. Owned.
+        TText* iNextCh; ///< Next character is stored here. Not owned.
+        TText* iMaxCh;  ///< End of buffer (points past the buffer). Not owned.
+        HBufC* iConverterBuf; ///< Owned.
+    };
+
+#endif // WHITE_LIST_CONVERTER_H
+            
+// End of File