epoc32/include/mw/senservicemanager.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000 (2010-03-16)
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@2
     5
* 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
williamr@2
     6
* which accompanies this distribution, and is available
williamr@2
     7
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Nokia Corporation - initial contribution.
williamr@2
    11
*
williamr@2
    12
* Contributors:
williamr@2
    13
*
williamr@2
    14
* Description:        CSenServiceManager class offers API for
williamr@2
    15
*                accessing and managing WebServicesFramework  
williamr@2
    16
*                (WSF) service and identity related data.
williamr@2
    17
*
williamr@2
    18
*/
williamr@2
    19
williamr@2
    20
williamr@2
    21
williamr@2
    22
williamr@2
    23
williamr@2
    24
williamr@2
    25
williamr@2
    26
williamr@2
    27
#ifndef SEN_SERVICE_MANAGER_H
williamr@2
    28
#define SEN_SERVICE_MANAGER_H
williamr@2
    29
williamr@2
    30
//  INCLUDES
williamr@2
    31
#include <e32base.h> // for CActive
williamr@2
    32
#include <e32std.h>  // for RPointerArray
williamr@2
    33
#include <badesca.h>
williamr@2
    34
williamr@2
    35
#include <MSenServiceConsumer.h>
williamr@2
    36
#include <MSenServiceDescription.h>
williamr@2
    37
#include <SenCredential2.h>
williamr@2
    38
#include <SenXmlProperties.h>
williamr@2
    39
#include "MSenAuthenticationProvider.h"
williamr@2
    40
williamr@2
    41
// FORWARD DECLARATIONS
williamr@2
    42
class CSenXmlServiceDescription;
williamr@2
    43
class CSenIdentityProvider;
williamr@2
    44
williamr@2
    45
// DATA TYPES
williamr@2
    46
typedef RPointerArray<CSenXmlServiceDescription> RServiceDescriptionArray;
williamr@2
    47
typedef RPointerArray<CSenCredential2> RCredentialArray;
williamr@2
    48
typedef RPointerArray<CSenXmlProperties> RCredentialPropertiesArray;
williamr@2
    49
williamr@2
    50
// CLASS DECLARATION
williamr@2
    51
williamr@2
    52
/**
williamr@2
    53
* CSenServiceManager class offers API for accessing and managing 
williamr@2
    54
* WebServicesFramework (WSF) service and identity related data.
williamr@2
    55
* The class is designed using abstract factory pattern: 
williamr@2
    56
* it only offers a instance (pointer) to the actual implementation 
williamr@2
    57
* class meeting this interface.
williamr@2
    58
* Typically, service consumers use of CSenServiceManager to register service
williamr@2
    59
* or identity based data, which is required for accessing some invocable, 
williamr@2
    60
* possibly remote service.
williamr@2
    61
* The class is meant for both default frameworks offered by WSF 
williamr@2
    62
* and for any custom plug-in service invocation framework implementation.
williamr@2
    63
* The default frameworks are:
williamr@2
    64
*      1) Identity Based Web Services Framework (ID-WSF).
williamr@2
    65
*      2) Basic Web Services Framework.
williamr@2
    66
* For Basic Web Service consumer, the only applicable operations are 
williamr@2
    67
* Identity data managing methods. These can be used to make connection 
williamr@2
    68
* specific Basic Authentication (BASIC-AUTH) credentials available without 
williamr@2
    69
* later end-user interaction. Otherwise required authentication info 
williamr@2
    70
* will be requested via notifier dialog prompts.
williamr@2
    71
* ID-WSF consumer has to use the CSenServiceManager methods to register 
williamr@2
    72
* authentication service description and identity provider (which are 
williamr@2
    73
* the same service in ID-WSF) and finally associate some actual service 
williamr@2
    74
* (contract to a WSP) to this IDP.
williamr@2
    75
* 
williamr@2
    76
* The current client-server framework implementation of CSenServiceManager 
williamr@2
    77
* is synchronous, although class inherits CActive for future extensions.
williamr@2
    78
* So, the class instance will not be an active object handled 
williamr@2
    79
* by ActiveScheduler, and it does not have implementation 
williamr@2
    80
* in RunL() or DoCancel() methods.
williamr@2
    81
*
williamr@2
    82
*  @lib SenServMgr.lib
williamr@2
    83
*  @since Series60 3.0
williamr@2
    84
*/
williamr@2
    85
