epoc32/include/SyncMLClient.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2009 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@4
     5
* under the terms of "Eclipse Public License v1.0"
williamr@2
     6
* which accompanies this distribution, and is available
williamr@4
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.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: API for clients of the Data Synchronization and Device Management. Used to start, stop and observe synchronization/device management session, and modify data synchronization/device management settings.
williamr@2
    15
*
williamr@2
    16
*/
williamr@2
    17
///////////////////////////////////////////////////////////////////////////////
williamr@2
    18
// SyncMLClient.h
williamr@2
    19
// v09
williamr@2
    20
//
williamr@2
    21
///////////////////////////////////////////////////////////////////////////////
williamr@2
    22
#ifndef __SYNCMLCLIENT_H__
williamr@2
    23
#define __SYNCMLCLIENT_H__
williamr@2
    24
//
williamr@2
    25
#include <e32std.h>
williamr@2
    26
#include <badesca.h>
williamr@2
    27
#include <SyncMLDef.h>
williamr@2
    28
#include <SyncMLHistory.h>
williamr@2
    29
//
williamr@2
    30
class CClientSessionData;
williamr@2
    31
class CSmlActiveCallback;
williamr@2
    32
class CSyncMLTransportPropertiesArray;
williamr@2
    33
class MSyncMLEventObserver;
williamr@2
    34
class MSyncMLProgressObserver;
williamr@2
    35
//
williamr@2
    36
williamr@2
    37
williamr@2
    38
///////////////////////////////////////////////////////////////////////////////
williamr@2
    39
// RSyncMLSession
williamr@2
    40
///////////////////////////////////////////////////////////////////////////////
williamr@2
    41
class RSyncMLSession : public RSessionBase
williamr@2
    42
/**
williamr@2
    43
	A client handle to a SyncML Sync Agent session.
williamr@2
    44
williamr@2
    45
	An instance of this class must be created in order to instantiate any of 
williamr@2
    46
	the other client-side classes.
williamr@2
    47
williamr@2
    48
	Accessor methods are provided to enable clients to retrieve identifiers 
williamr@2
    49
	of current and queued jobs, and of available profiles, transports, and 
williamr@2
    50
	data providers. These IDs can be used to open handles on these objects 
williamr@2
    51
	in order to manipulate them.
williamr@2
    52
williamr@2
    53
	Clients can request notifications of events related to jobs, profiles, transports,
williamr@2
    54
	and the SyncML Agent, and can request progress for the currently running job.
williamr@2
    55
	@publishedAll
williamr@2
    56
	@released
williamr@2
    57
*/
williamr@2
    58
	{
williamr@2
    59
public:
williamr@2
    60
	IMPORT_C RSyncMLSession();
williamr@2
    61
	IMPORT_C void OpenL();
williamr@2
    62
williamr@2
    63
	IMPORT_C void RequestEventL(MSyncMLEventObserver&);
williamr@2
    64
	IMPORT_C void CancelEvent();
williamr@2
    65
williamr@2
    66
	IMPORT_C void RequestProgressL(MSyncMLProgressObserver&);
williamr@2
    67
	IMPORT_C void CancelProgress();
williamr@2
    68
williamr@2
    69
	IMPORT_C void CurrentJobL(TSmlJobId&, TSmlUsageType&) const;
williamr@2
    70
	IMPORT_C void ListQueuedJobsL(RArray<TSmlJobId>&, TSmlUsageType) const;
williamr@2
    71
williamr@2
    72
	IMPORT_C void ListProfilesL(RArray<TSmlProfileId>&, TSmlUsageType) const;
williamr@2
    73
	IMPORT_C void ListTransportsL(RArray<TSmlTransportId>&) const;
williamr@2
    74
	IMPORT_C void ListDataProvidersL(RArray<TSmlDataProviderId>&) const;
williamr@2
    75
williamr@2
    76
	IMPORT_C void DeleteProfileL(TSmlProfileId);
williamr@2
    77
williamr@2
    78
	IMPORT_C TSmlProtocolVersion ListProtocolVersionsL(TSmlUsageType, RArray<TSmlProtocolVersion>&) const;
williamr@2
    79
williamr@2
    80
	IMPORT_C void Close();
williamr@2
    81
    /**@internalTechnology*/
williamr@2
    82
	IMPORT_C void _DbgTestSettingL(TInt aSetting, TInt aParam);
williamr@2
    83
williamr@2
    84
private:
williamr@2
    85
	void ReceiveArrayL(RArray<TInt>&, TInt, TInt, TInt) const;
williamr@2
    86
private:
williamr@2
    87
	mutable CClientSessionData* iData;
williamr@2
    88
	friend class CSmlActiveCallback;
williamr@2
    89
	CSmlActiveCallback* iEventCallback;
williamr@2
    90
private:
williamr@2
    91
	// Prohibited.
williamr@2
    92
	RSyncMLSession& operator=(const RSyncMLSession&);
williamr@2
    93
	RSyncMLSession(const RSyncMLSession&);
williamr@2
    94
	};
