webservices/wsmanager/inc/senservicemanagerimpl.h
changeset 0 62f9d29f7211
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsmanager/inc/senservicemanagerimpl.h	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,222 @@
+/*
+* 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 SEN_SERVICE_CONNECTION_IMPL_H
+#define SEN_SERVICE_CONNECTION_IMPL_H
+
+// INCLUDES
+#include <flogger.h>
+
+#include <SenXmlReader.h>
+#include <MSenServiceDescription.h>
+
+#include "SenServiceManager.h"
+#include "rsenservicemanager.h"
+#include "senservicemanagerinterfaces.h"
+
+// FORWARD DECLARATIONS
+class MSenIdentityManager;
+class CSenGuidGen;
+
+// CLASS DECLARATION
+class CSenServiceManagerImpl : public CSenServiceManager, MSenInternalServiceManager
+    {
+    public: // Constructors and destructor
+
+        static CSenServiceManagerImpl* NewL();
+        static CSenServiceManagerImpl* NewLC();
+        static CSenServiceManagerImpl* NewL(MSenAuthenticationProvider& aAuthProvider);
+        static CSenServiceManagerImpl* NewLC(MSenAuthenticationProvider& aAuthProvider);
+
+        virtual ~CSenServiceManagerImpl();
+
+        // New functions
+
+        /**
+        * Public API to Core Service Manager
+        */
+        virtual TInt ServiceDescriptionsL(  const TDesC8& aUri,
+                                            RServiceDescriptionArray& aList);
+
+        virtual TInt ServiceDescriptionsL(  MSenServiceDescription& aSD,
+                                            RServiceDescriptionArray& aList);
+    
+        virtual TInt RegisterServiceDescriptionL(MSenServiceDescription& aSD);
+
+        virtual TInt UnregisterServiceDescriptionL(MSenServiceDescription& aSD);
+
+        /**
+        * Public API to Identity Manager
+        */
+        virtual TInt RegisterIdentityProviderL(CSenIdentityProvider& aProvider);
+        virtual TInt UnregisterIdentityProviderL(CSenIdentityProvider& aProvider);
+        virtual TInt AssociateServiceL( const TDesC8& aServiceID,
+                                        const TDesC8& aProviderID);
+
+        virtual TInt DissociateServiceL(const TDesC8& aServiceID,
+                                        const TDesC8& aProviderID);
+                                        
+        /**
+        * Currently: available through private header only
+        * Install a ServiceInvocationFramework. The WSF checks if some
+        * custom ECOM exists and adds an entry (Framework element) into
+        * sensessions.xml database.
+        * @param aFrameworkId is the "cue" of the ECOM plug-in being installed
+        * (existing in ECOM default dir)
+        * @return status/error code.
+        * Status codes:
+        * KErrNone                      ok
+        * Error codes:
+        * KErrArgument                  The given framework ID was zero length or
+        *                               an invalid descriptor.
+        * KErrNotFound                  Framework with the given ID was not found
+        *                               and couldn't be installed.
+        */
+        virtual TInt InstallFrameworkL(const TDesC8& aFrameworkId);
+
+
+        TInt ExtractCredentialsL(TPtrC8& aCredentials, RCredentialArray& aList,
+                                 RCredentialPropertiesArray& aCredentialPropertiesList);
+                                        
+        virtual TInt CredentialsL(const TDesC8& aEndpoint,
+                                  RCredentialArray& aCredentials,
+                                  RCredentialPropertiesArray& aCredentialProperties);
+        
+        virtual TInt CredentialsL(const TDesC8& aEndpoint,
+                                  const CSenIdentityProvider& aIdP,
+                                  RCredentialArray& aCredentials,
+                                  RCredentialPropertiesArray& aCredentialProperties);
+        
+        virtual TInt CredentialsL(const TDesC8& aEndpoint,
+                                  const TDesC8& aUserName,
+                                  const TDesC8& aPassword,
+                                  RCredentialArray& aCredentials,
+                                  RCredentialPropertiesArray& aCredentialProperties);
+
+        virtual TInt CredentialsL(const MSenServiceDescription& aPattern,
+                                  RCredentialArray& aCredentials,
+                                  RCredentialPropertiesArray& aCredentialProperties);
+        
+        virtual TInt CredentialsL(const MSenServiceDescription& aPattern,
+                                  const CSenIdentityProvider& aIdP,
+                                  RCredentialArray& aCredentials,
+                                  RCredentialPropertiesArray& aCredentialProperties);
+                                  
+        virtual TInt CredentialsL(const MSenServiceDescription& aPattern,
+                                  const TDesC8& aUserName,
+                                  const TDesC8& aPassword,
+                                  RCredentialArray& aCredentials,
+                                  RCredentialPropertiesArray& aCredentialProperties);
+                                  
+        virtual TInt AddCredentialL(const TDesC8& aEndpoint,
+                                    const CSenIdentityProvider& aIdP,
+                                    const CSenCredential2& aCredential);
+
+        virtual TInt AddCredentialL(const MSenServiceDescription& aPattern,
+                                    const CSenIdentityProvider& aIdP,
+                                    const CSenCredential2& aCredential);
+                                    
+        virtual TInt AddCredentialL(const TDesC8& aEndpoint,
+                                    const CSenIdentityProvider& aIdP,
+                                    const CSenCredential2& aCredential,
+                                    const CSenXmlProperties& aCredentialProperties);
+                                        
+        virtual TInt AddCredentialL(const MSenServiceDescription& aPattern,
+                                    const CSenIdentityProvider& aIdP,
+                                    const CSenCredential2& aCredential,
+                                    const CSenXmlProperties& aCredentialProperties);
+
+        virtual TInt RemoveCredentialsL(const MSenServiceDescription& aPattern,
+                                        const CSenIdentityProvider& aIdP);
+
+        virtual TInt RemoveCredentialsL(const MSenServiceDescription& aPattern,
+                                        const TDesC8& aUserName,
+                                        const TDesC8& aPassword);
+
+        virtual TInt RemoveCredentialsL(const CSenIdentityProvider& aIdP);                                        
+                                        
+        virtual TInt Identifier();      
+        
+        virtual TInt IdentityProvidersL( RIdentityProviderArray& aList );
+        
+        virtual TAny* InterfaceByUid( TUid aUID );
+
+                                        
+    protected: // Functions from base classes
+        
+        // from CActive
+        void RunL();
+        void DoCancel();
+
+    private:
+    
+        /**
+        * C++ default constructor.
+        */
+        CSenServiceManagerImpl(MSenAuthenticationProvider* apAuthProvider);
+        
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+        // New functions
+            
+        //RFileLogger* Log() const;
+
+        /**
+        * @return KErrNone if successful, and at least one service
+        *         description was extracted. 
+        *         KErrNotFound, if aSDs is a zero-length descriptor,
+        *         or not a single service description could be parsed.
+        */
+        TInt ExtractServiceDescriptionsL(TPtrC8& aSDs,
+                                          RServiceDescriptionArray& aList);
+        TInt ExtractIdentiyProvidersL(TPtrC8& aIdPs, 
+                                          RIdentityProviderArray& aList);
+        TPtrC NextChunkNameL();	//Codescannerwarnings
+
+    private: // Data
+        //RFileLogger iLog;
+        RSenServiceManager iConnection;
+        CSenXmlReader* iReader;
+        TPtr8 iInBuffer;
+        HBufC8* iOutBuf;
+        TPtr8 iOutBuffer;
+        TBool iInitialized;
+        CSenGuidGen* ipGenerator;
+        HBufC* ipChunkName;
+        TInt iChunkNameNumber;
+        MSenAuthenticationProvider* ipAuthProvider;
+        TInt iConnectionID;
+        //TInt iTlsLogChannel;
+        
+    };
+
+#endif //SEN_SERVICE_CONNECTION_IMPL_H
+
+// End of File
+
+
+