telutils/phoneparser/inc/CPhoneGsmPhoneNumberParser.h
changeset 0 ff3b6d0fd310
child 19 7d48bed6ce0c
--- /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