webservices/wsframework/inc/msentransportcontext.h
changeset 0 62f9d29f7211
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsframework/inc/msentransportcontext.h	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,211 @@
+/*
+* 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 M_SEN_TRANSPORT_CONTEXT_H
+#define M_SEN_TRANSPORT_CONTEXT_H
+
+// INCLUDES
+#include <e32std.h>
+#include "msencontext.h"
+
+/**
+* This class defines abstract interface for transport plug-in context, 
+* which is visible to CSenTransport ECOM plug-in implementations.
+*/
+
+// FORWARD DECLARATIONS
+class MSenRemoteServiceSession;
+class MSenCoreServiceManager;
+class CSenWSDescription;
+class CSenServiceSession;
+
+
+// CLASS DECLARATION
+class MSenTransportContext : public MSenContext
+    {
+    public:
+        /**
+        * Adds new MSenCoreServiceManager& type value into context,
+        * typically identified by this key: KSenCtxKeyCoreServiceManager.
+        * @aKey identifies new value
+        * @aValue is the value being added. Ownership is NEVER transferred
+        * to this context.
+        * @return KErrNone on success, 
+        *         KErrAlreadyExists, if the key is reserved,
+        *         or some other system-wide error code.
+        */
+        // virtual TInt AddCore(MSenCoreServiceManager& aValue) = 0;
+
+        /*
+        * Method returns MSenCoreServiceManager* type value.
+        * @return reference to Core Service Manager.
+        * LeaveCode:
+        *        KErrNotFound - If Core is not available in this context
+        *        KErrSenTypeMismatch - If KSenCtxKeyCoreServiceManager
+        *        illegally points to other than CSenCoreServiceManager
+        *        instance (not to happen).
+        */
+        virtual MSenCoreServiceManager& GetCoreL() = 0;
+        //virtual MSenCoreServiceManager* GetCore() = 0;
+
+        /*
+        * Adds session description (as CSenWSDescription*) into context,
+        * typically identified by following key: KSenCtxKeyServiceSession
+        * 
+        * @param aValue is the value being added. Ownership is NOT transferred
+        * to this context.
+        * 
+        * @return KErrNone on success, 
+        *         KErrAlreadyExists, if the key is reserved,
+        *         or some other system-wide error code.
+        */
+        // virtual TInt AddSession(CSenServiceSession* aValue) = 0; // protected context
+
+        /*
+        * Updates new CSenWSDescription* type value into context, typically
+        * identified by following key: KSenCtxKeyServiceSession
+        * If some value for the same key already exists, it is replaced with the new value.
+        * @param aValue is the updated value, which may replace
+        *         any existing value, which used same key.
+        *         Ownership is NOT transferred to this context.
+        * @return KErrNone on success, 
+        *         or some other system-wide error code.
+        */
+        //virtual TInt UpdateSession(CSenServiceSession* aValue) = 0;  // protected context
+
+        /*
+        * Method returns the service session which loaded (created) this transport plug-in instance.
+        * 
+        * @return value behind given key, or NULL, if such is not found.
+        * Ownership cannot be transferred, as it is never to be held by this context.   
+        * Method leaves with KErrSenTypeMismatch error code,
+        * if value at this index is not CSenServiceSession type,
+        * or any of it's subclass's.
+        */
+        virtual const CSenServiceSession* GetSession() = 0;
+        //virtual CSenServiceSession& GetSessionL() = 0;
+
+        // virtual TInt AddInitializer(CSenWSDescription* aValue) = 0; // protected context
+        // virtual TInt UpdateInitializer(CSenWSDescription* aValue) = 0;  // protected context
+
+        /*
+        * Method returns session initializer as CSenWSDescriptionL* type value.
+        * 
+        * @returns value behind given key, or NULL, if not
+        * found.
+        * Ownership is NOT transferred, as it is NEVER to be held by this context.
+        * Method leaves with KErrSenTypeMismatch error code,
+        * if value at this index is not CSenWSDescription*
+        * type, or any of it's subclass's.   
+        */
+        virtual CSenWSDescription& GetInitializerL() = 0;
+
+        //virtual const CSenWSDescription* GetInitializer() = 0;
+
+        /*
+        * Adds new CSenWSDescription* type value into context, identified by given key.
+        * 
+        * @param aKey identifies new value
+        * @param aValue is the value being added. Ownership is transferred
+        * to this context.
+        * 
+        * @return KErrNone on success, 
+        *         KErrAlreadyExists, if the key is reserved,
+        *         or some other system-wide error code.
+        */
+        //virtual TInt AddServiceDescription(const TDesC8& aKey, CSenWSDescription* aValue) = 0;
+
+        /*
+        * Updates session description (as CSenWSDescription*) into context,
+        * typically identified by following key: KSenCtxKeyServiceSession
+        * If some value for this key already exists, it is destroyed and replaced
+        * by the new value.
+        * 
+        * @param aKey identifies new value
+        * @param aValue is the updated value, which may replace
+        *         any existing value, which used same key.
+        *         Ownership is transferred to this context.
+        * @return KErrNone on success, 
+        *         or some other system-wide error code.
+        */
+        //virtual TInt UpdateServiceDescription(const TDesC8& aKey, CSenWSDescription* aValue) = 0;
+
+        /*
+        * Method returns CSenWSDescriptionL* type value.
+        * 
+        * @return value behind given key, or NULL, if not
+        * found.
+        * Ownership is  not transferred, but remains
+        * to be held by this context.   
+        * Method leaves with KErrSenTypeMismatch error code,
+        * if value at this index is not CSenSoapEnvelope* type.   
+        */
+        //virtual const CSenWSDescription* GetServiceDescriptionL(const TDesC8& aKey) = 0;
+
+        /*
+        * Adds new MSenRemoteServiceSession& type value into context, identified by given key.
+        * 
+        * @param aKey identifies new value
+        * @param aValue is the value being added. Ownership is transferred
+        * to this context.
+        * 
+        * @return KErrNone on success, 
+        *         KErrAlreadyExists, if the key is reserved,
+        *         or some other system-wide error code.
+        */
+        //virtual TInt Add(const TDesC8& aKey, MSenRemoteServiceSession& aValue) = 0; // protected context
+
+        /*
+        * Updates new MSenRemoteServiceSession& type value into context, identified by given key.
+        * If some value for the same key already exists, it is destroyed and replaced
+        * by the new value.
+        * 
+        * @param aKey identifies new value
+        * @param aValue is the updated value, which may replace
+        *         any existing value, which used same key.
+        *         Ownership is transferred to this context.
+        * 
+        * @return KErrNone on success, 
+        *         or some other system-wide error code.
+        */
+        //virtual TInt Update(const TDesC8& aKey, MSenRemoteServiceSession& aValue) = 0;
+
+        /*
+        * Method returns MSenRemoteServiceSession* type value.
+        * 
+        * @param aKey identifies remote service session
+        * 
+        * @returns value behind given key, or NULL, if not
+        * found.
+        * Ownership is  not transferred, but remains
+        * to be held by this context.   
+        * Method leaves with KErrSenTypeMismatch error code,
+        * if value at this index is not MSenRemoteServiceSession* type.   
+        */
+        //virtual const MSenRemoteServiceSession* GetSenRemoteServiceSessionL(const TDesC8& aKey) = 0;
+    };
+
+#endif // M_SEN_SESSION_CONTEXT_H
+
+// End of File