webservices/wsframework/inc/msencoreservicemanager.h
changeset 0 62f9d29f7211
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsframework/inc/msencoreservicemanager.h	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,165 @@
+/*
+* 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_CORE_SERVICE_MANAGER_H
+#define M_SEN_CORE_SERVICE_MANAGER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <e32std.h>
+#include <flogger.h>
+#include <badesca.h>    //CDesC8Array
+
+#include "msenservicemanager.h"
+#include "msenidentitymanager.h"
+#include "msencredentialmanager.h"
+
+// FORWARD DECLARATIONS
+class MSenTransport;
+class MSenProvider;
+
+class CSenXmlReader;
+class CSenWSDescription;
+class CSenIdentityProvider;
+class CSenServiceSession;
+class CSenIdentifier;
+class CSIF;
+
+// CLASS DECLARATION
+
+/**
+*
+* MSenCoreServiceManager represents the internal (core) side interface of
+* a CoreServiceManager
+* The methods defined in this interface are executed from MDAO implementations
+* and from different frameworks, which are expected to operate in the same
+* process as the CoreServiceManager.
+*/
+class MSenCoreServiceManager :  public MSenServiceManager,
+                                public MSenIdentityManager,
+                                public MSenCredentialManager
+    {
+    public: // New methods
+
+        virtual TInt AddServiceDescriptionL( CSenWSDescription* apServiceDescription ) = 0;
+
+        virtual TInt RemoveServiceDescriptionL( CSenWSDescription& aServiceDescription ) = 0;
+
+        virtual TInt SaveL( const CSenServiceSession& aServiceSession ) = 0;
+        
+        virtual TInt SaveL( const CSIF& aServiceInvocationFramework ) = 0;
+
+        //virtual MSenIdentityManager& IdentityManager() = 0;
+
+        /**
+        * Notifies *ALL* framework plug-ins about certain event
+        * @return some system-wide error code, if an error occurred
+        */
+        //virtual TInt NotifyFrameworksL(const TInt aEvent) = 0;
+
+        /**
+        * Notifies *ALL* framework plug-ins about certain event and
+        * an additional object pointer may be passed
+        * NULL is also accepted
+        * @return some system-wide error code, if an error occurred
+        */
+        //virtual TInt NotifyFrameworksL(const TInt aEvent, 
+        //                               TAny* aArgument) = 0;
+
+
+        /**
+        * Notifies only those frameworks plug-ins, which match
+        * with given framework ID (aFrameworkID)
+        * Note(!): if aFrameworkID == KNullDesC8 (zero-length),
+        * then *all* known framework plug-ins are notified
+        * about the event.
+        * @return some system-wide error code, if an error occurred
+        */
+        //virtual TInt NotifyFrameworksL(const TDesC8& aFrameworkID,
+        //                               const TInt aEvent) = 0;
+
+        /**
+        * Notifies only those frameworks plug-ins, which match
+        * with given framework ID (aFrameworkID) and 
+        * an additional object pointer may be passed
+        * NULL is also accepted
+
+        * Note(!): if aFrameworkID == KNullDesC8 (zero-length),
+        * then *all* known framework plug-ins are notified
+        * about the event.
+        * @return some system-wide error code, if an error occurred
+        */
+        //virtual TInt NotifyFrameworksL(const TDesC8& aFrameworkID,
+        //                              const TInt aEvent,
+        //                              TAny* aArgument) = 0;
+
+        /**
+         * Return a list with FrameworkId strings (TDesC&), 
+         * each a name of a supported ServiceInvocationFramework.
+         * This may help applications, to decide what to ask for.
+         */
+        virtual CDesC8Array& SupportedFrameworksL() = 0;
+
+        /**
+        * Method for requesting a MSenProvider reference
+        * to a hostlet (provider) accessible behind given
+        * endpoint. Core service manager implementation 
+        * typically owns the instances behind this reference,
+        * as well as it often does some pooling / caching / 
+        * proxy-ing of these instances for several requesters.
+        * Typical caller of this method is transport plug-in.
+        * @param aHostletEndpoint is the endpoint of requested provider.
+        * @param aReqThreadId is the full name of the requesting thread
+        * @param aReqConsumerId is the unique id (urn) of the requesting
+        *        service consumer
+        * @return reference to found provider. If provider was not
+        * found from the system, this method will leave with
+        * KErrNotFound error code. Other leave codes are system-wide.
+        */
+        virtual MSenProvider& LookupHostletForL( const TDesC8& aHostletEndpoint,
+                                                 const TDesC& aReqThreadId,
+                                                 const TDesC8& aReqConsumerId ) = 0;
+
+        /** 
+        * Unsharable hostlets (providers) should be released from server (main)
+        * thread's memory by calling this method. 
+        * @param aHostlet is a pointer to the hostlet (provider) being released,
+        *        and possibly de-allocated.
+        * @param aReqThreadId is the full name of the requesting thread
+        * @param aReqConsumerId is the unique id (urn) of the requesting
+        *        service consumer
+        * @return KErrNone on success or otherwise some system-wide error code.
+        */
+        virtual TInt ReleaseHostletL( const MSenProvider* aHostlet,
+                                      const TDesC& aReqThreadId,
+                                      const TDesC8& aReqConsumerId ) = 0;
+        virtual TPtrC8 IMSI() = 0;
+        
+        virtual TPtrC8 IMEI() = 0;
+
+    };
+
+#endif // M_SEN_CORE_SERVICE_MANAGER_H
+
+// End of File