epoc32/include/SyncMLClientDS.h
branchSymbian2
changeset 2 2fe1408b6811
child 4 837f303aceeb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/epoc32/include/SyncMLClientDS.h	Tue Mar 16 16:12:26 2010 +0000
@@ -0,0 +1,210 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: SyncML APIs for data synchronization client.
+*
+*/
+
+
+#ifndef __SYNCMLCLIENTDS_H__
+#define __SYNCMLCLIENTDS_H__
+//
+#include <SyncMLClient.h>
+#include <SyncMLDataFilter.h>
+//
+class CClientSessionData;
+//
+
+///////////////////////////////////////////////////////////////////////////////
+// RSyncMLDataSyncJob
+///////////////////////////////////////////////////////////////////////////////
+class RSyncMLDataSyncJob : public RSyncMLJobBase
+/**
+	Handle to a data synchronisation job.
+	
+	A job synchronises the data in one or more data stores, as defined by the list 
+	of tasks.
+	@publishedAll
+	@released
+*/
+	{
+public:
+	IMPORT_C RSyncMLDataSyncJob();
+	IMPORT_C void CreateL(RSyncMLSession&, TSmlProfileId);
+	IMPORT_C void CreateL(RSyncMLSession&, TSmlProfileId, TSmlConnectionId);
+	IMPORT_C void CreateL(RSyncMLSession&, TSmlProfileId, TSmlSyncType);
+	IMPORT_C void CreateL(RSyncMLSession&, TSmlProfileId, TSmlConnectionId, TSmlSyncType);
+	IMPORT_C void CreateL(RSyncMLSession&, TSmlProfileId, const RArray<TSmlTaskId>&);
+	IMPORT_C void CreateL(RSyncMLSession&, TSmlProfileId, TSmlConnectionId, const RArray<TSmlTaskId>&);
+	IMPORT_C void CreateL(RSyncMLSession&, TSmlProfileId, TSmlSyncType, const RArray<TSmlTaskId>&);
+	IMPORT_C void CreateL(RSyncMLSession&, TSmlProfileId, TSmlConnectionId, TSmlSyncType, const RArray<TSmlTaskId>&);
+	IMPORT_C void OpenL(RSyncMLSession&, TSmlJobId);
+	IMPORT_C void StopL();
+	IMPORT_C const RArray<TSmlTaskId>& TaskIDs() const;
+	};
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////////////////
+// RSyncMLDataSyncProfile
+///////////////////////////////////////////////////////////////////////////////
+class RSyncMLDataSyncProfile : public RSyncMLProfileBase
+/**
+	Handle to a SyncML Data Synchronisation profile. 
+	
+	A profile encapsulates a relationship with a single SyncML remote server, 
+	and contains a number of 'tasks' and 'connections'.
+	@publishedAll
+	@released
+*/
+	{
+public:
+	IMPORT_C RSyncMLDataSyncProfile();
+	IMPORT_C void CreateL(RSyncMLSession&);
+	IMPORT_C void OpenL(RSyncMLSession&, TSmlProfileId, TSmlOpenMode);
+
+	IMPORT_C void SetCreatorId(TSmlCreatorId);
+	IMPORT_C void SetDisplayNameL(const TDesC&);
+	IMPORT_C void SetUserNameL(const TDesC8&);
+	IMPORT_C void SetPasswordL(const TDesC8&);
+
+	IMPORT_C void DeleteConnectionL(TSmlTransportId);
+
+	IMPORT_C void ListTasksL(RArray<TSmlTaskId>&) const;
+	IMPORT_C void DeleteTaskL(TSmlTaskId);
+
+	IMPORT_C void UpdateL();
+	};
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////////////////
+// RSyncMLTask
+///////////////////////////////////////////////////////////////////////////////
+class RSyncMLTask : public RSubSessionBase
+/**
+	Represents a mapping between a local data store and a remote
+	data store on a SyncML server in the context of a profile.
+	@publishedAll
+	@released
+*/
+	{
+public:
+	IMPORT_C RSyncMLTask();
+	IMPORT_C void CreateL(RSyncMLDataSyncProfile&, TSmlDataProviderId,
+		const TDesC& aServerDataSource, const TDesC& aClientDataSource);
+	IMPORT_C void CreateL(RSyncMLDataSyncProfile&, TSmlDataProviderId,
+		const TDesC& aServerDataSource, const TDesC& aClientDataSource, RPointerArray<CSyncMLFilter>& aArray);
+	IMPORT_C void OpenL(RSyncMLDataSyncProfile&, TSmlTaskId);
+
+	IMPORT_C TSmlTaskId Identifier() const;
+	IMPORT_C TSmlProfileId Profile() const;
+	IMPORT_C TSmlCreatorId CreatorId() const;
+	IMPORT_C const TDesC& DisplayName() const;
+	IMPORT_C const TDesC& ServerDataSource() const;
+	IMPORT_C const TDesC& ClientDataSource() const;
+	IMPORT_C TSmlDataProviderId DataProvider() const;
+	IMPORT_C TSmlSyncType DefaultSyncType() const;
+	
+	//IMPORT_C TInt ServerFilterCount() const;
+	//IMPORT_C const CSyncMLFilter& ServerFilterL(TInt aIndex) const; // Get the server filter at the specified index
+	IMPORT_C TSyncMLFilterMatchType FilterMatchType() const;
+	IMPORT_C TBool Enabled() const;
+
+	IMPORT_C void SetCreatorId(TSmlCreatorId);
+	IMPORT_C void SetDisplayNameL(const TDesC&);
+	IMPORT_C void SetDefaultSyncTypeL(TSmlSyncType);
+	//IMPORT_C void ReplaceServerFilterL(TInt aIndex, const CSyncMLFilter& aFilter); // Replaces the server filter at the specified index
+	//IMPORT_C TInt AddServerFilterL(const CSyncMLFilter& aFilter); // Adds the server filter, returns the index at which it was added
+	//IMPORT_C void DeleteServerFilterL(TInt aIndex); // Deletes the server filter at the specified index
+	//IMPORT_C void DeleteAllServerFiltersL(); // Deletes all server filters
+	//IMPORT_C void SetServerFilterEnabledL(TInt aIndex, TBool aEnable); // Changes the enabled flag for the server filter at the specified index
+	IMPORT_C void SetFilterMatchTypeL(TSyncMLFilterMatchType) const;
+	IMPORT_C void SetEnabledL(TBool);
+
+	/* Return the set of filters that can be used to send to the SyncML server. This will only contain filters which are
+	supported by the server, unless
+	1) no previous synchronisation with the server was done, or
+	2) the underlying Data Provider does not support this feature. In both cases the full list of filters supported by
+	the Data Provider will be returned. */
+	IMPORT_C RPointerArray<CSyncMLFilter>& SupportedServerFiltersL( TSyncMLFilterChangeInfo& aChangeInfo ) const;
+	IMPORT_C TBool SupportsUserSelectableMatchType() const;
+
+	IMPORT_C TBool IsReadOnly() const;
+	IMPORT_C void UpdateL();
+	IMPORT_C void Close();
+
+private:
+	mutable CClientSessionData* iData;
+private:
+	// Prohibited.
+	RSyncMLTask& operator=(const RSyncMLTask&);
+	RSyncMLTask(const RSyncMLTask&);
+	};
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////////////////
+// RSyncMLDataProvider
+///////////////////////////////////////////////////////////////////////////////
+class RSyncMLDataProvider : public RSubSessionBase
+/**
+	Handle to information about an available SyncML data provider.
+	@publishedAll
+	@released
+*/
+	{
+public:
+	IMPORT_C RSyncMLDataProvider();
+	IMPORT_C void OpenL(RSyncMLSession&, TSmlDataProviderId);
+
+	IMPORT_C TSmlDataProviderId Identifier() const;
+	IMPORT_C TVersion Version() const;
+	IMPORT_C const TDesC& DisplayName() const;
+  
+  IMPORT_C TInt MimeTypeCount() const;
+	IMPORT_C const TDesC& MimeType(TInt aIndex) const;
+	IMPORT_C const TDesC& MimeVersion(TInt aIndex) const;
+
+	IMPORT_C const TDesC& DefaultDataStoreName() const;
+	IMPORT_C TBool AllowsMultipleDataStores() const;
+	IMPORT_C void GetDataStoreNamesL(CDesCArray&) const;
+
+	/* Return the set of filters that can be used to send to the SyncML server */
+	//IMPORT_C const RPointerArray<CSyncMLFilterDef>& SupportedServerFiltersL() const;
+
+	IMPORT_C TSmlProtocolVersion RequiredProtocolVersionL() const;
+
+	IMPORT_C void Close();
+
+private:
+	mutable CClientSessionData* iData;
+private:
+	// Prohibited.
+	RSyncMLDataProvider& operator=(const RSyncMLDataProvider&);
+	RSyncMLDataProvider(const RSyncMLDataProvider&);
+	};
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+#endif