diff -r 000000000000 -r 8e480a14352b messagingfw/msgurlhandler/urlhandler/inc/msgurlparser.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/msgurlhandler/urlhandler/inc/msgurlparser.h Mon Jan 18 20:36:02 2010 +0200 @@ -0,0 +1,199 @@ +// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "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: +// This file contains the API definition for the classes +// TDelimitedAddressParser, TDelimitedBodyParser, TMailtoUrlParser, +// TDelimitedSmsParser, TParseUtil, +// These classes are used by the scheme handler classes to parse the +// messaging urls. +// +// + +/** + @file +*/ + +#ifndef __MSGURLPARSER_H__ +#define __MSGURLPARSER_H__ + + +// System Includes +// +#include +#include +#include + + +/** + @class + Comments : For parsing address component of mailto urls delimited by a ',' + as defined in RFC2368 and below. + This class is used by CMailtoSchemeHandler class. + + Define format of mailto url: + mailto:
? + + @since 7.0 +*/ +class TDelimitedAddressParser : public TDelimitedParserBase16 +/** +@internalComponent +@released +*/ + { +public: + +/** + @fn TDelimitedAddressParser() + Intended Usage : Constructor. + @since 7.0 + @post Delimeter is set + */ + TDelimitedAddressParser(); + +/** + @fn Parse(const TDesC& aAddress) + Intended Usage : This parses the descriptor into address segments from + left to right. + @since 7.0 + @param aAddress A descriptor containing the address segment. + @pre The delimiter must have been set. + @post The current segment is the leftmost segment and the direction + of parsing is set from left to right. + */ + void Parse(const TDesC& aAddress); + }; + + +/** + @typedef TDelimitedBodyParser + Comments : For parsing body segment of mailto urls delimited by a '&' + as defined in RFC2368 and below. + This class is used by CMailtoSchemeHandler class. + + Define format of mailto url: + mailto:
? + + @since 7.0 + +@internalComponent +@released +*/ +typedef TDelimitedQueryParser16 TDelimitedBodyParser; + + +/** + @class + Comments : Parses the address segment and body segment as defined + in RFC2368 and below. + This class is used by CMailtoSchemeHandler class. + + Define format of mailto url: + mailto:
? + + @since 7.0 +*/ +class TMailtoUrlParser +/** +@internalComponent +@released +*/ + { +public: + +/** + @fn TMailtoUrlParser() + Intended Usage : Constructor. + @since 7.0 + */ + TMailtoUrlParser(); + +/** + @fn Parse(const TDesC& aData) + Intended Usage : Parses the address segment and body segment of mailto url. + @since 7.0 + @param aData A descriptor containing the data to be parsed. + @pre None + @post The address segment and body segment is parsed. + The current segment is the leftmost segment and the direction + of parsing is set from left to right. + */ + void Parse(const TDesC& aData); + +/** + @fn ExtractAddresses() + Intended Usage : Returns TDelimitedAddressParser + @since 7.0 + @return TDelimitedAddressParser& + @pre The address segment has been parsed. + */ + const TDelimitedAddressParser& ExtractAddresses() const; + +/** + @fn const TDelimitedBodyParser& ExtractBody() + Intended Usage : Returns TDelimitedBodyParser + @since 7.0 + @return const TDelimitedBodyParser& + @pre The body segment has been parsed + */ + const TDelimitedBodyParser& ExtractBody() const; + +private: + /** Contains the parsed address segment */ + TDelimitedAddressParser iAddressParser; + /** Contains the parsed body segment */ + TDelimitedBodyParser iBodyParser; + }; + + +/** + @typedef TDelimitedSmsParser + Comments : For parsing sms urls delimited by a ','. + This class is used by CSmsSchemeHandler class. + + @since 7.0 + +@internalComponent +@released +*/ +typedef TDelimitedAddressParser TDelimitedSmsParser; + + +/** + @class + Comments : This class contains parsing utility functions used by the + scheme handler classes. + @since 7.0 +*/ +class ParseUtil +/** +@internalComponent +@released +*/ + { +public: + +/** + @fn Subset(const TDesC& aDes, const TDesC& aSubset, TPtrC& aData) + Intended Usage : Sets the leftmost part of aDes up to the first non-allowable + character. + @since 7.0 + @param aDes A descriptor to be parsed. + @param aSubset A descriptor containing the allowed characters. + @param aData This is an output argument that is set to the + parsed descriptor. + */ + static void Subset(const TDesC& aDes, const TDesC& aSubset, TPtrC& aData); + }; + +#endif