williamr@2: // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: /** williamr@2: @file RHeaderField.h williamr@2: @warning : This file contains Rose Model ID comments - please do not delete williamr@2: */ williamr@2: williamr@2: #ifndef __RHEADERFIELD_H__ williamr@2: #define __RHEADERFIELD_H__ williamr@2: williamr@2: // System includes williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: // Forward declarations williamr@2: class CHeaderField; williamr@2: class THeaderFieldPartIter; williamr@2: williamr@2: williamr@2: /** williamr@2: The default chunk size for Raw data should be set to the average length of a header field when encoded in williamr@2: plaintext. williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KDefaultRawChunkSize= 32; williamr@2: williamr@2: williamr@2: //##ModelId=3B1E52A50396 williamr@2: class RHeaderField williamr@2: /** williamr@2: An proxy object for a single field in an HTTP header. The class is used by williamr@2: implementations of CHeaderCodec in order to manipulate the header at the part and williamr@2: parameter level, or to obtain raw data, during a header encode/decode operation. williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: // methods williamr@2: williamr@2: //##ModelId=3BA6004002BC williamr@2: RHeaderField(CHeaderField& aHeaderField); williamr@2: williamr@2: IMPORT_C williamr@2: //##ModelId=3B1E52A503C0 williamr@2: RStringF Name() const; williamr@2: williamr@2: IMPORT_C williamr@2: //##ModelId=3B1E52A503BF williamr@2: THeaderFieldPartIter PartsL(); williamr@2: williamr@2: IMPORT_C williamr@2: //##ModelId=3B1E52A503B9 williamr@2: void RawDataL(TPtrC8& aRawData); williamr@2: williamr@2: IMPORT_C williamr@2: //##ModelId=3BA6004002B2 williamr@2: RHTTPHeaders Collection(); williamr@2: williamr@2: IMPORT_C williamr@2: //##ModelId=3B1E52A503B6 williamr@2: void SetPartL(CHeaderFieldPart* aPart, TInt aIndex); williamr@2: williamr@2: IMPORT_C williamr@2: //##ModelId=3B1E52A503B4 williamr@2: void BeginRawDataL(TInt aChunkSize = KDefaultRawChunkSize); williamr@2: williamr@2: IMPORT_C williamr@2: //##ModelId=3B1E52A503AB williamr@2: void WriteRawDataL(const TDesC8& aData); williamr@2: williamr@2: IMPORT_C williamr@2: //##ModelId=3B1E52A503AD williamr@2: void WriteRawDataL(TChar aData); williamr@2: williamr@2: IMPORT_C williamr@2: //##ModelId=3B1E52A503AA williamr@2: void CommitRawData(); williamr@2: williamr@2: private: // attributes williamr@2: williamr@2: /** The internal representation of this header field williamr@2: */ williamr@2: //##ModelId=3B1E52A503A2 williamr@2: CHeaderField& iHeaderField; williamr@2: }; williamr@2: williamr@2: inline RHeaderField::RHeaderField(CHeaderField& aHeaderField) williamr@2: : iHeaderField(aHeaderField) williamr@2: { williamr@2: } williamr@2: williamr@2: #endif // __CHEADERFIELD_H__