diff -r 000000000000 -r 84ad3b177aa3 pushmtm/MtmUtilInc/WhiteListImporter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pushmtm/MtmUtilInc/WhiteListImporter.h Mon Mar 30 12:49:49 2009 +0300 @@ -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 +#include + +// 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