CSenServiceManager Class Reference
API published in: S60 3rd Ed
Link against: senservmgr.lib
Capability Information
Required Capabilities
NetworkServices ReadUserData WriteUserData
#include <senservicemanager.h>
Detailed Description
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.
Constructor & Destructor Documentation
CSenServiceManager::CSenServiceManager |
( |
|
) |
[protected] |
|
Member Function Documentation
virtual TInt CSenServiceManager::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:
-
|
aURI
|
either the contract or the endpoint identifying some service |
|
aProviderID
|
the ID of an identity provider |
- Returns:
- 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 CSenServiceManager::DissociateServiceL |
( |
const TDesC8 & |
aServiceID,
|
|
|
const TDesC8 & |
aProviderID |
|
) |
[pure virtual] |
|
|
Dissociate a service from an identity provider.
- Parameters:
-
|
aServiceID
|
the contract or endpoint of a service |
|
aProviderID
|
the id of an identity provider |
- Returns:
- 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 CSenServiceManager::RegisterIdentityProviderL |
( |
CSenIdentityProvider &
|
aProvider
|
) |
[pure virtual] |
|
|
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.
- Parameters:
-
|
aProvider
|
an identity provider to be registered |
- Returns:
- 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). 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.
|
|
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.
- Parameters:
-
|
aSD
|
a service description to be registered |
- Returns:
- 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.
|
|
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:
-
|
aSD
|
a service description specifying search pattern (which includes contract, URI or both) used to find matching service descriptions.
|
|
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.
|
- Returns:
- 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 CSenServiceManager::ServiceDescriptionsL |
( |
const TDesC8 & |
aURI,
|
|
|
RServiceDescriptionArray &
|
aList |
|
) |
[pure virtual] |
|
|
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:
-
|
aUri
|
specifies the search string (contract or endpoint) which will be used to find matching service descriptions. |
|
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.
|
- Returns:
- status/error code. Status codes: KErrNone ok Error codes: KErrNotFound No matching service description was found. KErrBadDescriptor
aUri was zero length. Other error codes are system-wide Symbian error codes.
|
virtual TInt CSenServiceManager::UnregisterIdentityProviderL |
( |
CSenIdentityProvider &
|
aProvider
|
) |
[pure virtual] |
|
|
Unregister an identity provider from the current active Identity.
- Parameters:
-
|
aProvider
|
an identity provider to be unregistered |
- Returns:
- status/error code. Status codes: KErrNone ok Error codes: 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 CSenServiceManager::UnregisterServiceDescriptionL |
( |
MSenServiceDescription &
|
aSD
|
) |
[pure virtual] |
|
|
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.
- Parameters:
-
|
aSD
|
a ServiceDescription to be unregistered |
- Returns:
- 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 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.
|
The documentation for this class was generated from the following file: