--- /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