diff -r 000000000000 -r 62f9d29f7211 webservices/wsidentitymanager/inc/msenidentity.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webservices/wsidentitymanager/inc/msenidentity.h Thu Jan 07 16:19:19 2010 +0200 @@ -0,0 +1,181 @@ +/* +* 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_IDENTITY_H +#define M_SEN_IDENTITY_H + + +#include +#include // HBufC8 + +#include +//TYPEDEFS +typedef RPointerArray RIdentityProviderList; + +// CLASS DECLARATION +class MSenIdentity + { + public: // New functions + + /** + * Getter for name. + * @return name of the identity + */ + virtual const TDesC8& Name() = 0; + + /** + * Getter for user name. + * @return user name of the identity + */ + virtual const TDesC8& UserName() = 0; + + /** + * Getter for type. + * @return type of the identity + */ + virtual const TDesC8& Type() = 0; + + /** + * @return the default IdentityProvider of the Identity. + */ + virtual CSenIdentityProvider* IdentityProviderL() = 0; + + /** + * @param aService + * @return the IdentityProvider that has the ServiceID + * that best mathces the endpoint or providerID + * of the given ServiceDescription. + */ + virtual CSenIdentityProvider* IdentityProviderL( + MSenServiceDescription& aService) = 0; + /** + * @param aURI + * @return the IdentityProvider that has the ServiceID + * that best mathces the given URI. + */ + virtual CSenIdentityProvider* IdentityProviderL( const TDesC8& aURI ) = 0; + + /** + * @param aIdpList an array of ProviderIDs + * @param strict if set to true only an IdentityProvider from the List + * will be returned, and null if none of the list entries is known to the + * current active Identity. + * @return the currently preferred IdentityProvider + * from within the given List with ProviderIDs. + */ + virtual CSenIdentityProvider* IdentityProviderL( + const CDesC8Array& aIdpList, + TBool aStrict) = 0; + /** + * @param aService + * @param aIdpList an array of ProviderIDs + * @param strict if set to true only an IdentityProvider from the List + * will be returned, and null if none of the list entries is known to the + * current active Identity. + * @return the currently preferred IdentityProvider + * from within the given List with ProviderIDs. + */ + virtual CSenIdentityProvider* IdentityProviderL( + MSenServiceDescription& aService, + const CDesC8Array& aIdpList, + TBool aStrict) = 0; + + /** + * Checks if Identity already has an identity provider with given data. + * Existing identity provider can still have more data than the pattern. + * @param aContains will contain the boolean value on return. ETrue if + * contains, EFalse otherwise. + * @param aIDP the pattern identity provider. + * @return KErrNone or system-wide error code. + */ + virtual TInt ContainsIdentityProviderL( TBool& aContains, + CSenIdentityProvider& aIDP) = 0; + + /** + * Register an IdentityProvider for the current active Identity. + * @param aIdp a registered IdentityProvider. Ownership of the + * argument is transferred into this class from the caller. + * @return KErrNone or system-wide error code. + */ + virtual TInt RegisterIdentityProviderL( CSenIdentityProvider* aIdp ) = 0; + + virtual TInt UpdateIdentityProviderL(CSenIdentityProvider& aIdp) = 0; + + /** + * Unregister an IdentityProvider for the current active Identity. + * @param aIdp an unregistered IdentityProvider + * @return KErrNone if everything goes OK. + * KErrNotFound if correct identity provider was not found + * Other error codes are system-wide Symbian error codes. + */ + virtual TInt UnregisterIdentityProviderL( CSenIdentityProvider& aIdp) = 0; + + /** + * Associate a service to an IdentityProvider. + * @param aServiceID the contract or endpoint of a service + * @param aProviderID the id of an IdentityProvider + * @return true if successful. Failure may be caused by non-existence + * of the IdentityProvider for the current user. + */ + virtual TBool AssociateServiceL( const TDesC8& aServiceID, + const TDesC8& aProviderID ) = 0; + + /** + * Dissociate a service from an IdentityProvider. + * @param aServiceID the contract or endpoint of a service + * @param aProviderID the id of an IdentityProvider + * @return true if successful. Failure may be caused by non-existence + * of the IdentityProvider for the current user. + */ + virtual TBool DissociateServiceL(const TDesC8& aServiceID, + const TDesC8& aProviderID ) = 0; + + virtual TInt FindMatchingIdentityProviderL(CSenIdentityProvider &aIdp, + CSenIdentityProvider*& apMatch) = 0; + + /** + * Write the Identity as XML into a write stream. + * This method is invoked by the IdentityManager when it saves + * its state and/or configuration. + * Identities should serialize sufficient information + * to enabled re-instantiation from the same XML content. + */ + virtual void WriteAsXMLToL(RWriteStream& aWriteStream) = 0; + + /** + * Write the Identity as XML into 8-bit (UTF-8) buffer + */ + virtual HBufC8* AsXmlL() = 0; + + /** + * Write the Identity as XML into 8-bit (Unicode) buffer + */ + virtual HBufC* AsXmlUnicodeL() = 0; + + virtual const RIdentityProviderList& IdentityProvidersL() const = 0; + }; + +#endif // M_SEN_IDENTITY_H + +// End of File