williamr@2
    95
williamr@2
    96
///////////////////////////////////////////////////////////////////////////////
williamr@2
    97
///////////////////////////////////////////////////////////////////////////////
williamr@2
    98
williamr@2
    99
williamr@2
   100
///////////////////////////////////////////////////////////////////////////////
williamr@2
   101
// RSyncMLSettings
williamr@2
   102
///////////////////////////////////////////////////////////////////////////////
williamr@2
   103
class RSyncMLSettings : public RSubSessionBase
williamr@2
   104
/**
williamr@2
   105
	Handle to global settings for SyncML sync behaviour.
williamr@2
   106
williamr@2
   107
	@publishedAll
williamr@2
   108
	@released
williamr@2
   109
	@see TSmlGlobalSetting
williamr@2
   110
*/
williamr@2
   111
	{
williamr@2
   112
public:
williamr@2
   113
	IMPORT_C void OpenL(RSyncMLSession&);
williamr@2
   114
williamr@2
   115
	IMPORT_C TInt GetValueL(TSmlGlobalSetting) const;
williamr@2
   116
	IMPORT_C void SetValueL(TSmlGlobalSetting, TInt aValue);
williamr@2
   117
williamr@2
   118
	IMPORT_C void Close();
williamr@2
   119
	};
williamr@2
   120
williamr@2
   121
///////////////////////////////////////////////////////////////////////////////
williamr@2
   122
///////////////////////////////////////////////////////////////////////////////
williamr@2
   123
williamr@2
   124
///////////////////////////////////////////////////////////////////////////////
williamr@2
   125
// RSyncMLHistoryLog
williamr@2
   126
///////////////////////////////////////////////////////////////////////////////
williamr@2
   127
class RSyncMLHistoryLog : public RSubSessionBase
williamr@2
   128
/**
williamr@2
   129
	Snapshot of history for a profile.
williamr@2
   130
	@publishedAll
williamr@2
   131
	@released
williamr@2
   132
*/
williamr@2
   133
	{
williamr@2
   134
public:
williamr@2
   135
	IMPORT_C RSyncMLHistoryLog();
williamr@2
   136
	IMPORT_C void OpenL(RSyncMLSession&, TSmlProfileId);
williamr@2
   137
	IMPORT_C void SortEntries(CSyncMLHistoryEntry::TSortOrder);
williamr@2
   138
	IMPORT_C void DeleteAllEntriesL();
williamr@2
   139
	IMPORT_C TSmlProfileId Profile() const;
williamr@2
   140
	IMPORT_C TInt Count() const;
williamr@2
   141
	IMPORT_C const CSyncMLHistoryEntry& Entry(TInt aIndex) const;
williamr@2
   142
	inline const CSyncMLHistoryEntry& operator[](TInt aIndex) const;
williamr@2
   143
	IMPORT_C void Close();
williamr@2
   144
williamr@2
   145
private:
williamr@2
   146
	mutable CClientSessionData* iData;
williamr@2
   147
private:
williamr@2
   148
	// Prohibited.
williamr@2
   149
	RSyncMLHistoryLog& operator=(const RSyncMLHistoryLog&);
williamr@2
   150
	RSyncMLHistoryLog(const RSyncMLHistoryLog&);
williamr@2
   151
	};
