CSenServiceManager Class Reference
class CSenServiceManager : public CActive
|
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.
SenServMgr.lib
-
Since
-
Series60 3.0
Public Member Functions
|
TInt
|
AddCredentialL
(const
TDesC8
&, const
CSenIdentityProvider
&, const
CSenCredential2
&)
|
TInt
|
AddCredentialL
(const
MSenServiceDescription
&, const
CSenIdentityProvider
&, const
CSenCredential2
&)
|
TInt
|
AddCredentialL
(const
TDesC8
&, const
CSenIdentityProvider
&, const
CSenCredential2
&, const
CSenXmlProperties
&)
|
TInt
|
AddCredentialL
(const
MSenServiceDescription
&, const
CSenIdentityProvider
&, const
CSenCredential2
&, const
CSenXmlProperties
&)
|
TInt
|
AssociateServiceL
(const
TDesC8
&, const
TDesC8
&)
|
TInt
|
CredentialsL
(const
TDesC8
&,
RCredentialArray
&,
RCredentialPropertiesArray
&)
|
TInt
|
CredentialsL
(const
TDesC8
&, const
CSenIdentityProvider
&,
RCredentialArray
&,
RCredentialPropertiesArray
&)
|
TInt
|
CredentialsL
(const
TDesC8
&, const
TDesC8
&, const
TDesC8
&,
RCredentialArray
&,
RCredentialPropertiesArray
&)
|
TInt
|
CredentialsL
(const
MSenServiceDescription
&,
RCredentialArray
&,
RCredentialPropertiesArray
&)
|
TInt
|
CredentialsL
(const
MSenServiceDescription
&, const
CSenIdentityProvider
&,
RCredentialArray
&,
RCredentialPropertiesArray
&)
|
TInt
|
CredentialsL
(const
MSenServiceDescription
&, const
TDesC8
&, const
TDesC8
&,
RCredentialArray
&,
RCredentialPropertiesArray
&)
|
TInt
|
DissociateServiceL
(const
TDesC8
&, const
TDesC8
&)
|
TAny
*
|
InterfaceByUid
(
TUid
)
|
IMPORT_C
CSenServiceManager
*
|
NewL
()
|
IMPORT_C
CSenServiceManager
*
|
NewL
(
MSenAuthenticationProvider
&)
|
IMPORT_C
CSenServiceManager
*
|
NewLC
()
|
IMPORT_C
CSenServiceManager
*
|
NewLC
(
MSenAuthenticationProvider
&)
|
TInt
|
RegisterIdentityProviderL
(
CSenIdentityProvider
&)
|
TInt
|
RegisterServiceDescriptionL
(
MSenServiceDescription
&)
|
TInt
|
RemoveCredentialsL
(const
MSenServiceDescription
&, const
CSenIdentityProvider
&)
|
TInt
|
RemoveCredentialsL
(const
CSenIdentityProvider
&)
|
TInt
|
RemoveCredentialsL
(const
MSenServiceDescription
&, const
TDesC8
&, const
TDesC8
&)
|
TInt
|
ServiceDescriptionsL
(const
TDesC8
&,
RServiceDescriptionArray
&)
|
TInt
|
ServiceDescriptionsL
(
MSenServiceDescription
&,
RServiceDescriptionArray
&)
|
TInt
|
UnregisterIdentityProviderL
(
CSenIdentityProvider
&)
|
TInt
|
UnregisterServiceDescriptionL
(
MSenServiceDescription
&)
|
Constructor & Destructor Documentation
CSenServiceManager()
CSenServiceManager
|
(
|
)
|
[protected]
|
Member Functions Documentation
AddCredentialL(const TDesC8 &, const CSenIdentityProvider &, const CSenCredential2 &)
Consumer applications use this method for adding Credential.
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.
Parameters
const
TDesC8
& aEndpoint
|
the endpoint which identifies the Credential
|
const
CSenIdentityProvider
& aIdP
|
the IdentityProvider which will be related to added Credential.
|
const
CSenCredential2
& aCredential
|
the Credential which will be added. Status codes: KErrNone ok
|
AddCredentialL(const MSenServiceDescription &, const CSenIdentityProvider &, const CSenCredential2 &)
Consumer applications use this method for adding 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.
Parameters
const
MSenServiceDescription
& 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.
|
const
CSenIdentityProvider
& aIdP
|
the IdentityProvider which will be related to added Credential.
|
const
CSenCredential2
& aCredential
|
the Credential which will be added.
|
AddCredentialL(const TDesC8 &, const CSenIdentityProvider &, const CSenCredential2 &, const CSenXmlProperties &)
Consumer applications use this method for adding Credential.
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.
Parameters
const
TDesC8
& aEndpoint
|
the endpoint which identifies the Credential
|
const
CSenIdentityProvider
& aIdP
|
the IdentityProvider which will be related to added Credential.
|
const
CSenCredential2
& aCredential
|
the Credential which will be added.
|
const
CSenXmlProperties
& aCredentialProperties
|
the properties for Credential Status codes: KErrNone ok
|
AddCredentialL(const MSenServiceDescription &, const CSenIdentityProvider &, const CSenCredential2 &, const CSenXmlProperties &)
Consumer applications use this method for adding 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.
Parameters
const
MSenServiceDescription
& 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.
|
const
CSenIdentityProvider
& aIdP
|
the IdentityProvider which will be related to added Credential.
|
const
CSenCredential2
& aCredential
|
the Credential which will be added.
|
const
CSenXmlProperties
& aCredentialProperties
|
the properties for Credential
|
AssociateServiceL(const TDesC8 &, const TDesC8 &)
TInt
|
AssociateServiceL
|
(
|
const
TDesC8
&
|
aURI,
|
|
const
TDesC8
&
|
aProviderID
|
|
)
|
[pure virtual]
|
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).
Parameters
const
TDesC8
& aURI
|
either the contract or the endpoint identifying some service
|
const
TDesC8
& aProviderID
|
the ID of an identity provider
|
CredentialsL(const TDesC8 &, RCredentialArray &, RCredentialPropertiesArray &)
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).
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.
Parameters
const
TDesC8
& aEndpoint
|
the endpoint which identifies the Credential
|
RCredentialArray
& 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
|
RCredentialPropertiesArray
& 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
|
CredentialsL(const TDesC8 &, const CSenIdentityProvider &, RCredentialArray &, RCredentialPropertiesArray &)
Consumer applications use this method for finding Credentials.
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.
Parameters
const
TDesC8
& aEndpoint
|
the endpoint which identifies the Credential
|
const
CSenIdentityProvider
& aIdP
|
the IdentityProvider which should match for IdentityProvider which is related to found Credential(s).
|
RCredentialArray
& 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.
|
RCredentialPropertiesArray
& 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
|
CredentialsL(const TDesC8 &, const TDesC8 &, const TDesC8 &, RCredentialArray &, RCredentialPropertiesArray &)
Consumer applications use this method for finding Credentials.
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.
Parameters
const
TDesC8
& aEndpoint
|
the endpoint which identifies the Credential
|
const
TDesC8
& aUserName
|
the username which should match for username in IdentityProvider which is related to found Credential(s).
|
const
TDesC8
& aPassword
|
the password which should match for password in IdentityProvider which is related to found Credential(s).
|
RCredentialArray
& 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.
|
RCredentialPropertiesArray
& 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
|
CredentialsL(const MSenServiceDescription &, RCredentialArray &, RCredentialPropertiesArray &)
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).
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.
Parameters
const
MSenServiceDescription
& 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.
|
RCredentialArray
& 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.
|
RCredentialPropertiesArray
& 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
|
CredentialsL(const MSenServiceDescription &, const CSenIdentityProvider &, RCredentialArray &, RCredentialPropertiesArray &)
Consumer applications use this method for finding Credentials.
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.
Parameters
const
MSenServiceDescription
& 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.
|
const
CSenIdentityProvider
& aIdP
|
the IdentityProvider which should match for IdentityProvider which is related to found Credential(s).
|
RCredentialArray
& 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.
|
RCredentialPropertiesArray
& 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
|
CredentialsL(const MSenServiceDescription &, const TDesC8 &, const TDesC8 &, RCredentialArray &, RCredentialPropertiesArray &)
Consumer applications use this method for finding Credentials.
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.
Parameters
const
MSenServiceDescription
& 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.
|
const
TDesC8
& aUserName
|
the username which should match for username in IdentityProvider which is related to found Credential(s).
|
const
TDesC8
& aPassword
|
the password which should match for password in IdentityProvider which is related to found Credential(s).
|
RCredentialArray
& 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.
|
RCredentialPropertiesArray
& 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.
|
DissociateServiceL(const TDesC8 &, const TDesC8 &)
TInt
|
DissociateServiceL
|
(
|
const
TDesC8
&
|
aServiceID,
|
|
const
TDesC8
&
|
aProviderID
|
|
)
|
[pure virtual]
|
Dissociate a service from an identity provider.
Parameters
const
TDesC8
& aServiceID
|
the contract or endpoint of a service
|
const
TDesC8
& aProviderID
|
the id of an identity provider
|
InterfaceByUid(TUid)
TAny
*
|
InterfaceByUid
|
(
|
TUid
|
aUID
|
)
|
[pure virtual]
|
This method provides an interface which is identified by unique ID (UID). Currently, there is only one supported interface: KSenInterfaceUidInternalServiceManager =>
MSenInternalServiceManager
Parameters
TUid
aUID
|
is the UID of the interface being requested
|
NewL(MSenAuthenticationProvider &)
NewLC(MSenAuthenticationProvider &)
RegisterIdentityProviderL(CSenIdentityProvider &)
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. 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.
RegisterServiceDescriptionL(MSenServiceDescription &)
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.
RemoveCredentialsL(const MSenServiceDescription &, const CSenIdentityProvider &)
Consumer applications use this method for removing Credentials.
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.
Parameters
const
MSenServiceDescription
& 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.
|
const
CSenIdentityProvider
& aIdP
|
the IdentityProvider which should match for IdentityProvider which is related to found Credential(s). Status codes: KErrNone ok
|
RemoveCredentialsL(const CSenIdentityProvider &)
Consumer applications use this method for removing Credentials.
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.
Parameters
const
CSenIdentityProvider
& aIdP
|
the IdentityProvider which should match for IdentityProvider which is related to found Credential(s). Status codes: KErrNone ok
|
RemoveCredentialsL(const MSenServiceDescription &, const TDesC8 &, const TDesC8 &)
Consumer applications use this method for removing Credentials.
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.
Parameters
const
MSenServiceDescription
& 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.
|
const
TDesC8
& aUserName
|
the username which should match for username in IdentityProvider which is related to found Credential(s).
|
const
TDesC8
& aPassword
|
the password which should match for password in IdentityProvider which is related to found Credential(s). Status codes: KErrNone ok
|
ServiceDescriptionsL(const TDesC8 &, RServiceDescriptionArray &)
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.
Parameters
const
TDesC8
& aURI
|
|
RServiceDescriptionArray
& 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.
|
ServiceDescriptionsL(MSenServiceDescription &, RServiceDescriptionArray &)
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.
Parameters
MSenServiceDescription
& aSD
|
a service description specifying search pattern (which includes contract, URI or both) used to find matching service descriptions.
|
RServiceDescriptionArray
& 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.
|
UnregisterIdentityProviderL(CSenIdentityProvider &)
Unregister an identity provider from the current active Identity.
UnregisterServiceDescriptionL(MSenServiceDescription &)
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.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.