diff -r 000000000000 -r b16258d2340f applayerprotocols/httpservice/src/httpheaderiter.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerprotocols/httpservice/src/httpheaderiter.cpp Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,195 @@ +// Copyright (c) 2003-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: +// + +#include "httpheaderiter.h" +#include "cheaders.h" +#include "cheaderfield.h" +#include "httpclientutils.h" + +// This class needs to be optimized. +EXPORT_C THttpHeaderParamIterator THttpHeaderParamIterator::operator++ (TInt) + { + THttpHeaderParamIterator it(iParameterArray, iPostIdx); + if(iParameterArray && iPostIdx < iParameterArray->Count()) + { + ++iPostIdx; + } + return it; + } + +EXPORT_C THttpHeaderParamIterator& THttpHeaderParamIterator::operator++ () + { + if(iParameterArray && iPostIdx < iParameterArray->Count()) + { + ++iPostIdx; + } + return *this; + } + +EXPORT_C TBool THttpHeaderParamIterator::AtEnd() const + { + return (!iParameterArray || iPostIdx >= iParameterArray->Count()); + } + +EXPORT_C const TDesC8& THttpHeaderParamIterator::Name() const + { + if(iParameterArray && iPostIdx < iParameterArray->Count()) + { + return (*iParameterArray)[iPostIdx]->Name().DesC(); + } + return KNullDesC8(); + } + +EXPORT_C THttpHeaderValueVariant THttpHeaderParamIterator::Value() const + { + if(iParameterArray && iPostIdx < iParameterArray->Count()) + { + return HttpClientUtils::CopyHttpHdrVal((*iParameterArray)[iPostIdx]->Value()); + } + return THttpHeaderValueVariant(); + } + +EXPORT_C THttpHeaderParamIterator::THttpHeaderParamIterator() +: iParameterArray(NULL), +iPostIdx(0) + { + } + +EXPORT_C THttpHeaderParamIterator::THttpHeaderParamIterator(const RPointerArray* aArray, TInt aIndex /* = 0 */) +: iParameterArray(aArray), +iPostIdx(aIndex) + { + + } + +// ----------------------------------------------------------------------------- +EXPORT_C THttpHeaderElementIterator THttpHeaderElementIterator::operator++ (TInt) + { + THttpHeaderElementIterator it(iElementArray, iPostIdx); + if(iElementArray && iPostIdx < iElementArray->Count()) + { + ++iPostIdx; + } + return it; + } + +EXPORT_C THttpHeaderElementIterator& THttpHeaderElementIterator::operator++ () + { + if(iElementArray && iPostIdx < iElementArray->Count()) + { + ++iPostIdx; + } + return *this; + } + +EXPORT_C TBool THttpHeaderElementIterator::AtEnd() const + { + return (!iElementArray || iPostIdx >= iElementArray->Count()); + } + +EXPORT_C THttpHeaderValueVariant THttpHeaderElementIterator::Value() const + { + if(iElementArray && iPostIdx < iElementArray->Count()) + { + return HttpClientUtils::CopyHttpHdrVal((*iElementArray)[iPostIdx]->Value()); + } + return THttpHeaderValueVariant(); + } + +EXPORT_C THttpHeaderParamIterator THttpHeaderElementIterator::Parameter() const + { + if(iElementArray == NULL) + return THttpHeaderParamIterator(); + return THttpHeaderParamIterator(&(*iElementArray)[iPostIdx]->iParams); + } + +EXPORT_C THttpHeaderElementIterator::THttpHeaderElementIterator() +: iElementArray(NULL), +iPostIdx(0) + { + + } + +EXPORT_C THttpHeaderElementIterator::THttpHeaderElementIterator(const RPointerArray* aArray, TInt aIndex /* = 0 */) +: iElementArray(aArray), +iPostIdx(aIndex) + { + + } + +// ---------------------------------------------------------------------- +EXPORT_C THttpHeaderIterator THttpHeaderIterator::operator++ (TInt) + { + THttpHeaderIterator it(iHttpHeaders, iPostIdx); + if(iHttpHeaders && iPostIdx < iHttpHeaders->iFields.Count()) + { + ++iPostIdx; + } + return it; + } + +EXPORT_C THttpHeaderIterator& THttpHeaderIterator::operator++ () + { + if(iHttpHeaders && iPostIdx < iHttpHeaders->iFields.Count()) + { + ++iPostIdx; + } + return *this; + } + +EXPORT_C TBool THttpHeaderIterator::AtEnd() const + { + return (!iHttpHeaders || iPostIdx >= iHttpHeaders->iFields.Count()); + } + +EXPORT_C const TDesC8& THttpHeaderIterator::Name() const + { + if(iHttpHeaders && iPostIdx < iHttpHeaders->iFields.Count()) + { + return iHttpHeaders->iFields[iPostIdx].iFieldName.DesC(); + } + return KNullDesC8(); + } + +EXPORT_C THttpHeaderElementIterator THttpHeaderIterator::Elements() const + { + if(iHttpHeaders) + THttpHeaderElementIterator(); + + return THttpHeaderElementIterator(&iHttpHeaders->iFields[iPostIdx].iField->iElementArray); + } + +EXPORT_C THttpHeaderParamIterator THttpHeaderIterator::Parameters() const + { + if(iHttpHeaders) + THttpHeaderParamIterator(); + + return THttpHeaderParamIterator(&iHttpHeaders->iFields[iPostIdx].iField->iParameterArray); + } + +EXPORT_C THttpHeaderIterator::THttpHeaderIterator() +: iHttpHeaders(NULL), +iPostIdx(0) + { + + } + +EXPORT_C THttpHeaderIterator::THttpHeaderIterator(const CHeaders* aHeaders, TInt aIndex /* = 0 */) +: iHttpHeaders(aHeaders), + iPostIdx(aIndex) + { + + } +