Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
/*
* 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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
* which accompanies this distribution, and is available
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: CSenServiceManager class offers API for
* accessing and managing WebServicesFramework
* (WSF) service and identity related data.
*
*/
#ifndef SEN_SERVICE_MANAGER_H
#define SEN_SERVICE_MANAGER_H
// INCLUDES
#include <e32base.h> // for CActive
#include <e32std.h> // for RPointerArray
#include <badesca.h>
#include <MSenServiceConsumer.h>
#include <MSenServiceDescription.h>
#include <SenCredential2.h>
#include <SenXmlProperties.h>
#include "MSenAuthenticationProvider.h"
// FORWARD DECLARATIONS
class CSenXmlServiceDescription;
class CSenIdentityProvider;
// DATA TYPES
typedef RPointerArray<CSenXmlServiceDescription> RServiceDescriptionArray;
typedef RPointerArray<CSenCredential2> RCredentialArray;
typedef RPointerArray<CSenXmlProperties> RCredentialPropertiesArray;
// CLASS DECLARATION
/**
* CSenServiceManager class offers API for accessing and managing
* WebServicesFramework (WSF) service and identity related data.
* The class is designed using abstract factory pattern:
* it only offers a instance (pointer) to the actual implementation
* class meeting this interface.
* Typically, service consumers use of CSenServiceManager to register service
* or identity based data, which is required for accessing some invocable,
* possibly remote service.
* The class is meant for both default frameworks offered by WSF
* and for any custom plug-in service invocation framework implementation.
* The default frameworks are:
* 1) Identity Based Web Services Framework (ID-WSF).
* 2) Basic Web Services Framework.
* For Basic Web Service consumer, the only applicable operations are
* Identity data managing methods. These can be used to make connection
* specific Basic Authentication (BASIC-AUTH) credentials available without
* later end-user interaction. Otherwise required authentication info
* will be requested via notifier dialog prompts.
* ID-WSF consumer has to use the CSenServiceManager methods to register
* authentication service description and identity provider (which are
* the same service in ID-WSF) and finally associate some actual service
* (contract to a WSP) to this IDP.
*
* The current client-server framework implementation of CSenServiceManager
* is synchronous, although class inherits CActive for future extensions.
* So, the class instance will not be an active object handled
* by ActiveScheduler, and it does not have implementation
* in RunL() or DoCancel() methods.
*
* @lib SenServMgr.lib
* @since Series60 3.0
*/
class CSenServiceManager : public CActive
{
public: // Constructors and destructor
/**
* Two-phased constructor.
*/
IMPORT_C static CSenServiceManager* NewL();
/**
* Two-phased constructor.
*/
IMPORT_C static CSenServiceManager* NewLC();
/**
* Two-phased constructor.
*/
IMPORT_C static CSenServiceManager* NewL(MSenAuthenticationProvider& aAuthProvider);
/**
* Two-phased constructor.
*/
IMPORT_C static CSenServiceManager* NewLC(MSenAuthenticationProvider& aAuthProvider);
// New functions
/**
* Consumers use this to find services with matching URI
* (contract or endpoint) of the service. ID-WSF consumers
* typically use the service type (contract) they are
* interested on.
* Contract is typically some URN and most endpoints are URLs.
* The Basic Web Service descriptions are not written into WSF
* database, so they cannot be searched using this method.
* @param aUri specifies the search string (contract or endpoint)
* which will be used to find matching service descriptions.
* @param aList an array with 0 or more service descriptions which
* are already registered to WSF.
* The ownership of the array is passed to the caller so before
* the array goes out of scope in the client, the caller must
* call RPointerArray::ResetAndDestroy() on the array to free any
* entries.
* @return status/error code.
* Status codes:
* KErrNone ok
* Error codes:
* KErrNotFound No matching service description was found.
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt ServiceDescriptionsL( const TDesC8& aURI,
RServiceDescriptionArray& aList) = 0;
/**
* Consumers use this to find services with matching
* service description. The service description may
* include specific contract or endpoint of the service
* as a searching criteria.
* Contract is typically some URN and most endpoints are URLs.
* The Basic Web Service descriptions are not written into WSF
* database, so they cannot be searched using this method.
* @param aSD a service description specifying search pattern
* (which includes contract, URI or both) used to find
* matching service descriptions.
* @param aList an array with 0 or more ServiceDescriptions which
* are already registered to WSF.
* The ownership of the array is passed to the caller so before
* the array goes out of scope in the client, the caller must
* call RPointerArray::ResetAndDestroy() on the array to free any
* entries.
* @return status/error code.
* Status codes:
* KErrNone ok
* Error codes:
* KErrNotFound No matching service descriptions found.
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt ServiceDescriptionsL( MSenServiceDescription& aSD,
RServiceDescriptionArray& aList) = 0;
/**
* Used by consumer applications to register new service to WSF
* The service could not otherwise be discovered while creating
* a service connection. ID-WSF Authentication Service is an
* example of this kind of remote service.
* The Basic Web Service consumer does not need to and cannot
* register any service related data.
* In service description, the default framework ID is "ID-WSF",
* through which frameworks performing the actual registration
* are looked up. For any custom framework plug-in, the framework
* ID must be separately set.
* For ID-WSF service descriptions it is mandatory to set both
* contract and endpoint.
* Calling the method performs one of the following:
* 1. It registers a new service description
* 2. It updates an existing service description
* with matching contract and endpoint.
* @param aSD a service description to be registered
* @return status/error code.
* Status codes:
* KErrNone ok
* Error codes:
* KErrNotReady Service description couldn't be registered,
* e.g. because end-user permission to modify
* WSF data was not granted (a dialog prompt).
* KErrNotFound Web Services framework couldn't find any
* required framework plug-in used to register
* a service description of a given type
* (framework ID).
* KErrSenNoContract Given service description didn't have
* a contract specified, even if the used
* framework needs one. For ID-WSF it is
* mandatory to define a contract for
* service description registration.
* KErrSenNoEndpoint Given service description didn't have
* a endpoint specified, even if the used
* framework needs one. For ID-WSF it is
* mandatory to define an endpoint for
* service description registration.
* KErrSenNoContractNoEndPoint Given service description didn't have
* an endpoint and contract specified, even if the used
* framework needs one. For ID-WSF it is
* mandatory to define both an endpoint and contract for
* service description registration.
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt RegisterServiceDescriptionL(MSenServiceDescription& aSD) = 0;
/**
* Used by consumer application to to inform the ServiceManager
* about a service which no longer is available. The ServiceManager
* will remove the service from its database as soon as it is no
* longer used.
* @param aSD a ServiceDescription to be unregistered
* @return status/error code.
* Status codes:
* KErrNone ok
* Error codes:
* KErrBadDescriptor aSD was invalid service description and
* couldn't be unregistered.
* KErrNotReady Service description couldn't be registered,
* e.g. because end-user permission to modify
* WSF data was not granted (a dialog prompt).
* KErrNotFound Couldn't find a matching framework to
* register service description or couldn't
* find a matching service description.
* KErrSenNoContract Given service description didn't have
* a contract specified, even if the used
* framework needs one.
* KErrSenNoEndpoint Given service description didn't have
* a endpoint specified, even if the used
* framework needs one.
* KErrSenNoContractNoEndPoint Given service description didn't have
* an endpoint and contract specified, even if the used
* framework needs one. For ID-WSF it is
* mandatory to define both an endpoint and contract for
* service description registration.
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt UnregisterServiceDescriptionL(
MSenServiceDescription& aSD) = 0;
/**
* Register an identity provider for the current active identity.
* It is required for both Basic Web Service and ID-WSF consumers
* that endpoint is defined in identity provider instance to make
* this data accessible later on while creating a service connection.
* @param aProvider an identity provider to be registered
* @return status/error code.
* Status codes:
* KErrNone ok
* Error codes:
* KErrBadDescriptor aProvider was an invalid identity provider
* and couldn't be registered.
* KErrNotReady Service description couldn't be registered,
* e.g. because end-user permission to modify
* WSF data was not granted (a dialog prompt).
* KErrSenProviderIdInUseByAnotherEndpoint
* attempt to register an identity provider
* failed, because ProviderID was already
* reserved in the use of another endpoint.
*
* A possible work-around for this would be
* to unregister such conflicting identity
* provider using this particular ProviderID,
* but this solution is not recommended. Instead,
* separate providers, locating in different
* endpoints, SHOULD always use different
* ProviderIDs.
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt RegisterIdentityProviderL(CSenIdentityProvider& aProvider) = 0;
/**
* Unregister an identity provider from the current active Identity.
* @param aProvider an identity provider to be unregistered
* @return status/error code.
* Status codes:
* KErrNone ok
* Error codes:
* KErrBadDescriptor aProvider was an invalid identity provider
* and couldn't be unregistered.
* KErrNotReady Identity provider couldn't be unregistered,
* e.g. because user didn't allow it.
* KErrNotFound aProvider was not found and couldn't be
* unregistered.
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt UnregisterIdentityProviderL(
CSenIdentityProvider& aProvider) = 0;
/**
* Consumer applications use this method to associate
* some pre-registered service to certain (registered)
* identity provider. The association adds the service ID
* (contract of the service that trusts this identity
* provider) into WSF identity database.
* In ID-WSF, consumers typically associate authentication
* service description with some identity provider. This
* way the ID-WSF framework can find the identity provider
* by using the contract of the service as a search pattern
* (for e.g. liberty AS contract).
* @param aURI either the contract or the endpoint
* identifying some service
* @param aProviderID the ID of an identity provider
* @return status/error code.
* Status codes:
* KErrNone ok
* Error codes:
* KErrArgument Either or both of the parameters were
* zero-length or invalid descriptors
* KErrNotReady Identity provider couldn't be unregistered,
* e.g. because user didn't allow it.
* KErrNotFound Web Services framework couldn't find
* the identity provider by given provider ID.
*/
virtual TInt AssociateServiceL( const TDesC8& aURI,
const TDesC8& aProviderID) = 0;
/**
* Dissociate a service from an identity provider.
* @param aServiceID the contract or endpoint of a service
* @param aProviderID the id of an identity provider
* @return status/error code.
* Status codes:
* KErrNone ok
* Error codes:
* KErrArgument Either or both of the parameters were
* zero-length or invalid descriptors
* KErrNotReady Service couldn't be dissociated,
* e.g. because user didn't allow it.
* KErrNotFound Web Services framework couldn't find
* the identity provider by given
* provider ID.
*/
virtual TInt DissociateServiceL(const TDesC8& aServiceID,
const TDesC8& aProviderID) = 0;
/**
* Consumer applications use this method for finding Credentials.
* IdentityProvider or Username and Password are given either via
* IdentityProviderL() callback or UsernameL() and Password()
* callbacks from MSenAuthenticationProvider (which can be given
* through specialized NewL or NewLC methods).
*
* @param aEndpoint the endpoint which identifies the Credential
* @param aCredentials an array with 0 or more Credentials.
* The ownership of the array (and Credentials)
* is passed to the caller so before the array
* goes out of scope in the client, the caller
* must call RPointerArray::ResetAndDestroy()
* on the array to close the array and delete
* @param aCredentialProperties an array with 0 or more
* CredentialsProperties.
* The ownership of the array (and
* CredentialProperties) is passed to the caller
* so before the array goes out of scope in the
* client, the caller must call
* RPointerArray::ResetAndDestroy()
* on the array to close the array and delete
* all the CredentialProperties in the array.
* Note: aCredentials array and
* aCredentialProperties array are in
* sync. If Credential has properties,
* properties are placed in same
* position in aCredentialProperties array
* as raleted Credential in aCredentials
* array.
* Note: If Credential has no properties,
* there is NULL in related position
* in aCredentialProperties array.
* all the Credentials in the array.
* Status codes:
* KErrNone ok
*
* Error codes:
* KErrNotFound Web Services framework couldn't find
* the Credentials using given Endpoint.
* KErrSenNoPermission Given IdentityProvider or Username and
* Password did not match for IdentityProvider
* which is related to found Credential(s).
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt CredentialsL(const TDesC8& aEndpoint,
RCredentialArray& aCredentials,
RCredentialPropertiesArray& aCredentialProperties) = 0;
/**
* Consumer applications use this method for finding Credentials.
*
* @param aEndpoint the endpoint which identifies the Credential
* @param aIdP the IdentityProvider which should match
* for IdentityProvider which is related to
* found Credential(s).
* @param aCredentials an array with 0 or more Credentials.
* The ownership of the array (and Credentials)
* is passed to the caller so before the array
* goes out of scope in the client, the caller
* must call RPointerArray::ResetAndDestroy()
* on the array to close the array and delete
* all the Credentials in the array.
* @param aCredentialProperties an array with 0 or more
* CredentialsProperties.
* The ownership of the array (and
* CredentialProperties) is passed to the caller
* so before the array goes out of scope in the
* client, the caller must call
* RPointerArray::ResetAndDestroy()
* on the array to close the array and delete
* all the CredentialProperties in the array.
* Note: aCredentials array and
* aCredentialProperties array are in
* sync. If Credential has properties,
* properties are placed in same
* position in aCredentialProperties array
* as raleted Credential in aCredentials
* array.
* Note: If Credential has no properties,
* there is NULL in related position
* in aCredentialProperties array.
* Status codes:
* KErrNone ok
*
* Error codes:
* KErrNotFound Web Services framework couldn't find
* the Credentials using given Endpoint.
* KErrSenNoPermission Given IdentityProvider did not match for
* IdentityProvider which is related to
* found Credential.
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt CredentialsL(const TDesC8& aEndpoint,
const CSenIdentityProvider& aIdP,
RCredentialArray& aCredentials,
RCredentialPropertiesArray& aCredentialProperties) = 0;
/**
* Consumer applications use this method for finding Credentials.
*
* @param aEndpoint the endpoint which identifies the Credential
* @param aUserName the username which should match for
* username in IdentityProvider which is related
* to found Credential(s).
* @param aPassword the password which should match for
* password in IdentityProvider which is related
* to found Credential(s).
* @param aCredentials an array with 0 or more Credentials.
* The ownership of the array (and Credentials)
* is passed to the caller so before the array
* goes out of scope in the client, the caller
* must call RPointerArray::ResetAndDestroy()
* on the array to close the array and delete
* all the Credentials in the array.
* @param aCredentialProperties an array with 0 or more
* CredentialsProperties.
* The ownership of the array (and
* CredentialProperties) is passed to the caller
* so before the array goes out of scope in the
* client, the caller must call
* RPointerArray::ResetAndDestroy()
* on the array to close the array and delete
* all the CredentialProperties in the array.
* Note: aCredentials array and
* aCredentialProperties array are in
* sync. If Credential has properties,
* properties are placed in same
* position in aCredentialProperties array
* as raleted Credential in aCredentials
* array.
* Note: If Credential has no properties,
* there is NULL in related position
* in aCredentialProperties array.
* Status codes:
* KErrNone ok
*
* Error codes:
* KErrNotFound Web Services framework couldn't find
* the Credentials using given Endpoint.
* KErrSenNoPermission Given IdentityProvider did not match for
* IdentityProvider which is related to
* found Credential.
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt CredentialsL(const TDesC8& aEndpoint,
const TDesC8& aUserName,
const TDesC8& aPassword,
RCredentialArray& aCredentials,
RCredentialPropertiesArray& aCredentialProperties) = 0;
/**
* Consumer applications use this method for finding Credentials.
* IdentityProvider or Username and Password are given either via
* IdentityProviderL() callback or UsernameL() and Password()
* callbacks from MSenAuthenticationProvider (which can be given
* through specialized NewL or NewLC methods).
*
* @param aPattern the pattern which identifies the Credential
* Note: Pattern which was used to add Credential
* has to be used for finding Credential.
* Note: Used Framework should specify what
* kind of pattern should be used
* for storing framework specific
* Credentials.
* @param aCredentials an array with 0 or more Credentials.
* The ownership of the array (and Credentials)
* is passed to the caller so before the array
* goes out of scope in the client, the caller
* must call RPointerArray::ResetAndDestroy()
* on the array to close the array and delete
* all the Credentials in the array.
* @param aCredentialProperties an array with 0 or more
* CredentialsProperties.
* The ownership of the array (and
* CredentialProperties) is passed to the caller
* so before the array goes out of scope in the
* client, the caller must call
* RPointerArray::ResetAndDestroy()
* on the array to close the array and delete
* all the CredentialProperties in the array.
* Note: aCredentials array and
* aCredentialProperties array are in
* sync. If Credential has properties,
* properties are placed in same
* position in aCredentialProperties array
* as raleted Credential in aCredentials
* array.
* Note: If Credential has no properties,
* there is NULL in related position
* in aCredentialProperties array.
* Status codes:
* KErrNone ok
*
* Error codes:
* KErrNotFound Web Services framework couldn't find
* the Credentials using given Endpoint.
* KErrSenNoPermission Given IdentityProvider or Username and
* Password did not match for IdentityProvider
* which is related to found Credential(s).
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt CredentialsL(const MSenServiceDescription& aPattern,
RCredentialArray& aCredentials,
RCredentialPropertiesArray& aCredentialProperties) = 0;
/**
* Consumer applications use this method for finding Credentials.
*
* @param aPattern the pattern which identifies the Credential
* Note: Pattern which was used to add Credential
* has to be used for finding Credential.
* Note: Used Framework should specify what
* kind of pattern should be used
* for storing framework specific
* Credentials.
* @param aIdP the IdentityProvider which should match
* for IdentityProvider which is related to
* found Credential(s).
* @param aCredentials an array with 0 or more Credentials.
* The ownership of the array (and Credentials)
* is passed to the caller so before the array
* goes out of scope in the client, the caller
* must call RPointerArray::ResetAndDestroy()
* on the array to close the array and delete
* all the Credentials in the array.
* @param aCredentialProperties an array with 0 or more
* CredentialsProperties.
* The ownership of the array (and
* CredentialProperties) is passed to the caller
* so before the array goes out of scope in the
* client, the caller must call
* RPointerArray::ResetAndDestroy()
* on the array to close the array and delete
* all the CredentialProperties in the array.
* Note: aCredentials array and
* aCredentialProperties array are in
* sync. If Credential has properties,
* properties are placed in same
* position in aCredentialProperties array
* as raleted Credential in aCredentials
* array.
* Note: If Credential has no properties,
* there is NULL in related position
* in aCredentialProperties array.
* Status codes:
* KErrNone ok
*
* Error codes:
* KErrNotFound Web Services framework couldn't find
* the Credentials using given Endpoint.
* KErrSenNoPermission Given IdentityProvider did not match for
* IdentityProvider which is related to
* found Credential.
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt CredentialsL(const MSenServiceDescription& aPattern,
const CSenIdentityProvider& aIdP,
RCredentialArray& aCredentials,
RCredentialPropertiesArray& aCredentialProperties) = 0;
/**
* Consumer applications use this method for finding Credentials.
*
* @param aPattern the pattern which identifies the Credential
* Note: Pattern which was used to add Credential
* has to be used for finding Credential.
* Note: Used Framework should specify what
* kind of pattern should be used
* for storing framework specific
* Credentials.
* @param aUserName the username which should match for
* username in IdentityProvider which is related
* to found Credential(s).
* @param aPassword the password which should match for
* password in IdentityProvider which is related
* to found Credential(s).
* @param aCredentials an array with 0 or more Credentials.
* The ownership of the array (and Credentials)
* is passed to the caller so before the array
* goes out of scope in the client, the caller
* must call RPointerArray::ResetAndDestroy()
* on the array to close the array and delete
* all the Credentials in the array.
* @param aCredentialProperties an array with 0 or more
* CredentialsProperties.
* The ownership of the array (and
* CredentialProperties) is passed to the caller
* so before the array goes out of scope in the
* client, the caller must call
* RPointerArray::ResetAndDestroy()
* on the array to close the array and delete
* all the CredentialProperties in the array.
* Note: aCredentials array and
* aCredentialProperties array are in
* sync. If Credential has properties,
* properties are placed in same
* position in aCredentialProperties array
* as raleted Credential in aCredentials
* array.
* Note: If Credential has no properties,
* there is NULL in related position
* in aCredentialProperties array.
*
* Status codes:
* KErrNone ok
*
* Error codes:
* KErrNotFound Web Services framework couldn't find
* the Credentials using given Endpoint.
* KErrSenNoPermission Given IdentityProvider did not match for
* IdentityProvider which is related to
* found Credential.
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt CredentialsL(const MSenServiceDescription& aPattern,
const TDesC8& aUserName,
const TDesC8& aPassword,
RCredentialArray& aCredentials,
RCredentialPropertiesArray& aCredentialProperties) = 0;
/**
* Consumer applications use this method for adding Credential.
*
* @param aEndpoint the endpoint which identifies the Credential
* @param aIdP the IdentityProvider which will be related
* to added Credential.
* @param aCredential the Credential which will be added.
* Status codes:
* KErrNone ok
*
* Error codes:
* KErrBadDescriptor One of the parameters was invalid.
* KErrNotFound Given IdentityProvider was not found
* and because of that Credential could
* not be added. (Fix: Register IdentityProvider
* first and try to add Credential after that.)
*
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt AddCredentialL(const TDesC8& aEndpoint,
const CSenIdentityProvider& aIdP,
const CSenCredential2& aCredential) = 0;
/**
* Consumer applications use this method for adding Credential.
*
* @param aPattern the pattern which identifies the Credential
* Note: Exactly the same pattern has to be
* used for finding Credential.
* Note: Used Framework should specify what
* kind of pattern should be used
* for handling framework specific
* Credentials.
* @param aIdP the IdentityProvider which will be related
* to added Credential.
* @param aCredential the Credential which will be added.
*
* Status codes:
* KErrNone ok
*
* Error codes:
* KErrBadDescriptor One of the parameters was invalid.
* KErrNotFound Given IdentityProvider was not found
* and because of that Credential could
* not be added. (Fix: Register IdentityProvider
* first and try to add Credential after that)
*
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt AddCredentialL(const MSenServiceDescription& aPattern,
const CSenIdentityProvider& aIdP,
const CSenCredential2& aCredential) = 0;
/**
* Consumer applications use this method for adding Credential.
*
* @param aEndpoint the endpoint which identifies the
* Credential
* @param aIdP the IdentityProvider which will be
* related to added Credential.
* @param aCredential the Credential which will be added.
* @param aCredentialProperties the properties for Credential
* Status codes:
* KErrNone ok
*
* Error codes:
* KErrBadDescriptor One of the parameters was invalid.
* KErrNotFound Given IdentityProvider was not found
* and because of that Credential could
* not be added. (Fix: Register IdentityProvider
* first and try to add Credential after that.)
*
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt AddCredentialL(const TDesC8& aEndpoint,
const CSenIdentityProvider& aIdP,
const CSenCredential2& aCredential,
const CSenXmlProperties& aCredentialProperties) = 0;
/**
* Consumer applications use this method for adding Credential.
*
* @param aPattern the pattern which identifies the
* Credential
* Note: Exactly the same pattern has
* to be used for finding
* Credential.
* Note: Used Framework should specify
* what kind of pattern should be
* used for handling framework
* specific Credentials.
* @param aIdP the IdentityProvider which will be
* related to added Credential.
* @param aCredential the Credential which will be added.
* @param aCredentialProperties the properties for Credential
*
* Status codes:
* KErrNone ok
*
* Error codes:
* KErrBadDescriptor One of the parameters was invalid.
* KErrNotFound Given IdentityProvider was not found
* and because of that Credential could
* not be added. (Fix: Register IdentityProvider
* first and try to add Credential after that)
*
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt AddCredentialL(const MSenServiceDescription& aPattern,
const CSenIdentityProvider& aIdP,
const CSenCredential2& aCredential,
const CSenXmlProperties& aCredentialProperties) = 0;
/**
* Consumer applications use this method for removing Credentials.
*
* @param aPattern the pattern which identifies the Credential
* Note: Pattern which was used to add Credential
* has to be used for removing Credential.
* Note: Used Framework should specify what
* kind of pattern should be used
* for handling framework specific
* Credentials.
* @param aIdP the IdentityProvider which should match
* for IdentityProvider which is related to
* found Credential(s).
* Status codes:
* KErrNone ok
*
* Error codes:
* KErrNotFound Web Services framework couldn't find
* the Credentials using given Pattern.
* KErrSenNoPermission Given IdentityProvider did not match for
* IdentityProvider which is related to
* found Credential(s).
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt RemoveCredentialsL(const MSenServiceDescription& aPattern,
const CSenIdentityProvider& aIdP) = 0;
/**
* Consumer applications use this method for removing Credentials.
*
* @param aIdP the IdentityProvider which should match
* for IdentityProvider which is related to
* found Credential(s).
* Status codes:
* KErrNone ok
*
* Error codes:
* KErrNotFound Web Services framework couldn't find
* the Credentials using given Pattern.
* KErrSenNoPermission Given IdentityProvider did not match for
* IdentityProvider which is related to
* found Credential(s).
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt RemoveCredentialsL(const CSenIdentityProvider& aIdP) = 0;
/**
* Consumer applications use this method for removing Credentials.
*
* @param aPattern the pattern which identifies the Credential
* Note: Pattern which was used to add Credential
* has to be used for finding Credential.
* Note: Used Framework should specify what
* kind of pattern should be used
* for handling framework specific
* Credentials.
* @param aUserName the username which should match for
* username in IdentityProvider which is related
* to found Credential(s).
* @param aPassword the password which should match for
* password in IdentityProvider which is related
* to found Credential(s).
* Status codes:
* KErrNone ok
*
* Error codes:
* KErrNotFound Web Services framework couldn't find
* the Credentials using given Pattern.
* KErrSenNoPermission Given Username and Password did not match for
* IdentityProvider which is related to
* found Credential(s).
* Other error codes are system-wide Symbian error codes.
*/
virtual TInt RemoveCredentialsL(const MSenServiceDescription& aPattern,
const TDesC8& aUserName,
const TDesC8& aPassword) = 0;
/**
* This method provides an interface which is identified by unique ID (UID).
* @param aUID is the UID of the interface being requested
* @return TAny* pointer to the interface, or if no interface to
* given UID exists, function returns NULL. In typical cases, returned
* pointer should be cast to some preknown M-class pointer (the actual
* new interface).
*
* Currently, there is only one supported interface:
* KSenInterfaceUidInternalServiceManager => MSenInternalServiceManager
*/
virtual TAny* InterfaceByUid( TUid aUID ) = 0;
protected:
/**
* C++ default constructor
*/
CSenServiceManager();
};
#endif //SEN_SERVICE_MANAGER_H
// End of File