williamr@2
   152
williamr@2
   153
///////////////////////////////////////////////////////////////////////////////
williamr@2
   154
inline const CSyncMLHistoryEntry& RSyncMLHistoryLog::operator[](TInt aIndex) const
williamr@2
   155
/**
williamr@2
   156
	Returns the entry at the specified index.
williamr@2
   157
@return				The entry at the specified index.
williamr@2
   158
@param				aIndex The index of the entry to retrieve.
williamr@2
   159
@publishedAll
williamr@2
   160
@released
williamr@2
   161
@pre				The handle is open.
williamr@2
   162
*/
williamr@2
   163
	{
williamr@2
   164
	return Entry(aIndex);
williamr@2
   165
	}
williamr@2
   166
williamr@2
   167
///////////////////////////////////////////////////////////////////////////////
williamr@2
   168
///////////////////////////////////////////////////////////////////////////////
williamr@2
   169
williamr@2
   170
williamr@2
   171
///////////////////////////////////////////////////////////////////////////////
williamr@2
   172
// RSyncMLJobBase
williamr@2
   173
///////////////////////////////////////////////////////////////////////////////
williamr@2
   174
class RSyncMLJobBase : public RSubSessionBase
williamr@2
   175
/**
williamr@2
   176
	Base class for a handle to a job.
williamr@2
   177
williamr@2
   178
	Data synchronisation and device management job handles are implemented
williamr@2
   179
	by derived classes.
williamr@2
   180
williamr@2
   181
	Not intended for user derivation. Public derived classes: 
williamr@2
   182
	@see RSyncMLDataSyncJob 
williamr@2
   183
	@see RSyncMLDevManJob
williamr@2
   184
williamr@2
   185
	@publishedAll
williamr@2
   186
	@released
williamr@2
   187
*/
williamr@2
   188
	{
williamr@2
   189
public:
williamr@2
   190
	IMPORT_C TSmlJobId Identifier() const;
williamr@2
   191
	IMPORT_C TSmlProfileId Profile() const;
williamr@2
   192
	IMPORT_C void Close();
williamr@2
   193
protected:
williamr@2
   194
	RSyncMLJobBase();
williamr@2
   195
	void GetJobL(TInt, TBool);
williamr@2
   196
protected:
williamr@2
   197
	/** @internalTechnology */
williamr@2
   198
	mutable CClientSessionData* iData;
williamr@2
   199
private:
williamr@2
   200
	// Prohibited.
williamr@2
   201
	RSyncMLJobBase& operator=(const RSyncMLJobBase&);
williamr@2
   202
	RSyncMLJobBase(const RSyncMLJobBase&);
williamr@2
   203
	};
williamr@2
   204
williamr@2
   205
///////////////////////////////////////////////////////////////////////////////
williamr@2
   206
///////////////////////////////////////////////////////////////////////////////
williamr@2
   207
williamr@2
   208
williamr@2
   209
///////////////////////////////////////////////////////////////////////////////
williamr@2
   210
// RSyncMLProfileBase
williamr@2
   211
///////////////////////////////////////////////////////////////////////////////
williamr@2
   212
class RSyncMLProfileBase : public RSubSessionBase
williamr@2
   213
