--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telutils/phoneparser/inc/CPhoneGsmPhoneNumberParser.h Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,197 @@
+/*
+* Copyright (c) 2002-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: It is parser for phone numbers.
+*
+*/
+
+
+#ifndef CPHONEGSMPHONENUMBERPARSER_H
+#define CPHONEGSMPHONENUMBERPARSER_H
+
+// INCLUDES
+#include "CPhoneGsmParserBase.h"
+
+// FORWARD DECLARATIONS
+class CPhoneGsmOptionContainer;
+// CONSTANTS
+
+/*
+* PHONE NUMBER UIDS
+*/
+
+const TUint32 KPhoneUidPhoneNumber =
+ PHONE_MAKE_UID( KPhoneGsmUidDialPhoneNumber, 0 );
+
+/*
+* Dial phone number related constants, store to aux information field.
+*/
+
+/*
+* There was no prefix, use default clir.
+*/
+const TUint KPhoneDialDefaultClir = 0;
+
+/*
+* There was clir suppress prefix.
+*/
+const TUint KPhoneDialSuppressClir = 1;
+
+/*
+* There was clir invoke prefix.
+*/
+const TUint KPhoneDialInvokeClir = 2;
+
+// CLASS DECLARATION
+
+/**
+* It is parser for phone numbers.
+*
+* @since 1.0
+* @lib phoneparser.lib
+*/
+NONSHARABLE_CLASS( CPhoneGsmPhoneNumberParser )
+ : public CPhoneGsmParserBase
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CPhoneGsmPhoneNumberParser* NewLC();
+
+ public: // Functions from base classes
+
+ /**
+ * From CPhoneGsmParserBase.
+ * Parse string.
+ *
+ * @param aString It is string to be parsed.
+ * @param aResult It will contain result.
+ * @param aOptionUid It is the uid of the option.
+ * @return It returns boolean value indicating success of parsing.
+ */
+ TBool ParseL(
+ const TDesC& aString,
+ CPhoneGsmParserResult& aResult,
+ CPhoneGsmOptionContainerBase& aOptions );
+
+ private:
+
+ /**
+ * C++ default constructor.
+ */
+ CPhoneGsmPhoneNumberParser();
+
+ /**
+ * Parse.
+ *
+ * @param aString It is string to be parsed.
+ * @param aResult It will contain result.
+ * @param aOptionUid It is the uid of the option.
+ * @return It returns boolean value indicating success of parsing.
+ */
+ TBool DoParseL(
+ const TDesC& aString,
+ CPhoneGsmParserResult& aResult,
+ CPhoneGsmOptionContainer& aOptions );
+
+
+ /**
+ * Handle supplementary service prefixes.
+ * Checks is there clir suppress/invoke prefix in the string.
+ * @param aLex Contains string to be handled.
+ * @param aResult It will contain result.
+ */
+ TBool HandleServicePrefix(
+ TLex& aLex,
+ CPhoneGsmParserResult& aResult );
+
+ /**
+ * Takes a main part of the phone number( before 'p','w' or
+ * second '+' marks ).
+ * And add it to parameter of the aResult with or without optional
+ * international prefix.
+ * @param aLex Contains string to be handled.
+ * @param aResult It will contain result.
+ */
+ TBool TakeNumberPartL(
+ TLex& aLex,
+ CPhoneGsmParserResult& aResult );
+
+ /**
+ * Takes Dtmf postfix and add it to parameter of the aResult.
+ * @param aLex Contains string to be handled.
+ * @param aResult It will contain result.
+ */
+ TBool TakeDtmfPostfixL(
+ TLex& aLex,
+ CPhoneGsmParserResult& aResult );
+
+ /**
+ * Checks if param aLeft is prefix of param aDest.
+ */
+ static TBool EqualsLeft( const TDesC& aDest, const TDesC& aLeft );
+
+ /**
+ * Checks if string contains p or w characters.
+ *
+ * @param aString It is string to be checked.
+ * @return ETrue if string contains p or w characters.
+ */
+ TBool ContainsPauseOrWaitChars( const TDesC& aString ) const;
+
+ /**
+ * Checks if rightmost character in string is #.
+ *
+ * @param aString It is string to be checked.
+ * @return ETrue if string is hash string.
+ */
+ TBool IsHashString( const TDesC& aString ) const;
+
+ /**
+ * Checks if string is zero and zero dialling is on and
+ * it is not in call situation.
+ *
+ * @param aString It is string to be checked.
+ * @param aOptions Is call options
+ * @return ETrue if zero dialling.
+ */
+ TBool IsZeroDialling( const TDesC& aString,
+ CPhoneGsmOptionContainer& aOptions ) const;
+
+ /**
+ * Checks if two digit dialling is on and string
+ * is two digit string.
+ *
+ * @param aString It is string to be checked.
+ * @return ETrue if two digit dialling.
+ */
+ TBool IsTwoDigitDialling( const TDesC& aString ) const;
+
+ /**
+ * Checks if Input string is a 2 digit starting with a "1"
+ * and it is not in call situation.
+ *
+ * @param aString It is string to be checked.
+ * @param aOptions Is call options
+ * @return ETrue if 1x dialling situation.
+ */
+ TBool Is1xDialling( const TDesC& aString,
+ CPhoneGsmOptionContainer& aOptions ) const;
+
+ };
+
+#endif // CPHONEGSMPHONENUMBERPARSER_H
+
+// End of File