class CSenServiceManager : public CActive
williamr@2
    86
    {
williamr@2
    87
    public: // Constructors and destructor
williamr@2
    88
williamr@2
    89
        /**
williamr@2
    90
        * Two-phased constructor.
williamr@2
    91
        */
williamr@2
    92
        IMPORT_C static CSenServiceManager* NewL();
williamr@2
    93
    
williamr@2
    94
        /**
williamr@2
    95
        * Two-phased constructor.
williamr@2
    96
        */
williamr@2
    97
        IMPORT_C static CSenServiceManager* NewLC();
williamr@2
    98
        
williamr@2
    99
        /**
williamr@2
   100
        * Two-phased constructor.
williamr@2
   101
        */
williamr@2
   102
        IMPORT_C static CSenServiceManager* NewL(MSenAuthenticationProvider& aAuthProvider);
williamr@2
   103
    
williamr@2
   104
        /**
williamr@2
   105
        * Two-phased constructor.
williamr@2
   106
        */
williamr@2
   107
        IMPORT_C static CSenServiceManager* NewLC(MSenAuthenticationProvider& aAuthProvider);
williamr@2
   108
williamr@2
   109
        // New functions
williamr@2
   110
williamr@2
   111
        /**
williamr@2
   112
        * Consumers use this to find services with matching URI 
williamr@2
   113
        * (contract or endpoint) of the service. ID-WSF consumers
williamr@2
   114
        * typically use the service type (contract) they are
williamr@2
   115
        * interested on. 
williamr@2
   116
        * Contract is typically some URN and most endpoints are URLs.
williamr@2
   117
        * The Basic Web Service descriptions are not written into WSF
williamr@2
   118
        * database, so they cannot be searched using this method.
williamr@2
   119
        * @param    aUri specifies the search string (contract or endpoint)
williamr@2
   120
        *           which will be used to find matching service descriptions.
williamr@2
   121
        * @param    aList an array with 0 or more service descriptions which
williamr@2
   122
        *           are already registered to WSF.
williamr@2
   123
        *           The ownership of the array is passed to the caller so before
williamr@2
   124
        *           the array goes out of scope in the client, the caller must
williamr@2
   125
        *           call RPointerArray::ResetAndDestroy() on the array to free any
williamr@2
   126
        *           entries.
williamr@2
   127
        * @return status/error code.
williamr@2
   128
        * Status codes:
williamr@2
   129
        * KErrNone                      ok
williamr@2
   130
        * Error codes:
williamr@2
   131
        * KErrNotFound                  No matching service description was found.
williamr@2
   132
        * Other error codes are system-wide Symbian error codes.
williamr@2
   133
        */
williamr@2
   134
        virtual TInt ServiceDescriptionsL(  const TDesC8& aURI,
williamr@2
   135
                                            RServiceDescriptionArray& aList) = 0;
williamr@2
   136
williamr@2
   137
        /**
williamr@2
   138
        * Consumers use this to find services with matching 
williamr@2
   139
        * service description. The service description may 
williamr@2
   140
        * include specific contract or endpoint of the service
williamr@2
   141
        * as a searching criteria.
williamr@2
   142
        * Contract is typically some URN and most endpoints are URLs.
williamr@2
   143
        * The Basic Web Service descriptions are not written into WSF
williamr@2
   144
        * database, so they cannot be searched using this method.
williamr@2
   145
        * @param    aSD a service description specifying search pattern 
williamr@2
   146
        *           (which includes contract, URI or both) used to find 
williamr@2
   147
        *           matching service descriptions.
williamr@2
   148
        * @param    aList an array with 0 or more ServiceDescriptions which
williamr@2
   149
        *           are already registered to WSF.
williamr@2
   150
        *           The ownership of the array is passed to the caller so before
williamr@2
   151
        *           the array goes out of scope in the client, the caller must
williamr@2
   152
        *           call RPointerArray::ResetAndDestroy() on the array to free any
williamr@2
   153
        *           entries.
williamr@2
   154
        * @return status/error code.
williamr@2
   155
        * Status codes:
williamr@2
   156
        * KErrNone                      ok
williamr@2
   157
        * Error codes:
williamr@2
   158
        * KErrNotFound                  No matching service descriptions found.
williamr@2
   159
        * Other error codes are system-wide Symbian error codes.
williamr@2
   160
        */
williamr@2
   161
        virtual TInt ServiceDescriptionsL(  MSenServiceDescription& aSD,
williamr@2
   162
                                            RServiceDescriptionArray& aList) = 0;
williamr@2
   163
williamr@2
   164
        /**
williamr@2
   165
        * Used by consumer applications to register new service to WSF
williamr@2
   166
        * The service could not otherwise be discovered while creating 
williamr@2
   167
        * a service connection. ID-WSF Authentication Service is an 
williamr@2
   168
        * example of this kind of remote service.
williamr@2
   169
        * The Basic Web Service consumer does not need to and cannot 
williamr@2
   170
        * register any service related data.
williamr@2
   171
        * In service description, the default framework ID is "ID-WSF",
williamr@2
   172
        * through which frameworks performing the actual registration
williamr@2
   173
        * are looked up. For any custom framework plug-in, the framework
williamr@2
   174
        * ID must be separately set.
williamr@2
   175
        * For ID-WSF service descriptions  it is mandatory to set both 
williamr@2
   176
        * contract and endpoint.
williamr@2
   177
        * Calling the method performs one of the following:
williamr@2
   178
        *      1. It registers a new service description
williamr@2
   179
        *      2. It updates an existing service description
williamr@2
   180
        *         with matching contract and endpoint.
williamr@2
   181
        * @param    aSD a service description to be registered
williamr@2
   182
        * @return status/error code.
williamr@2
   183
        * Status codes:
williamr@2
   184
        * KErrNone                      ok
williamr@2
   185
        * Error codes:
williamr@2
   186
        * KErrNotReady                  Service description couldn't be registered,
williamr@2
   187
        *                               e.g. because end-user permission to modify
williamr@2
   188
        *                               WSF data was not granted (a dialog prompt).
williamr@2
   189
        * KErrNotFound                  Web Services framework couldn't find any
williamr@2
   190
        *                               required framework plug-in used to register 
williamr@2
   191
        *                               a service description of a given type
williamr@2
   192
        *                               (framework ID).
williamr@2
   193
        * KErrSenNoContract             Given service description didn't have
williamr@2
   194
        *                               a contract specified, even if the used
williamr@2
   195
        *                               framework needs one. For ID-WSF it is
williamr@2
   196
        *                               mandatory to define a contract for
williamr@2
   197
        *                               service description registration.
williamr@2
   198
        * KErrSenNoEndpoint             Given service description didn't have
williamr@2
   199
        *                               a endpoint specified, even if the used
williamr@2
   200
        *                               framework needs one. For ID-WSF it is
williamr@2
   201
        *                               mandatory to define an endpoint for
williamr@2
   202
        *                               service description registration.
williamr@2
   203
        * KErrSenNoContractNoEndPoint   Given service description didn't have
williamr@2
   204
        *                               an endpoint and contract specified, even if the used
williamr@2
   205
        *                               framework needs one. For ID-WSF it is
williamr@2
   206
        *                               mandatory to define both an endpoint and contract for
williamr@2
   207
        *                               service description registration.
williamr@2
   208
        * Other error codes are system-wide Symbian error codes.
williamr@2
   209
        */
williamr@2
   210
        virtual TInt RegisterServiceDescriptionL(MSenServiceDescription& aSD) = 0;
williamr@2
   211
williamr@2
   212
        /**
williamr@2
   213
        * Used by consumer application to to inform the ServiceManager 
williamr@2
   214
        * about a service which no longer is available. The ServiceManager
williamr@2
   215
        * will remove the service from its database as soon as it is no 
williamr@2
   216
        * longer used.
williamr@2
   217
        * @param    aSD a ServiceDescription to be unregistered
williamr@2
   218
        * @return status/error code.
williamr@2
   219
        * Status codes:
williamr@2
   220
        * KErrNone                      ok
williamr@2
   221
        * Error codes:
williamr@2
   222
        * KErrBadDescriptor             aSD was invalid service description and
williamr@2
   223
        *                               couldn't be unregistered.
williamr@2
   224
        * KErrNotReady                  Service description couldn't be registered,
williamr@2
   225
        *                               e.g. because end-user permission to modify
williamr@2
   226
        *                               WSF data was not granted (a dialog prompt).
williamr@2
   227
        * KErrNotFound                  Couldn't find a matching framework to 
williamr@2
   228
        *                               register service description or couldn't
williamr@2
   229
        *                               find a matching service description.
williamr@2
   230
        * KErrSenNoContract             Given service description didn't have
williamr@2
   231
        *                               a contract specified, even if the used
williamr@2
   232
        *                               framework needs one.
williamr@2
   233
        * KErrSenNoEndpoint             Given service description didn't have
williamr@2
   234
        *                               a endpoint specified, even if the used
williamr@2
   235
        *                               framework needs one.
williamr@2
   236
        * KErrSenNoContractNoEndPoint   Given service description didn't have
williamr@2
   237
        *                               an endpoint and contract specified, even if the used
williamr@2
   238
        *                               framework needs one. For ID-WSF it is
williamr@2
   239
        *                               mandatory to define both an endpoint and contract for
williamr@2
   240
        *                               service description registration.
williamr@2
   241
        * Other error codes are system-wide Symbian error codes.
williamr@2
   242
        */
williamr@2
   243
        virtual TInt UnregisterServiceDescriptionL(
williamr@2
   244
                                                MSenServiceDescription& aSD) = 0;
williamr@2
   245
williamr@2
   246
        /**
williamr@2
   247
        * Register an identity provider for the current active identity.
williamr@2
   248
        * It is required for both Basic Web Service and ID-WSF consumers
williamr@2
   249
        * that endpoint is defined in identity provider instance to make
williamr@2
   250
        * this data accessible later on while creating a service connection.
williamr@2
   251
        * @param    aProvider   an identity provider to be registered
williamr@2
   252
        * @return status/error code.
williamr@2
   253
        * Status codes:
williamr@2
   254
        * KErrNone                      ok
williamr@2
   255
        * Error codes:
williamr@2
   256
        * KErrBadDescriptor             aProvider was an invalid identity provider
williamr@2
   257
        *                               and couldn't be registered.
williamr@2
   258
        * KErrNotReady                  Service description couldn't be registered,
williamr@2
   259
        *                               e.g. because end-user permission to modify
williamr@2
   260
        *                               WSF data was not granted (a dialog prompt).
williamr@2
   261
        * KErrSenProviderIdInUseByAnotherEndpoint   
williamr@2
   262
        *                               attempt to register an identity provider
williamr@2
   263
        *                               failed, because ProviderID was already
williamr@2
   264
        *                               reserved in the use of another endpoint.
williamr@2
   265
        *
williamr@2
   266
        *                               A possible work-around for this would be
williamr@2
   267
        *                               to unregister such conflicting identity     
williamr@2
   268
        *                               provider using this particular ProviderID,
williamr@2
   269
        *                               but this solution is not recommended. Instead,
williamr@2
   270
        *                               separate providers, locating in different 
williamr@2
   271
        *                               endpoints, SHOULD always use different 
williamr@2
   272
        *                               ProviderIDs.
williamr@2
   273
        * Other error codes are system-wide Symbian error codes.
williamr@2
   274
        */
williamr@2
   275
        virtual TInt RegisterIdentityProviderL(CSenIdentityProvider& aProvider) = 0;
williamr@2
   276
williamr@2
   277
        /**
williamr@2
   278
        * Unregister an identity provider from the current active Identity.
williamr@2
   279
        * @param    aProvider an identity provider to be unregistered
williamr@2
   280
        * @return status/error code.
williamr@2
   281
        * Status codes:
williamr@2
   282
        * KErrNone                      ok
williamr@2
   283
        * Error codes:
williamr@2
   284
        * KErrBadDescriptor             aProvider was an invalid identity provider
williamr@2
   285
        *                               and couldn't be unregistered.
williamr@2
   286
        * KErrNotReady                  Identity provider couldn't be unregistered,
williamr@2
   287
        *                               e.g. because user didn't allow it.
williamr@2
   288
        * KErrNotFound                  aProvider was not found and couldn't be
williamr@2
   289
        *                               unregistered.
williamr@2
   290
        * Other error codes are system-wide Symbian error codes.
williamr@2
   291
        */
williamr@2
   292
        virtual TInt UnregisterIdentityProviderL(
williamr@2
   293
                                        CSenIdentityProvider& aProvider) = 0;
williamr@2
   294
williamr@2
   295
williamr@2
   296
        /**
williamr@2
   297
        * Consumer applications use this method to associate 
williamr@2
   298
        * some pre-registered service to certain (registered)
williamr@2
   299
        * identity provider. The association adds the service ID
williamr@2
   300
        * (contract of the service that trusts this identity
williamr@2
   301
        * provider) into WSF identity database.
williamr@2
   302
        * In ID-WSF, consumers typically associate authentication
williamr@2
   303
        * service description with some identity provider. This
williamr@2
   304
        * way the ID-WSF framework can find the identity provider 
williamr@2
   305
        * by using the contract of the service as a search pattern
williamr@2
   306
        * (for e.g. liberty AS contract).
williamr@2
   307
        * @param aURI either the contract or the endpoint 
williamr@2
   308
        *             identifying some  service
williamr@2
   309
        * @param aProviderID the ID of an identity provider
williamr@2
   310
        * @return status/error code.
williamr@2
   311
        * Status codes:
williamr@2
   312
        * KErrNone                      ok
williamr@2
   313
        * Error codes:
williamr@2
   314
        * KErrArgument                  Either or both of the parameters were
williamr@2
   315
        *                               zero-length or invalid descriptors
williamr@2
   316
        * KErrNotReady                  Identity provider couldn't be unregistered,
williamr@2
   317
        *                               e.g. because user didn't allow it.
williamr@2
   318
        * KErrNotFound                  Web Services framework couldn't find
williamr@2
   319
        *                               the identity provider by given provider ID.
williamr@2
   320
        */
williamr@2
   321
        virtual TInt AssociateServiceL( const TDesC8& aURI,
williamr@2
   322
                                        const TDesC8& aProviderID) = 0;
williamr@2
   323
williamr@2
   324
        /**
williamr@2
   325
        * Dissociate a service from an identity provider.
williamr@2
   326
        * @param aServiceID the contract or endpoint of a service
williamr@2
   327
        * @param aProviderID the id of an identity provider
williamr@2
   328
        * @return status/error code.
williamr@2
   329
        * Status codes:
williamr@2
   330
        * KErrNone                      ok
williamr@2
   331
        * Error codes:
williamr@2
   332
        * KErrArgument                  Either or both of the parameters were
williamr@2
   333
        *                               zero-length or invalid descriptors
williamr@2
   334
        * KErrNotReady                  Service couldn't be dissociated, 
williamr@2
   335
        *                               e.g. because user didn't allow it.
williamr@2
   336
        * KErrNotFound                  Web Services framework couldn't find
williamr@2
   337
        *                               the identity provider by given 
williamr@2
   338
        *                               provider ID.
williamr@2
   339
        */
williamr@2
   340
        virtual TInt DissociateServiceL(const TDesC8& aServiceID,
williamr@2
   341
                                        const TDesC8& aProviderID) = 0;
williamr@2
   342
         
williamr@2
   343
        /**
williamr@2
   344
        * Consumer applications use this method for finding Credentials.
williamr@2
   345
        * IdentityProvider or Username and Password are given either via 
williamr@2
   346
        * IdentityProviderL() callback or UsernameL() and Password()
williamr@2
   347
        * callbacks from MSenAuthenticationProvider (which can be given
williamr@2
   348
        * through specialized NewL or NewLC methods).
williamr@2
   349
        *
williamr@2
   350
        * @param    aEndpoint       the endpoint which identifies the Credential
williamr@2
   351
        * @param    aCredentials    an array with 0 or more Credentials.
williamr@2
   352
        *                           The ownership of the array (and Credentials)
williamr@2
   353
        *                           is passed to the caller so before the array
williamr@2
   354
        *                           goes out of scope in the client, the caller
williamr@2
   355
        *                           must call RPointerArray::ResetAndDestroy()
williamr@2
   356
        *                           on the array to close the array and delete
williamr@2
   357
        * @param    aCredentialProperties    an array with 0 or more
williamr@2
   358
        *                           CredentialsProperties.
williamr@2
   359
        *                           The ownership of the array (and
williamr@2
   360
        *                           CredentialProperties) is passed to the caller
williamr@2
   361
        *                           so before the array goes out of scope in the 
williamr@2
   362
        *                           client, the caller must call
williamr@2
   363
        *                           RPointerArray::ResetAndDestroy()
williamr@2
   364
        *                           on the array to close the array and delete
williamr@2
   365
        *                           all the CredentialProperties in the array.
williamr@2
   366
        *                           Note: aCredentials array and
williamr@2
   367
        *                                 aCredentialProperties array are in
williamr@2
   368
        *                                 sync. If Credential has properties,
williamr@2
   369
        *                                 properties are placed in same 
williamr@2
   370
        *                                 position in aCredentialProperties array
williamr@2
   371
        *                                 as raleted Credential in aCredentials
williamr@2
   372
        *                                 array.
williamr@2
   373
        *                           Note: If Credential has no properties,
williamr@2
   374
        *                                 there is NULL in related position
williamr@2
   375
        *                                 in aCredentialProperties array.
williamr@2
   376
        *                           all the Credentials in the array.
williamr@2
   377
        * Status codes:
williamr@2
   378
        * KErrNone                  ok
williamr@2
   379
        *
williamr@2
   380
        * Error codes:
williamr@2
   381
        * KErrNotFound              Web Services framework couldn't find
williamr@2
   382
        *                           the Credentials using given Endpoint.
williamr@2
   383
        * KErrSenNoPermission       Given IdentityProvider or Username and
williamr@2
   384
        *                           Password did not match for IdentityProvider
williamr@2
   385
        *                           which is related to found Credential(s).
williamr@2
   386
        * Other error codes are system-wide Symbian error codes.
williamr@2
   387
        */
williamr@2
   388
        virtual TInt CredentialsL(const TDesC8& aEndpoint,
williamr@2
   389
                                  RCredentialArray& aCredentials,
williamr@2
   390
                                  RCredentialPropertiesArray& aCredentialProperties) = 0;
williamr@2
   391
        
williamr@2
   392
        /**
williamr@2
   393
        * Consumer applications use this method for finding Credentials.
williamr@2
   394
        *
williamr@2
   395
        * @param    aEndpoint       the endpoint which identifies the Credential
williamr@2
   396
        * @param    aIdP            the IdentityProvider which should match
williamr@2
   397
        *                           for IdentityProvider which is related to
williamr@2
   398
        *                           found Credential(s).
williamr@2
   399
        * @param    aCredentials    an array with 0 or more Credentials.
williamr@2
   400
        *                           The ownership of the array (and Credentials)
williamr@2
   401
        *                           is passed to the caller so before the array
williamr@2
   402
        *                           goes out of scope in the client, the caller
williamr@2
   403
        *                           must call RPointerArray::ResetAndDestroy()
williamr@2
   404
        *                           on the array to close the array and delete
williamr@2
   405
        *                           all the Credentials in the array.
williamr@2
   406
        * @param    aCredentialProperties    an array with 0 or more
williamr@2
   407
        *                           CredentialsProperties.
williamr@2
   408
        *                           The ownership of the array (and
williamr@2
   409
        *                           CredentialProperties) is passed to the caller
williamr@2
   410
        *                           so before the array goes out of scope in the 
williamr@2
   411
        *                           client, the caller must call
williamr@2
   412
        *                           RPointerArray::ResetAndDestroy()
williamr@2
   413
        *                           on the array to close the array and delete
williamr@2
   414
        *                           all the CredentialProperties in the array.
williamr@2
   415
        *                           Note: aCredentials array and
williamr@2
   416
        *                                 aCredentialProperties array are in
williamr@2
   417
        *                                 sync. If Credential has properties,
williamr@2
   418
        *                                 properties are placed in same 
williamr@2
   419
        *                                 position in aCredentialProperties array
williamr@2
   420
        *                                 as raleted Credential in aCredentials
williamr@2
   421
        *                                 array.
williamr@2
   422
        *                           Note: If Credential has no properties,
williamr@2
   423
        *                                 there is NULL in related position
williamr@2
   424
        *                                 in aCredentialProperties array.
williamr@2
   425
        * Status codes:
williamr@2
   426
        * KErrNone                  ok
williamr@2
   427
        *
williamr@2
   428
        * Error codes:
williamr@2
   429
        * KErrNotFound              Web Services framework couldn't find
williamr@2
   430
        *                           the Credentials using given Endpoint.
williamr@2
   431
        * KErrSenNoPermission       Given IdentityProvider did not match for
williamr@2
   432
        *                           IdentityProvider which is related to
williamr@2
   433
        *                           found Credential.
williamr@2
   434
        * Other error codes are system-wide Symbian error codes.
williamr@2
   435
        */
williamr@2
   436
        virtual TInt CredentialsL(const TDesC8& aEndpoint,
williamr@2
   437
                                  const CSenIdentityProvider& aIdP,
williamr@2
   438
                                  RCredentialArray& aCredentials,
williamr@2
   439
                                  RCredentialPropertiesArray& aCredentialProperties) = 0;
williamr@2
   440
        
williamr@2
   441
        /**
williamr@2
   442
        * Consumer applications use this method for finding Credentials.
williamr@2
   443
        *
williamr@2
   444
        * @param    aEndpoint       the endpoint which identifies the Credential
williamr@2
   445
        * @param    aUserName       the username which should match for 
williamr@2
   446
        *                           username in IdentityProvider which is related
williamr@2
   447
        *                           to found Credential(s).
williamr@2
   448
        * @param    aPassword       the password which should match for 
williamr@2
   449
        *                           password in IdentityProvider which is related
williamr@2
   450
        *                           to found Credential(s).
williamr@2
   451
        * @param    aCredentials    an array with 0 or more Credentials.
williamr@2
   452
        *                           The ownership of the array (and Credentials)
williamr@2
   453
        *                           is passed to the caller so before the array
williamr@2
   454
        *                           goes out of scope in the client, the caller
williamr@2
   455
        *                           must call RPointerArray::ResetAndDestroy()
williamr@2
   456
        *                           on the array to close the array and delete
williamr@2
   457
        *                           all the Credentials in the array.
williamr@2
   458
        * @param    aCredentialProperties    an array with 0 or more
williamr@2
   459
        *                           CredentialsProperties.
williamr@2
   460
        *                           The ownership of the array (and
williamr@2
   461
        *                           CredentialProperties) is passed to the caller
williamr@2
   462
        *                           so before the array goes out of scope in the 
williamr@2
   463
        *                           client, the caller must call
williamr@2
   464
        *                           RPointerArray::ResetAndDestroy()
williamr@2
   465
        *                           on the array to close the array and delete
williamr@2
   466
        *                           all the CredentialProperties in the array.
williamr@2
   467
        *                           Note: aCredentials array and
williamr@2
   468
        *                                 aCredentialProperties array are in
williamr@2
   469
        *                                 sync. If Credential has properties,
williamr@2
   470
        *                                 properties are placed in same 
williamr@2
   471
        *                                 position in aCredentialProperties array
williamr@2
   472
        *                                 as raleted Credential in aCredentials
williamr@2
   473
        *                                 array.
williamr@2
   474
        *                           Note: If Credential has no properties,
williamr@2
   475
        *                                 there is NULL in related position
williamr@2
   476
        *                                 in aCredentialProperties array.
williamr@2
   477
        * Status codes:
williamr@2
   478
        * KErrNone                  ok
williamr@2
   479
        *
williamr@2
   480
        * Error codes:
williamr@2
   481
        * KErrNotFound              Web Services framework couldn't find
williamr@2
   482
        *                           the Credentials using given Endpoint.
williamr@2
   483
        * KErrSenNoPermission       Given IdentityProvider did not match for
williamr@2
   484
        *                           IdentityProvider which is related to
williamr@2
   485
        *                           found Credential.
williamr@2
   486
        * Other error codes are system-wide Symbian error codes.
williamr@2
   487
        */
williamr@2
   488
        virtual TInt CredentialsL(const TDesC8& aEndpoint,
williamr@2
   489
                                  const TDesC8& aUserName,
williamr@2
   490
                                  const TDesC8& aPassword,
williamr@2
   491
                                  RCredentialArray& aCredentials,
williamr@2
   492
                                  RCredentialPropertiesArray& aCredentialProperties) = 0;
williamr@2
   493
williamr@2
   494
        /**
williamr@2
   495
        * Consumer applications use this method for finding Credentials.
williamr@2
   496
        * IdentityProvider or Username and Password are given either via 
williamr@2
   497
        * IdentityProviderL() callback or UsernameL() and Password()
williamr@2
   498
        * callbacks from MSenAuthenticationProvider (which can be given
williamr@2
   499
        * through specialized NewL or NewLC methods).
williamr@2
   500
        *
williamr@2
   501
        * @param    aPattern        the pattern which identifies the Credential
williamr@2
   502
        *                           Note: Pattern which was used to add Credential
williamr@2
   503
        *                                 has to be used for finding Credential.
williamr@2
   504
        *                           Note: Used Framework should specify what
williamr@2
   505
        *                                 kind of pattern should be used
williamr@2
   506
        *                                 for storing framework specific
williamr@2
   507
        *                                 Credentials.
williamr@2
   508
        * @param    aCredentials    an array with 0 or more Credentials.
williamr@2
   509
        *                           The ownership of the array (and Credentials)
williamr@2
   510
        *                           is passed to the caller so before the array
williamr@2
   511
        *                           goes out of scope in the client, the caller
williamr@2
   512
        *                           must call RPointerArray::ResetAndDestroy()
williamr@2
   513
        *                           on the array to close the array and delete
williamr@2
   514
        *                           all the Credentials in the array.
williamr@2
   515
        * @param    aCredentialProperties    an array with 0 or more
williamr@2
   516
        *                           CredentialsProperties.
williamr@2
   517
        *                           The ownership of the array (and
williamr@2
   518
        *                           CredentialProperties) is passed to the caller
williamr@2
   519
        *                           so before the array goes out of scope in the 
williamr@2
   520
        *                           client, the caller must call
williamr@2
   521
        *                           RPointerArray::ResetAndDestroy()
williamr@2
   522
        *                           on the array to close the array and delete
williamr@2
   523
        *                           all the CredentialProperties in the array.
williamr@2
   524
        *                           Note: aCredentials array and
williamr@2
   525
        *                                 aCredentialProperties array are in
williamr@2
   526
        *                                 sync. If Credential has properties,
williamr@2
   527
        *                                 properties are placed in same 
williamr@2
   528
        *                                 position in aCredentialProperties array
williamr@2
   529
        *                                 as raleted Credential in aCredentials
williamr@2
   530
        *                                 array.
williamr@2
   531
        *                           Note: If Credential has no properties,
williamr@2
   532
        *                                 there is NULL in related position
williamr@2
   533
        *                                 in aCredentialProperties array.
williamr@2
   534
        * Status codes:
williamr@2
   535
        * KErrNone                  ok
williamr@2
   536
        *
williamr@2
   537
        * Error codes:
williamr@2
   538
        * KErrNotFound              Web Services framework couldn't find
williamr@2
   539
        *                           the Credentials using given Endpoint.
williamr@2
   540
        * KErrSenNoPermission       Given IdentityProvider or Username and
williamr@2
   541
        *                           Password did not match for IdentityProvider
williamr@2
   542
        *                           which is related to found Credential(s).
williamr@2
   543
        * Other error codes are system-wide Symbian error codes.
williamr@2
   544
        */
williamr@2
   545
        virtual TInt CredentialsL(const MSenServiceDescription& aPattern,
williamr@2
   546
                                  RCredentialArray& aCredentials,
williamr@2
   547
                                  RCredentialPropertiesArray& aCredentialProperties) = 0;
williamr@2
   548
        
williamr@2
   549
        /**
williamr@2
   550
        * Consumer applications use this method for finding Credentials.
williamr@2
   551
        *
williamr@2
   552
        * @param    aPattern        the pattern which identifies the Credential
williamr@2
   553
        *                           Note: Pattern which was used to add Credential
williamr@2
   554
        *                                 has to be used for finding Credential.
williamr@2
   555
        *                           Note: Used Framework should specify what
williamr@2
   556
        *                                 kind of pattern should be used
williamr@2
   557
        *                                 for storing framework specific
williamr@2
   558
        *                                 Credentials.
williamr@2
   559
        * @param    aIdP            the IdentityProvider which should match
williamr@2
   560
        *                           for IdentityProvider which is related to
williamr@2
   561
        *                           found Credential(s).
williamr@2
   562
        * @param    aCredentials    an array with 0 or more Credentials.
williamr@2
   563
        *                           The ownership of the array (and Credentials)
williamr@2
   564
        *                           is passed to the caller so before the array
williamr@2
   565
        *                           goes out of scope in the client, the caller
williamr@2
   566
        *                           must call RPointerArray::ResetAndDestroy()
williamr@2
   567
        *                           on the array to close the array and delete
williamr@2
   568
        *                           all the Credentials in the array.
williamr@2
   569
        * @param    aCredentialProperties    an array with 0 or more
williamr@2
   570
        *                           CredentialsProperties.
williamr@2
   571
        *                           The ownership of the array (and
williamr@2
   572
        *                           CredentialProperties) is passed to the caller
williamr@2
   573
        *                           so before the array goes out of scope in the 
williamr@2
   574
        *                           client, the caller must call
williamr@2
   575
        *                           RPointerArray::ResetAndDestroy()
williamr@2
   576
        *                           on the array to close the array and delete
williamr@2
   577
        *                           all the CredentialProperties in the array.
williamr@2
   578
        *                           Note: aCredentials array and
williamr@2
   579
        *                                 aCredentialProperties array are in
williamr@2
   580
        *                                 sync. If Credential has properties,
williamr@2
   581
        *                                 properties are placed in same 
williamr@2
   582
        *                                 position in aCredentialProperties array
williamr@2
   583
        *                                 as raleted Credential in aCredentials
williamr@2
   584
        *                                 array.
williamr@2
   585
        *                           Note: If Credential has no properties,
williamr@2
   586
        *                                 there is NULL in related position
williamr@2
   587
        *                                 in aCredentialProperties array.
williamr@2
   588
        * Status codes:
williamr@2
   589
        * KErrNone                  ok
williamr@2
   590
        *
williamr@2
   591
        * Error codes:
williamr@2
   592
        * KErrNotFound              Web Services framework couldn't find
williamr@2
   593
        *                           the Credentials using given Endpoint.
williamr@2
   594
        * KErrSenNoPermission       Given IdentityProvider did not match for
williamr@2
   595
        *                           IdentityProvider which is related to
williamr@2
   596
        *                           found Credential.
williamr@2
   597
        * Other error codes are system-wide Symbian error codes.
williamr@2
   598
        */
williamr@2
   599
        virtual TInt CredentialsL(const MSenServiceDescription& aPattern,
williamr@2
   600
                                  const CSenIdentityProvider& aIdP,
williamr@2
   601
                                  RCredentialArray& aCredentials,
williamr@2
   602
                                  RCredentialPropertiesArray& aCredentialProperties) = 0;
williamr@2
   603
                                  
williamr@2
   604
        /**
williamr@2
   605
        * Consumer applications use this method for finding Credentials.
williamr@2
   606
        *
williamr@2
   607
        * @param    aPattern        the pattern which identifies the Credential
williamr@2
   608
        *                           Note: Pattern which was used to add Credential
williamr@2
   609
        *                                 has to be used for finding Credential.
williamr@2
   610
        *                           Note: Used Framework should specify what
williamr@2
   611
        *                                 kind of pattern should be used
williamr@2
   612
        *                                 for storing framework specific
williamr@2
   613
        *                                 Credentials.
williamr@2
   614
        * @param    aUserName       the username which should match for 
williamr@2
   615
        *                           username in IdentityProvider which is related
williamr@2
   616
        *                           to found Credential(s).
williamr@2
   617
        * @param    aPassword       the password which should match for 
williamr@2
   618
        *                           password in IdentityProvider which is related
williamr@2
   619
        *                           to found Credential(s).
williamr@2
   620
        * @param    aCredentials    an array with 0 or more Credentials.
williamr@2
   621
        *                           The ownership of the array (and Credentials)
williamr@2
   622
        *                           is passed to the caller so before the array
williamr@2
   623
        *                           goes out of scope in the client, the caller
williamr@2
   624
        *                           must call RPointerArray::ResetAndDestroy()
williamr@2
   625
        *                           on the array to close the array and delete
williamr@2
   626
        *                           all the Credentials in the array.
williamr@2
   627
        * @param    aCredentialProperties    an array with 0 or more
williamr@2
   628
        *                           CredentialsProperties.
williamr@2
   629
        *                           The ownership of the array (and
williamr@2
   630
        *                           CredentialProperties) is passed to the caller
williamr@2
   631
        *                           so before the array goes out of scope in the 
williamr@2
   632
        *                           client, the caller must call
williamr@2
   633
        *                           RPointerArray::ResetAndDestroy()
williamr@2
   634
        *                           on the array to close the array and delete
williamr@2
   635
        *                           all the CredentialProperties in the array.
williamr@2
   636
        *                           Note: aCredentials array and
williamr@2
   637
        *                                 aCredentialProperties array are in
williamr@2
   638
        *                                 sync. If Credential has properties,
williamr@2
   639
        *                                 properties are placed in same 
williamr@2
   640
        *                                 position in aCredentialProperties array
williamr@2
   641
        *                                 as raleted Credential in aCredentials
williamr@2
   642
        *                                 array.
williamr@2
   643
        *                           Note: If Credential has no properties,
williamr@2
   644
        *                                 there is NULL in related position
williamr@2
   645
        *                                 in aCredentialProperties array.
williamr@2
   646
        *                                 
williamr@2
   647
        * Status codes:
williamr@2
   648
        * KErrNone                  ok
williamr@2
   649
        *
williamr@2
   650
        * Error codes:
williamr@2
   651
        * KErrNotFound              Web Services framework couldn't find
williamr@2
   652
        *                           the Credentials using given Endpoint.
williamr@2
   653
        * KErrSenNoPermission       Given IdentityProvider did not match for
williamr@2
   654
        *                           IdentityProvider which is related to
williamr@2
   655
        *                           found Credential.
williamr@2
   656
        * Other error codes are system-wide Symbian error codes.
williamr@2
   657
        */
williamr@2
   658
        virtual TInt CredentialsL(const MSenServiceDescription& aPattern,
williamr@2
   659
                                  const TDesC8& aUserName,
williamr@2
   660
                                  const TDesC8& aPassword,
williamr@2
   661
                                  RCredentialArray& aCredentials,
williamr@2
   662
                                  RCredentialPropertiesArray& aCredentialProperties) = 0;
williamr@2
   663
        /**
williamr@2
   664
        * Consumer applications use this method for adding Credential.
williamr@2
   665
        *
williamr@2
   666
        * @param    aEndpoint       the endpoint which identifies the Credential
williamr@2
   667
        * @param    aIdP            the IdentityProvider which will be related
williamr@2
   668
        *                           to added Credential.
williamr@2
   669
        * @param    aCredential     the Credential which will be added.
williamr@2
   670
        * Status codes:
williamr@2
   671
        * KErrNone                  ok
williamr@2
   672
        *
williamr@2
   673
        * Error codes:
williamr@2
   674
        * KErrBadDescriptor         One of the parameters was invalid.
williamr@2
   675
        * KErrNotFound              Given IdentityProvider was not found
williamr@2
   676
        *                           and because of that Credential could
williamr@2
   677
        *                           not be added. (Fix: Register IdentityProvider
williamr@2
   678
        *                           first and try to add Credential after that.)
williamr@2
   679
        *                           
williamr@2
   680
        * Other error codes are system-wide Symbian error codes.
williamr@2
   681
        */
williamr@2
   682
        virtual TInt AddCredentialL(const TDesC8& aEndpoint,
williamr@2
   683
                                    const CSenIdentityProvider& aIdP,
williamr@2
   684
                                    const CSenCredential2& aCredential) = 0;
williamr@2
   685
                                        
williamr@2
   686
        /**
williamr@2
   687
        * Consumer applications use this method for adding Credential.
williamr@2
   688
        *
williamr@2
   689
        * @param    aPattern        the pattern which identifies the Credential
williamr@2
   690
        *                           Note: Exactly the same pattern has to be
williamr@2
   691
        *                                 used for finding Credential.
williamr@2
   692
        *                           Note: Used Framework should specify what
williamr@2
   693
        *                                 kind of pattern should be used
williamr@2
   694
        *                                 for handling framework specific
williamr@2
   695
        *                                 Credentials.
williamr@2
   696
        * @param    aIdP            the IdentityProvider which will be related
williamr@2
   697
        *                           to added Credential.
williamr@2
   698
        * @param    aCredential     the Credential which will be added.
williamr@2
   699
        *
williamr@2
   700
        * Status codes:
williamr@2
   701
        * KErrNone                  ok
williamr@2
   702
        *
williamr@2
   703
        * Error codes:
williamr@2
   704
        * KErrBadDescriptor         One of the parameters was invalid.
williamr@2
   705
        * KErrNotFound              Given IdentityProvider was not found
williamr@2
   706
        *                           and because of that Credential could
williamr@2
   707
        *                           not be added. (Fix: Register IdentityProvider
williamr@2
   708
        *                           first and try to add Credential after that)
williamr@2
   709
        *                           
williamr@2
   710
        * Other error codes are system-wide Symbian error codes.
williamr@2
   711
        */
williamr@2
   712
        virtual TInt AddCredentialL(const MSenServiceDescription& aPattern,
williamr@2
   713
                                    const CSenIdentityProvider& aIdP,
williamr@2
   714
                                    const CSenCredential2& aCredential) = 0;
williamr@2
   715
                                    
williamr@2
   716
        /**
williamr@2
   717
        * Consumer applications use this method for adding Credential.
williamr@2
   718
        *
williamr@2
   719
        * @param    aEndpoint               the endpoint which identifies the
williamr@2
   720
        *                                   Credential
williamr@2
   721
        * @param    aIdP                    the IdentityProvider which will be
williamr@2
   722
        *                                   related to added Credential.
williamr@2
   723
        * @param    aCredential             the Credential which will be added.
williamr@2
   724
        * @param    aCredentialProperties   the properties for Credential
williamr@2
   725
        * Status codes:
williamr@2
   726
        * KErrNone                  ok
williamr@2
   727
        *
williamr@2
   728
        * Error codes:
williamr@2
   729
        * KErrBadDescriptor         One of the parameters was invalid.
williamr@2
   730
        * KErrNotFound              Given IdentityProvider was not found
williamr@2
   731
        *                           and because of that Credential could
williamr@2
   732
        *                           not be added. (Fix: Register IdentityProvider
williamr@2
   733
        *                           first and try to add Credential after that.)
williamr@2
   734
        *                           
williamr@2
   735
        * Other error codes are system-wide Symbian error codes.
williamr@2
   736
        */
williamr@2
   737
        virtual TInt AddCredentialL(const TDesC8& aEndpoint,
williamr@2
   738
                                    const CSenIdentityProvider& aIdP,
williamr@2
   739
                                    const CSenCredential2& aCredential,
williamr@2
   740
                                    const CSenXmlProperties& aCredentialProperties) = 0;
williamr@2
   741
                                        
williamr@2
   742
        /**
williamr@2
   743
        * Consumer applications use this method for adding Credential.
williamr@2
   744
        *
williamr@2
   745
        * @param    aPattern                the pattern which identifies the
williamr@2
   746
        *                                   Credential
williamr@2
   747
        *                                   Note: Exactly the same pattern has
williamr@2
   748
        *                                         to be used for finding
williamr@2
   749
        *                                         Credential.
williamr@2
   750
        *                                   Note: Used Framework should specify
williamr@2
   751
        *                                         what kind of pattern should be
williamr@2
   752
        *                                         used for handling framework
williamr@2
   753
        *                                         specific Credentials.
williamr@2
   754
        * @param    aIdP                    the IdentityProvider which will be
williamr@2
   755
        *                                   related to added Credential.
williamr@2
   756
        * @param    aCredential             the Credential which will be added.
williamr@2
   757
        * @param    aCredentialProperties   the properties for Credential
williamr@2
   758
        *
williamr@2
   759
        * Status codes:
williamr@2
   760
        * KErrNone                  ok
williamr@2
   761
        *
williamr@2
   762
        * Error codes:
williamr@2
   763
        * KErrBadDescriptor         One of the parameters was invalid.
williamr@2
   764
        * KErrNotFound              Given IdentityProvider was not found
williamr@2
   765
        *                           and because of that Credential could
williamr@2
   766
        *                           not be added. (Fix: Register IdentityProvider
williamr@2
   767
        *                           first and try to add Credential after that)
williamr@2
   768
        *                           
williamr@2
   769
        * Other error codes are system-wide Symbian error codes.
williamr@2
   770
        */
williamr@2
   771
        virtual TInt AddCredentialL(const MSenServiceDescription& aPattern,
williamr@2
   772
                                    const CSenIdentityProvider& aIdP,
williamr@2
   773
                                    const CSenCredential2& aCredential,
williamr@2
   774
                                    const CSenXmlProperties& aCredentialProperties) = 0;
williamr@2
   775
                                    
williamr@2
   776
        /**
williamr@2
   777
        * Consumer applications use this method for removing Credentials.
williamr@2
   778
        *
williamr@2
   779
        * @param    aPattern        the pattern which identifies the Credential
williamr@2
   780
        *                           Note: Pattern which was used to add Credential
williamr@2
   781
        *                                 has to be used for removing Credential.
williamr@2
   782
        *                           Note: Used Framework should specify what
williamr@2
   783
        *                                 kind of pattern should be used
williamr@2
   784
        *                                 for handling framework specific
williamr@2
   785
        *                                 Credentials.
williamr@2
   786
        * @param    aIdP            the IdentityProvider which should match
williamr@2
   787
        *                           for IdentityProvider which is related to
williamr@2
   788
        *                           found Credential(s).
williamr@2
   789
        * Status codes:
williamr@2
   790
        * KErrNone                  ok
williamr@2
   791
        *
williamr@2
   792
        * Error codes:
williamr@2
   793
        * KErrNotFound              Web Services framework couldn't find
williamr@2
   794
        *                           the Credentials using given Pattern.
williamr@2
   795
        * KErrSenNoPermission       Given IdentityProvider did not match for
williamr@2
   796
        *                           IdentityProvider which is related to
williamr@2
   797
        *                           found Credential(s).
williamr@2
   798
        * Other error codes are system-wide Symbian error codes.
williamr@2
   799
        */
williamr@2
   800
        virtual TInt RemoveCredentialsL(const MSenServiceDescription& aPattern,
williamr@2
   801
                                        const CSenIdentityProvider& aIdP) = 0;
williamr@2
   802
williamr@2
   803
        /**
williamr@2
   804
        * Consumer applications use this method for removing Credentials.
williamr@2
   805
        *
williamr@2
   806
        * @param    aIdP            the IdentityProvider which should match
williamr@2
   807
        *                           for IdentityProvider which is related to
williamr@2
   808
        *                           found Credential(s).
williamr@2
   809
        * Status codes:
williamr@2
   810
        * KErrNone                  ok
williamr@2
   811
        *
williamr@2
   812
        * Error codes:
williamr@2
   813
        * KErrNotFound              Web Services framework couldn't find
williamr@2
   814
        *                           the Credentials using given Pattern.
williamr@2
   815
        * KErrSenNoPermission       Given IdentityProvider did not match for
williamr@2
   816
        *                           IdentityProvider which is related to
williamr@2
   817
        *                           found Credential(s).
williamr@2
   818
        * Other error codes are system-wide Symbian error codes.
williamr@2
   819
        */
williamr@2
   820
        virtual TInt RemoveCredentialsL(const CSenIdentityProvider& aIdP) = 0;
williamr@2
   821
williamr@2
   822
        /**
williamr@2
   823
        * Consumer applications use this method for removing Credentials.
williamr@2
   824
        *
williamr@2
   825
        * @param    aPattern        the pattern which identifies the Credential
williamr@2
   826
        *                           Note: Pattern which was used to add Credential
williamr@2
   827
        *                                 has to be used for finding Credential.
williamr@2
   828
        *                           Note: Used Framework should specify what
williamr@2
   829
        *                                 kind of pattern should be used
williamr@2
   830
        *                                 for handling framework specific
williamr@2
   831
        *                                 Credentials.
williamr@2
   832
        * @param    aUserName       the username which should match for 
williamr@2
   833
        *                           username in IdentityProvider which is related
williamr@2
   834
        *                           to found Credential(s).
williamr@2
   835
        * @param    aPassword       the password which should match for 
williamr@2
   836
        *                           password in IdentityProvider which is related
williamr@2
   837
        *                           to found Credential(s).
williamr@2
   838
        * Status codes:
williamr@2
   839
        * KErrNone                  ok
williamr@2
   840
        *
williamr@2
   841
        * Error codes:
williamr@2
   842
        * KErrNotFound              Web Services framework couldn't find
williamr@2
   843
        *                           the Credentials using given Pattern.
williamr@2
   844
        * KErrSenNoPermission       Given Username and Password did not match for
williamr@2
   845
        *                           IdentityProvider which is related to
williamr@2
   846
        *                           found Credential(s).
williamr@2
   847
        * Other error codes are system-wide Symbian error codes.
williamr@2
   848
        */
williamr@2
   849
        virtual TInt RemoveCredentialsL(const MSenServiceDescription& aPattern,
williamr@2
   850
                                        const TDesC8& aUserName,
williamr@2
   851
                                        const TDesC8& aPassword) = 0;
williamr@2
   852
                                        
williamr@2
   853
        
williamr@2
   854
        /**
williamr@2
   855
        * This method provides an interface which is identified by unique ID (UID).
williamr@2
   856
        * @param aUID is the UID of the interface being requested
williamr@2
   857
        * @return TAny* pointer to the interface, or if no interface to 
williamr@2
   858
        * given UID exists, function returns NULL. In typical cases, returned
williamr@2
   859
        * pointer should be cast to some preknown M-class pointer (the actual
williamr@2
   860
        * new interface).
williamr@2
   861
        *
williamr@2
   862
        * Currently, there is only one supported interface:
williamr@2
   863
        * KSenInterfaceUidInternalServiceManager => MSenInternalServiceManager
williamr@2
   864
        */  
williamr@2
   865
        virtual TAny* InterfaceByUid( TUid aUID ) = 0;
williamr@2
   866
williamr@2
   867
    protected:
williamr@2
   868
    
williamr@2
   869
        /**
williamr@2
   870
        * C++ default constructor 
williamr@2
   871
        */
williamr@2
   872
        CSenServiceManager();
williamr@2
   873
    };
williamr@2
   874
williamr@2
   875
#endif //SEN_SERVICE_MANAGER_H
williamr@2
   876
williamr@2
   877
// End of File
williamr@2
   878