/**
williamr@2
   214
	Base class for a handle to a SyncML profile. 
williamr@2
   215
	
williamr@2
   216
	A profile encapsulates a relationship with a single SyncML remote server for 
williamr@2
   217
	either Device Management or Data Synchronisation.
williamr@2
   218
williamr@2
   219
	Not intended for user derivation. Derived classes: 
williamr@2
   220
	@see RSyncMLDataSyncProfile 
williamr@2
   221
	@see RSyncMLDevManProfile 
williamr@2
   222
williamr@2
   223
	@publishedAll
williamr@2
   224
	@released
williamr@2
   225
*/
williamr@2
   226
	{
williamr@2
   227
public:
williamr@2
   228
	IMPORT_C void SetCreatorId(TSmlCreatorId);
williamr@2
   229
	IMPORT_C void SetDisplayNameL(const TDesC&);
williamr@2
   230
	IMPORT_C void SetUserNameL(const TDesC8&);
williamr@2
   231
	IMPORT_C void SetPasswordL(const TDesC8&);
williamr@2
   232
	IMPORT_C void SetServerIdL(const TDesC8&);
williamr@2
   233
	IMPORT_C void SetServerPasswordL(const TDesC8&);
williamr@2
   234
	IMPORT_C void SetSanUserInteractionL(TSmlServerAlertedAction);
williamr@2
   235
	IMPORT_C void SetProtocolVersionL(TSmlProtocolVersion);
williamr@2
   236
williamr@2
   237
	IMPORT_C void DeleteConnectionL(TSmlTransportId);
williamr@2
   238
	IMPORT_C void DeleteConnectionByConnectionIdL(TSmlConnectionId);
williamr@2
   239
williamr@2
   240
	IMPORT_C TSmlProfileId Identifier() const;
williamr@2
   241
	IMPORT_C TSmlUsageType Type() const;
williamr@2
   242
	IMPORT_C TSmlCreatorId CreatorId() const;
williamr@2
   243
	IMPORT_C const TDesC& DisplayName() const;
williamr@2
   244
	IMPORT_C const TDesC8& UserName() const;
williamr@2
   245
	IMPORT_C const TDesC8& Password() const;
williamr@2
   246
	IMPORT_C const TDesC8& ServerId() const;
williamr@2
   247
	IMPORT_C const TDesC8& ServerPassword() const;
williamr@2
   248
	IMPORT_C TSmlServerAlertedAction SanUserInteraction() const;
williamr@2
   249
	IMPORT_C TSmlProtocolVersion ProtocolVersion() const;
williamr@2
   250
williamr@2
   251
	IMPORT_C void ListConnectionsL(RArray<TSmlTransportId>&) const;
williamr@2
   252
	IMPORT_C void ListConnectionsByConnectionIdL(RArray<TSmlConnectionId>&) const;
williamr@2
   253
williamr@2
   254
	IMPORT_C TBool IsReadOnly() const;
williamr@2
   255
	IMPORT_C TBool DeleteAllowed() const;
williamr@4
   256
	/**
williamr@4
   257
	 
williamr@4
   258
   * Set Reset Profile lock Not supported for DS profiles
williamr@4
   259
   * @since 3.23
williamr@4
   260
   * @param  
williamr@4
   261
   * aReadWriteValue  EFalse for reading ETrue for writing
williamr@4
   262
   * aLockValue       EFalse for Unloacking ETrue for Locking the profile
williamr@4
   263
   * @return  TInt 
williamr@4
   264
   */
williamr@4
   265
	
williamr@4
   266
	
williamr@4
   267
  IMPORT_C TInt ProfileLocked(TBool aReadWriteValue, TBool aLockValue) const;
williamr@2
   268
	IMPORT_C void UpdateL();
williamr@2
   269
williamr@2
   270
	IMPORT_C void Close();
williamr@2
   271
williamr@2
   272
	const RSessionBase Session();
williamr@2
   273
protected:
williamr@2
   274
	RSyncMLProfileBase();
williamr@2
   275
	void GetProfileL(TInt aSize);
williamr@2
   276
	void ReceiveArrayL(RArray<TInt>&, TInt, TInt) const;
williamr@2
   277
protected:
williamr@2
   278
	/** @internalTechnology */
williamr@2
   279
	mutable CClientSessionData* iData;
williamr@2
   280
private:
williamr@2
   281
	// Prohibited.
williamr@2
   282
	RSyncMLProfileBase& operator=(const RSyncMLProfileBase&);
williamr@2
   283
	RSyncMLProfileBase(const RSyncMLProfileBase&);
williamr@2
   284
	};
