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