diff -r 000000000000 -r 62f9d29f7211 webservices/wsframework/inc/senmessagecontext.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webservices/wsframework/inc/senmessagecontext.h Thu Jan 07 16:19:19 2010 +0200 @@ -0,0 +1,146 @@ +/* +* Copyright (c) 2006 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: Note that this class is ment for WS internal components, +* and not ment to act as part of public API +* +*/ + + + + + + + + +#ifndef SEN_MESSAGE_CONTEXT_H +#define SEN_MESSAGE_CONTEXT_H + + +// INCLUDES +#include +#include +#include "sencontext.h" +#include "senpointermap.h" +#include "msenmessagecontext.h" + +// FORWARD DECLARATIONS +class CSenContextItem; +class MSenProperties; +class CSenXmlReader; +class MSenRemoteServiceConsumer; +class CSenChunk; + + +// CLASS DECLARATION +class CSenMessageContext : public CSenContext, public MSenMessageContext + { + public: + /** + * Standard 2-phased constructor + * @param aDirection indicate the initial direction of this message context. + * For requests, it is "outbound", and for responses or one way notifications + * from some (remote) service) it is "inbound". + * @param apOwnedTp - pointer to (transport) properties, which ownership is taken. + * These properties are typically a clone to the propeties currently owned + * by transport plug-in (ECOM) instance. Cloning allows independency upon + * changes that last during the life-time of a message transaction only. + * Note that if apOwnedTp is NULL, this constructor will leave with KErrArgument. + * @return pointer to new message context + */ + IMPORT_C static CSenMessageContext* NewL(SenContext::TContextDirection aDirection, + MSenProperties* apOwnedTp); + /** + * Standard 2-phased constructor + * @param aDirection indicate the initial direction of this message context. + * For requests, it is "outbound", and for responses or one way notifications + * from some (remote) service) it is "inbound". + * @param apOwnedTp - pointer to transport properties, which ownership is taken. + * These properties are typically a clone to the propeties currently owned + * by transport plug-in (ECOM) instance. Cloning allows independency upon + * changes that last during the life-time of a message transaction only. + * Note that if apOwnedTp is NULL, this constructor will leave with KErrArgument. + */ + IMPORT_C static CSenMessageContext* NewLC(SenContext::TContextDirection aDirection, + MSenProperties* apOwnedTp); + + // Destructor: + IMPORT_C virtual ~CSenMessageContext(); + + // New methods: + + // From MSenMessageContext: + virtual MSenMessage* MessageL(); //codescannerwarnigs + virtual TInt SetMessage(MSenMessage* apMessage, TBool aOwned = ETrue); + + virtual CSenChunk* ChunkL(); //codescannerwarnings + virtual TInt SetChunk(CSenChunk* apMsgAsChunk, TBool aOwned = ETrue); + + virtual TInt SetProperties(MSenProperties* apProperties, TBool aOwned = ETrue); + virtual MSenProperties* Properties(); + + virtual TInt Add(const TDesC8& aKey, MSenMessage* apMessage, TBool aOwned = ETrue); + virtual TInt Update(const TDesC8& aKey, MSenMessage* apMessage, TBool aOwned = ETrue); + MSenMessage* GetMessageL(const TDesC8& aKey); //codescannerwarnings + + + // --> deprecated, remove from MSenMessageContext: <-- + virtual CSenSoapMessage* GetCurrentSoapMessage(); + virtual TPtrC8 GetMessageL(); + + virtual TInt Add(const TDesC8& aKey, CSenSoapEnvelope* aValue); + virtual TInt Update(const TDesC8& aKey, CSenSoapEnvelope* aValue); + virtual const CSenSoapEnvelope* GetSenSoapEnvelopeL(const TDesC8& aKey); + + + + // From MSenContext: + virtual SenContext::TContextType Type() const; + virtual SenContext::TContextDirection Direction() const; + virtual TInt Add(const TDesC8& aKey, const TDesC8& aValue); + virtual TInt Update(const TDesC8& aKey, const TDesC8& aValue); + virtual const TDesC8* GetDesC8L(const TDesC8& aKey); + virtual TInt Add(const TDesC8& aKey, TInt aValue); + virtual TInt Update(const TDesC8& aKey, TInt aValue); + virtual const TInt* GetIntL(const TDesC8& aKey); + virtual TInt Add(const TDesC8& aKey, CSenElement* aValue); + virtual TInt Update(const TDesC8& aKey, CSenElement* aValue); + virtual const CSenElement* GetSenElementL(const TDesC8& aKey); + virtual TInt Add(const TDesC8& aKey, TAny* aValue); + virtual TInt Update(const TDesC8& aKey, TAny* aValue); + virtual TAny* GetAnyL(const TDesC8& aKey); //codescannerwarnings + virtual TInt Remove(const TDesC8& aKey); + virtual TInt Count() const; + virtual TPtrC8 KeyAtL(TInt aIndex); + virtual void Reset(); + virtual const CSenXmlReader* GetParser(); + + virtual TInt SetDirection( SenContext::TContextDirection aDirection ); + + protected: + IMPORT_C CSenMessageContext(SenContext::TContextDirection aDirection, + MSenProperties* apOwnedTp); + + IMPORT_C void BaseConstructL(); + + private: + // Helper method(s): + CSenContextItem* MessageToItem(MSenMessage* apMessage, TBool aOwned, TInt& aError); + + // Data: + MSenProperties* ipOwnedTp; // owned; delallocated via IsSafeToCast() + }; + +#endif // SEN_MESSAGE_CONTEXT_H + +// End of File