williamr@2
   285
williamr@2
   286
///////////////////////////////////////////////////////////////////////////////
williamr@2
   287
///////////////////////////////////////////////////////////////////////////////
williamr@2
   288
williamr@2
   289
williamr@2
   290
///////////////////////////////////////////////////////////////////////////////
williamr@2
   291
// RSyncMLConnection
williamr@2
   292
///////////////////////////////////////////////////////////////////////////////
williamr@2
   293
class RSyncMLConnection : public RSubSessionBase
williamr@2
   294
/**
williamr@2
   295
	Handle to data defining a connection to a remote SyncML server in the context of a profile.
williamr@2
   296
williamr@2
   297
	@publishedAll
williamr@2
   298
	@released
williamr@2
   299
*/
williamr@2
   300
	{
williamr@2
   301
public:
williamr@2
   302
	IMPORT_C RSyncMLConnection();
williamr@2
   303
	IMPORT_C void CreateL(RSyncMLProfileBase&, TSmlTransportId);
williamr@2
   304
	IMPORT_C void OpenL(RSyncMLProfileBase&, TSmlTransportId);
williamr@2
   305
	IMPORT_C void OpenByConnectionIdL(RSyncMLProfileBase&, TSmlConnectionId);
williamr@2
   306
williamr@2
   307
	IMPORT_C TSmlTransportId Identifier() const;
williamr@2
   308
	IMPORT_C TSmlProfileId Profile() const;
williamr@2
   309
	IMPORT_C TSmlConnectionId ConnectionId() const;
williamr@2
   310
williamr@2
   311
	IMPORT_C TUint Priority() const;
williamr@2
   312
	IMPORT_C TUint RetryCount() const;
williamr@2
   313
	IMPORT_C const TDesC8& ServerURI() const;
williamr@2
   314
	IMPORT_C const TDesC8& GetPropertyL(const TDesC8& aName) const;
williamr@2
   315
williamr@2
   316
	IMPORT_C void SetPriority(TUint);
williamr@2
   317
	IMPORT_C void SetRetryCount(TUint);
williamr@2
   318
	IMPORT_C void SetServerURIL(const TDesC8&);
williamr@2
   319
	IMPORT_C void SetPropertyL(const TDesC8& aName, const TDesC8& aValue);
williamr@2
   320
williamr@2
   321
	IMPORT_C TBool IsReadOnly() const;
williamr@2
   322
	IMPORT_C void UpdateL();
williamr@2
   323
	IMPORT_C void Close();
williamr@2
   324
williamr@2
   325
private:
williamr@2
   326
	mutable CClientSessionData* iData;
williamr@2
   327
private:
williamr@2
   328
	// Prohibited.
williamr@2
   329
	RSyncMLConnection& operator=(const RSyncMLConnection&);
williamr@2
   330
	RSyncMLConnection(const RSyncMLConnection&);
williamr@2
   331
	};
williamr@2
   332
williamr@2
   333
///////////////////////////////////////////////////////////////////////////////
williamr@2
   334
///////////////////////////////////////////////////////////////////////////////
williamr@2
   335
williamr@2
   336
williamr@2
   337
///////////////////////////////////////////////////////////////////////////////
williamr@2
   338
// RSyncMLTransport
williamr@2
   339
///////////////////////////////////////////////////////////////////////////////
williamr@2
   340
class RSyncMLTransport : public RSubSessionBase
williamr@2
   341
