--- /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 <e32base.h>
+#include <delimitedparser16.h>
+#include <delimitedquery16.h>
+
+
+/**
+ @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:<address segment>?<body segment>
+
+ @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:<address segment>?<body segment>
+
+ @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:<address segment>?<body segment>
+
+ @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