diff -r 000000000000 -r 62f9d29f7211 webservices/wsframework/inc/msentransportcontext.h --- /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 +#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