/**
williamr@2
   342
	Handle to information about an available SyncML transport.
williamr@2
   343
williamr@2
   344
	@publishedAll
williamr@2
   345
	@released
williamr@2
   346
*/
williamr@2
   347
	{
williamr@2
   348
public:
williamr@2
   349
	IMPORT_C RSyncMLTransport();
williamr@2
   350
	IMPORT_C void OpenL(RSyncMLSession&, TSmlTransportId);
williamr@2
   351
williamr@2
   352
	IMPORT_C TSmlTransportId Identifier() const;
williamr@2
   353
	IMPORT_C const TDesC& DisplayName() const;
williamr@2
   354
williamr@2
   355
	IMPORT_C TBool SupportsCapability(TSmlTransportCap) const;
williamr@2
   356
	IMPORT_C const CSyncMLTransportPropertiesArray& Properties() const;
williamr@2
   357
williamr@2
   358
	IMPORT_C void StartListeningL() const; // Check ESmlCapCanListen supported first.
williamr@2
   359
	IMPORT_C void StopListeningL() const;
williamr@2
   360
williamr@2
   361
	IMPORT_C void Close();
williamr@2
   362
williamr@2
   363
private:
williamr@2
   364
	mutable CClientSessionData* iData;
williamr@2
   365
private:
williamr@2
   366
	// Prohibited.
williamr@2
   367
	RSyncMLTransport& operator=(const RSyncMLTransport&);
williamr@2
   368
	RSyncMLTransport(const RSyncMLTransport&);
williamr@2
   369
	};
williamr@2
   370
williamr@2
   371
///////////////////////////////////////////////////////////////////////////////
williamr@2
   372
///////////////////////////////////////////////////////////////////////////////
williamr@2
   373
williamr@2
   374
///////////////////////////////////////////////////////////////////////////////
williamr@2
   375
// TSmlOpenMode
williamr@2
   376
///////////////////////////////////////////////////////////////////////////////
williamr@2
   377
enum TSmlOpenMode
williamr@2
   378
/**
williamr@2
   379
	Defines the access mode for opening a handle to a SyncML profile.
williamr@2
   380
*/
williamr@2
   381
	{
williamr@2
   382
	/** 
williamr@2
   383
	Open for read-only access to data. 
williamr@2
   384
	
williamr@2
   385
	@capability ReadDeviceData
williamr@2
   386
	@Ref void RSyncMLDataSyncProfile::OpenL(RSyncMLSession& aSession, TSmlProfileId aId, TSmlOpenMode aMode)
williamr@2
   387
	*/
williamr@2
   388
	ESmlOpenRead,
williamr@2
   389
	
williamr@2
   390
	/** 
williamr@2
   391
	Open for read and write access to data.
williamr@2
   392
	
williamr@2
   393
	@capability ReadDeviceData
williamr@2
   394
	@capability WriteDeviceData
williamr@2
   395
	@Ref void RSyncMLDataSyncProfile::OpenL(RSyncMLSession& aSession, TSmlProfileId aId, TSmlOpenMode aMode)
williamr@2
   396
	*/
williamr@2
   397
	ESmlOpenReadWrite
williamr@2
   398
	};
williamr@2
   399
williamr@2
   400
///////////////////////////////////////////////////////////////////////////////
williamr@2
   401
///////////////////////////////////////////////////////////////////////////////
williamr@2
   402
williamr@2
   403
///////////////////////////////////////////////////////////////////////////////
williamr@2
   404
// Panic codes.
williamr@2
   405
///////////////////////////////////////////////////////////////////////////////
williamr@2
   406
enum TSyncMLClientPanic
williamr@2
   407
	{
williamr@2
   408
	ESmlClientPanicSessionNotOpen,
williamr@2
   409
	ESmlClientPanicSessionAlreadyOpen,
williamr@2
   410
	ESmlClientPanicEventAlreadyRequested
williamr@2
   411
	};
williamr@2
   412
williamr@2
   413
///////////////////////////////////////////////////////////////////////////////
williamr@2
   414
///////////////////////////////////////////////////////////////////////////////
williamr@2
   415
williamr@2
   416
///////////////////////////////////////////////////////////////////////////////
williamr@2
   417
///////////////////////////////////////////////////////////////////////////////
williamr@2
   418
///////////////////////////////////////////////////////////////////////////////
williamr@2
   419
#endif