webservices/wsframework/inc/sencontext.h
changeset 0 62f9d29f7211
--- /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 <e32base.h>
+#include <e32std.h>
+#include "msencontext.h"
+#include "senpointermap.h"
+
+// FORWARD DECLARATIONS
+class CSenContextItem;
+class CSenXmlReader;
+
+
+
+// TYPE DEFS
+typedef RSenPointerMap<TDesC8, CSenContextItem> 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