webservices/wsframework/inc/msenserviceinvocationframework.h
changeset 0 62f9d29f7211
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsframework/inc/msenserviceinvocationframework.h	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,144 @@
+/*
+* Copyright (c) 2002-2005 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_SERVICE_INVOCATION_FRAMEWORK_H
+#define M_SEN_SERVICE_INVOCATION_FRAMEWORK_H
+
+// INCLUDES
+#include "msencoreservicemanager.h"
+#include "MSenServiceDescription.h"
+#include "MSenServiceDescription.h"
+
+// FORWARD DECLARATIONS
+class CSenServiceSession;
+class CSenCredential2;
+
+// CLASS DECLARATION
+
+/**
+* The core (father) interface for all Service Invocation Frameworks
+*/
+class MSIF
+    {
+    public:
+        
+        // New functions
+        
+        /**
+         * @return TDesC8& that indicates the TYPE of this framework (like ID-WSF, WS-STAR, ATOM, REST, OVI).
+         *         Typically it is a relaxed "binding" to either propriatary or well known and/or open 
+         *         spesification(s) that the framework implements.
+         */
+        virtual const TDesC8& Id() = 0;
+
+        /**
+         * Create a ServiceSession based upon the given ServiceDescription.
+         * The ServiceSession is expected to be "valid", i.e. ready for use
+         * by a client.
+         * @param aServiceDescription is the service description that was found
+         * (match) with given service invokation paramaters ("service pattern")
+         * @param aPattern contains the invokation parameters defined by the
+         * consumer who wishes to connect to a service. At minimum, this SD
+         * includes and endpoint and/or contract (service type).
+         * @param aNewSession is a ref-to-pointer that is used to "return"
+         * a valid sessions. Important note: in case that this method fails,
+         * it is ILLEGAL to put orphan object into this ref-to-ptr. Only in
+         * case of success, the ownership of aNewSession is transferred to caller(!)
+         * @param    aErrorMsg will be allocated to provide detailed
+         *           information about error, if available (like SOAP fault)
+         * @return KErrNone if successful (aNewSession ownership is transferred to
+         * caller) or some of the system-wide errorcodes (aNewSession should be NULL)
+         */
+        virtual TInt CreateServiceSessionL( MSenServiceDescription& aServiceDescription,
+                                            MSenServiceDescription& aPattern,
+                                            CSenServiceSession*& aNewSession,
+                                            MSenRemoteServiceConsumer& aRemoteConsumer,
+                                            HBufC8*& aErrorMsg ) = 0;
+
+
+        /**
+         * @return a new instance of a framework specific class that
+         * implements the ServiceDesccription interface.
+         */
+        virtual CSenWSDescription* NewServiceDescriptionL() = 0;
+
+        /**
+         * @return the CoreServiceManager for which this instance is working.
+         * This is used by the ServiceSession instances created by this
+         * framework.
+         * Note, in WSF, ServiceManager IS SINGLETON(!), so all Frameworks
+         * return their "owner" - that is - the only service manager in
+         * SenFramework
+         */
+        virtual MSenCoreServiceManager& Manager() = 0;
+
+        /**
+         * Attempt to register the ServiceDescription to the CoreServiceManager
+         * that owns the framework.
+         * This is a callback used by the ServiceManager to give frameworks
+         * a chance to replace a generic ServiceDescription into something
+         * that is more specific, and more useful, to the
+         * ServiceInvocationFramework.
+         * @param aServiceDescription A ServiceDescription
+         * @return TInt aError - indicates the error or KErrNone if successful
+         */
+        virtual TInt RegisterServiceDescriptionL( MSenServiceDescription& aServiceDescription ) = 0;
+
+
+        /**
+         * Attempts to unregister the ServiceDescription from the
+         * CoreServiceManager that owns the framework.
+         * This is a callback used by the ServiceManager.
+         * @param aServiceDescription A ServiceDescription
+         * @return TInt aError - indicates the error or KErrNone if successful
+         */
+        virtual TInt UnregisterServiceDescriptionL( MSenServiceDescription& aServiceDescription ) = 0;
+
+        /**
+         * Logging method intended for the use of Service Invocation Frameworks
+         * and their component classes.
+         */
+        //virtual RFileLogger* Log() const = 0; 
+        
+        /**
+        * SIF should set any framework specific transport properties via this method.
+        * @param aTransport is the transport plug-in where the (framework layer)
+        * properties transport properties can be applied
+        * @return KErrNone if success, or othewise a system-wide error code 
+        */
+        virtual TInt SetTransportPropertiesL( MSenTransport& aTransport ) = 0;
+        
+        /**
+         * @return a string that is the unique for this implementation. Note that there might be multiple
+         * frameworks, which all implement same TYPE (framework ID is the same), but which have different
+         * design. This might mean that they implement different VERSION of the framework. It is recommended
+         * that framework CUE is the ECOM cue of the framework, and that it is in form of URN (unique resource
+         * name).
+         */
+        virtual TPtrC8 Cue() const = 0;
+    };
+
+#endif // M_SEN_SERVICE_INVOCATION_FRAMEWORK_H
+
+// End of File