--- a/telutils/phoneparser/src/CPhoneGsmSimControlParser.cpp Mon Aug 23 15:50:31 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,369 +0,0 @@
-/*
-* Copyright (c) 2002 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: Parser for SIM control procedures.
-*
-*/
-
-
-// INCLUDE FILES
-#include "cphonegsmsimcontrolparser.h"
-#include "cphonegsmparserresult.h"
-#include "cphonegsmoptioncontainer.h"
-
-// CONSTANTS
-_LIT( KPhoneSimControlPinChangeCode, "04" );
-_LIT( KPhoneSimControlPin2ChangeCode, "042" );
-_LIT( KPhoneSimControlPinUnblockCode, "05" );
-_LIT( KPhoneSimControlPin2UnblockCode, "052" );
-
-const TInt KPhoneSimControlPinMinLength = 4;
-const TInt KPhoneSimControlPinMaxLength = 8;
-const TInt KPhoneSimControlPukLength = 8;
-
-const TInt KPhoneSimControlAsterisk = '*';
-const TInt KPhoneSimControlHash = '#';
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::CPhoneGsmSimControlParser
-// -----------------------------------------------------------------------------
-//
-CPhoneGsmSimControlParser::CPhoneGsmSimControlParser()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::NewLC
-// -----------------------------------------------------------------------------
-//
-CPhoneGsmSimControlParser* CPhoneGsmSimControlParser::NewLC()
- {
- CPhoneGsmSimControlParser* self =
- new ( ELeave ) CPhoneGsmSimControlParser;
-
- CleanupStack::PushL( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::ParseL
-//
-// Parse sim control procedures.
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneGsmSimControlParser::ParseL(
- const TDesC& aString,
- CPhoneGsmParserResult& aResult,
- CPhoneGsmOptionContainerBase& aOptions )
- {
- aResult.ClearL();
-
- TBool sendOperation = aOptions.FindOptionStatus( KPhoneOptionSend );
- TBool incall = aOptions.FindOptionStatus( KPhoneOptionInCall );
-
- TBool result = DoParseL( aString, aResult, sendOperation, incall );
-
- if ( !result )
- {
- aResult.ClearL();
- }
-
- return result;
- }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::DoParseL
-//
-// Parse sim control procedures.
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneGsmSimControlParser::DoParseL(
- const TDesC& aString,
- CPhoneGsmParserResult& aResult,
- TBool aSendOperation,
- TBool /*aInCall*/ )
- {
- TBool result = EFalse;
- aResult.ClearL();
-
- TLex input( aString );
-
- if ( !aSendOperation )
- {
- result = HandlePinOperationsL( input, aResult );
- }
-
- return result;
- }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::HandlePinOperationsL
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneGsmSimControlParser::HandlePinOperationsL(
- TLex& aInput,
- CPhoneGsmParserResult& aResult )
- {
- TBool result = EFalse;
- TLexMark start;
- aInput.Mark( start );
-
- if ( HandlePinPrefix( aInput, aResult ) )
- {
- TPtrC number( NextNumber( aInput ) );
-
- if ( number == KPhoneSimControlPinChangeCode )
- {
- aResult.SetUid( KPhoneUidPinChange );
- result = HandlePinChangeL( aInput, aResult );
- }
- else if ( number == KPhoneSimControlPin2ChangeCode )
- {
- aResult.SetUid( KPhoneUidPin2Change );
- result = HandlePinChangeL( aInput, aResult );
- }
- else if ( number == KPhoneSimControlPinUnblockCode )
- {
- aResult.SetUid( KPhoneUidPinUnblock );
- result = HandlePinUnblockL( aInput, aResult );
- }
- else if ( number == KPhoneSimControlPin2UnblockCode )
- {
- aResult.SetUid( KPhoneUidPin2Unblock );
- result = HandlePinUnblockL( aInput, aResult );
- }
- }
-
- if ( !result )
- {
- aResult.ClearL();
- aInput.UnGetToMark( start );
- }
-
- return result;
- }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::HandlePinPrefix
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneGsmSimControlParser::HandlePinPrefix(
- TLex& aInput,
- CPhoneGsmParserResult& /*aResult*/ )
- {
- TBool result = ETrue;
-
- TLexMark start;
- aInput.Mark( start );
-
- if ( aInput.Peek() != KPhoneSimControlAsterisk )
- {
- result = EFalse;
- }
- else
- {
- aInput.Inc();
-
- if ( aInput.Peek() != KPhoneSimControlAsterisk )
- {
- result = EFalse;
- }
- else
- {
- aInput.Inc();
- }
- }
-
- if ( !result )
- {
- aInput.UnGetToMark( start );
- }
-
- return result;
- }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::HandlePinChangeL
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneGsmSimControlParser::HandlePinChangeL(
- TLex& aInput,
- CPhoneGsmParserResult& aResult )
- {
- TBool result = EFalse;
- TLexMark start;
- aInput.Mark( start );
-
- result = HandlePinL( aInput, aResult );
- result = result && HandlePinL( aInput, aResult );
- result = result && HandlePinL( aInput, aResult );
- result = result && HandleNoParameters( aInput, aResult );
-
- if ( !result )
- {
- aInput.UnGetToMark( start );
- }
-
- return result;
- }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::HandlePinUnblockL
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneGsmSimControlParser::HandlePinUnblockL(
- TLex& aInput,
- CPhoneGsmParserResult& aResult )
- {
- TBool result = EFalse;
- TLexMark start;
- aInput.Mark( start );
-
- result = HandlePukL( aInput, aResult );
- result = result && HandlePinL( aInput, aResult );
- result = result && HandlePinL( aInput, aResult );
- result = result && HandleNoParameters( aInput, aResult );
-
- if ( !result )
- {
- aInput.UnGetToMark( start );
- }
-
- return result;
- }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::HandleNoParameters
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneGsmSimControlParser::HandleNoParameters(
- TLex& aInput,
- CPhoneGsmParserResult& /*aResult*/ )
- {
- TBool result = EFalse;
-
- if ( aInput.Remainder().Length() == 1 && // single character
- aInput.Peek() == KPhoneSimControlHash )
- {
- result = ETrue;
- aInput.Inc();
- }
-
- return result;
- }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::HandlePinL
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneGsmSimControlParser::HandlePinL(
- TLex& aInput,
- CPhoneGsmParserResult& aResult )
- {
- return HandleParameterL(
- aInput,
- aResult,
- CPhoneGsmSimControlParser::ValidatePin );
- }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::HandlePukL
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneGsmSimControlParser::HandlePukL(
- TLex& aInput,
- CPhoneGsmParserResult& aResult )
- {
- return HandleParameterL(
- aInput,
- aResult,
- CPhoneGsmSimControlParser::ValidatePuk );
- }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::HandleParameterL
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneGsmSimControlParser::HandleParameterL(
- TLex& aInput,
- CPhoneGsmParserResult& aResult,
- TParameterValidationFunction aFunc )
- {
- TBool result = EFalse;
-
- TLexMark start;
- aInput.Mark( start );
-
- if ( aInput.Peek() == KPhoneSimControlAsterisk )
- {
- aInput.Inc();
-
- TPtrC password( NextNumber( aInput ) );
-
- if ( aFunc( password ) )
- {
- aResult.AddParameterL( password );
- result = ETrue;
- }
- }
-
- if ( !result )
- {
- aInput.UnGetToMark( start );
- }
-
- return result;
- }
-
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::NextNumber
-// -----------------------------------------------------------------------------
-//
-TPtrC CPhoneGsmSimControlParser::NextNumber(
- TLex& aInput )
- {
- TLexMark start;
- aInput.Mark( start );
-
- while ( aInput.Peek().IsDigit() )
- {
- aInput.Inc();
- }
-
- return aInput.MarkedToken( start );
- }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::ValidatePin
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneGsmSimControlParser::ValidatePin( const TDesC& aParam )
- {
- return ( aParam.Length() >= KPhoneSimControlPinMinLength ) &&
- ( aParam.Length() <= KPhoneSimControlPinMaxLength );
- }
-
-// -----------------------------------------------------------------------------
-// CPhoneGsmSimControlParser::ValidatePuk
-// -----------------------------------------------------------------------------
-//
-TBool CPhoneGsmSimControlParser::ValidatePuk( const TDesC& aParam )
- {
- return ( aParam.Length() == KPhoneSimControlPukLength );
- }
-
-// End of File