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