--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerprotocols/httptransportfw/Test/T_HttpIntegration/CCmdParser.cpp Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,133 @@
+// 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:
+// $Header$
+// GT0149 Applications Protocol Integration Test Harness
+// blank application
+// This file contains the implementation for CCmdPar class' member
+// functions. CCmdPar is an abstract base class for deriving different
+// SET command classes. CCmdPar contains parsing of SET commands.
+// rev: mjdavey, symbian@mjdss.com, July 2002
+// for: Typhoon (7.0s) & JetStream (8.0)
+// Include Files
+//
+//
+
+#include "CCmdParser.h"
+
+//-----------------------------------------------------------------------------
+
+CCmdPar::~CCmdPar ( )
+{
+}
+
+//-----------------------------------------------------------------------------
+
+void CCmdPar::ConstructL(TInt aCommandId, // in: command identifier
+ const TDesC& aKeyphrase ) // in: beginning of the command name
+{
+CCmdBase::ConstructL(aCommandId, aKeyphrase);
+}
+
+//-----------------------------------------------------------------------------
+// This function parses and processes a SET command line
+
+TInt CCmdPar::ProcessL( const TDesC& aCommand) // command line
+{
+// Complete the test machine - will then get the next cmd
+Machine()->CompleteRequest();
+
+TPtrC param;
+TRAPD( ret, param.Set( ParamsL( aCommand )) );
+if ( ret != KErrNone )
+ return Error(ret, KFmtErrInvalidCmd, &Keyphrase());
+
+// Mark that the value is set
+TInt old = iHasBeenSet;
+iHasBeenSet = ETrue;
+
+// Check that "=" or "+=" or ":=" follows
+TBool assignment = ETrue;
+TBool is_setfrom = EFalse;
+
+TLex parse(param);
+parse.SkipSpace();
+if (TfrLex::ValF(parse, KTxtAssign) == KErrNone)
+ assignment = ETrue;
+else if (TfrLex::ValF(parse, KTxtAddition) == KErrNone)
+ assignment = EFalse;
+else if (TfrLex::ValF(parse, KTxtSetFrom) == KErrNone)
+ assignment = is_setfrom = ETrue;
+else if (parse.TokenLength() == 0)
+ ret = Error(KErrArgument, KFmtErrInvalidCmd, &Keyphrase());
+else
+ ret = Error(KErrArgument, KFmtErrMissing, &KTxtAssign);
+
+// Check that the value exists and set or add the value
+if (ret == KErrNone)
+ {
+ parse.SkipSpace();
+ TPtrC token = parse.Remainder();
+ if (token.Length() == 0)
+ ret = Error(KErrArgument, KTxtErrValueMissing);
+ else if (assignment)
+ ret = (is_setfrom ? SetFrom(token) : SetValue(token));
+ else
+ ret = AddValue( token );
+ }
+
+// If not succeeded, reset information about setting
+if (ret != KErrNone)
+ iHasBeenSet = old;
+
+return ret;
+}
+
+//-----------------------------------------------------------------------------
+// This function provides the default implementation which gives an
+// error message about addition
+
+TInt CCmdPar::AddValue(const TDesC& aValue)
+{
+aValue.Length(); // to avoid warning about unused parameter
+return Error(KErrArgument, KTxtErrNoAddition);
+}
+
+//-----------------------------------------------------------------------------
+// This function provides the default implementation which gives an
+// error message about setting the value from file. +TVi
+
+TInt CCmdPar::SetFrom(const TDesC& aValue)
+{
+aValue.Length(); // to avoid warning about unused parameter
+return Error(KErrArgument, KTxtErrNoSetFrom);
+}
+
+//-----------------------------------------------------------------------------
+
+TBool CCmdPar::HasBeenSet ( )
+{
+return iHasBeenSet;
+}
+
+//-----------------------------------------------------------------------------
+
+void CCmdPar::MarkNotSet ( )
+{
+iHasBeenSet = EFalse;
+}
+
+//-----------------------------------------------------------------------------
+// End of File
+//-----------------------------------------------------------------------------
+