webservices/wsidentitymanager/inc/msenidentity.h
changeset 0 62f9d29f7211
--- /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 <e32base.h>
+#include <e32des8.h>    // HBufC8
+
+#include <SenIdentityProvider.h>
+//TYPEDEFS
+typedef RPointerArray<CSenIdentityProvider> 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