diff -r 000000000000 -r 62f9d29f7211 webservices/wsframework/inc/sencontext.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webservices/wsframework/inc/sencontext.h Thu Jan 07 16:19:19 2010 +0200 @@ -0,0 +1,117 @@ +/* +* Copyright (c) 2002-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: Header declaration +* +*/ + + + + + + + + +#ifndef SEN_CONTEXT_H +#define SEN_CONTEXT_H + + +// INCLUDES +#include +#include +#include "msencontext.h" +#include "senpointermap.h" + +// FORWARD DECLARATIONS +class CSenContextItem; +class CSenXmlReader; + + + +// TYPE DEFS +typedef RSenPointerMap RCtxItemMap; // pointer map is internal: Utils\inc + +// CLASS DECLARATION +/** +* This class is ment for INTERNAL use only, never to be +* published "as it is". The reason for not to inherit from MSenContext +* is here: this allows one to utilize this base class in *children* +* of MSenContext, which get ready base for *basic* context implementation +* and thus only need to write new methods they define in their own +* interface (if it is all that is needed). +*/ +class CSenContext : public CBase //, public MSenContext + { + 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 aXmlReader is a reference to XML parser (not owned) + * @return pointer to new context + */ + IMPORT_C static CSenContext* NewL(SenContext::TContextDirection aDirection); + /** + * 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". + * @return pointer to new context, which is left on cleanup stack. + */ + IMPORT_C static CSenContext* NewLC(SenContext::TContextDirection aDirection); + + // Destructor: + IMPORT_C virtual ~CSenContext(); + + // Defined in MSenContext (must remain equal): + 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 const CSenXmlReader* GetParser(); + virtual TInt Remove(const TDesC8& aKey); + virtual TInt Count() const; + virtual TPtrC8 KeyAtL(TInt aIndex); + virtual void Reset(); + + virtual TInt SetDirection(SenContext::TContextDirection aDirection); + + + + protected: + IMPORT_C CSenContext(SenContext::TContextDirection aDirection); + IMPORT_C void BaseConstructL(); + + // Data: + RCtxItemMap iItems; // owned + + private: + // Data: + SenContext::TContextDirection iDirection; + + }; + +#endif // SEN_CONTEXT_H + +// End of File