--- a/omads/omadsextensions/datamod/inc/NSmlDataModBase.h Mon Mar 15 12:39:28 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-/*
-* 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 "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Stripper and merger base class for versit data and
-* implementation for vCard and vCalendar stripping and merging.
-*
-*/
-
-
-#ifndef __NSMLDATABASE_H__
-#define __NSMLDATABASE_H__
-
-// INCLUDES
-#include <e32base.h>
-#include <vprop.h>
-#include <SmlDataFormat.h>
-
-
-// CLASS DECLARATION
-
-/**
-* Class that is inherited from CParserProperty to make it possible to handle parameters.
-*
-* @lib nsmldatamod.lib
-*/
-class CNSmlProperty : public CParserProperty
- {
- public:
- /**
- * Creates new property based on given parameters.
- * @param aPropertyValue. Value of property.
- * @param aName. Name of property.
- * @param aArrayOfParams. Parameters of property.
- * @return New instance of this class.
- */
- static CNSmlProperty* NewL( CParserPropertyValue& aPropertyValue, const TDesC8& aName, CArrayPtr<CParserParam>* aArrayOfParams );
-
- /**
- * Returns paramaters of property.
- * @return Parameters of property.
- */
- CArrayPtr<CParserParam>* Parameters() const;
-
- /**
- * Returns count of paramaters.
- * @return Count of paramaters.
- */
- TInt ParamCount() const;
-
- /**
- * Compares names of two properties
- * @param aFirst. First property to compare.
- * @param aSecond. Second property to compare.
- * @return Returns 0 if names are equal.
- */
- static TInt Compare( const CNSmlProperty& aFirst, const CNSmlProperty& aSecond );
-
- protected:
- /**
- * Basic constructor of class
- */
- CNSmlProperty( CParserPropertyValue& aPropertyValue, CArrayPtr<CParserParam>* aArrayOfParams );
- };
-
-/**
-* Base class for Calendar and Contacts Data Modifications.
-*
-* @lib nsmldatamod.lib
-*/
-class CNSmlDataModBase : public CBase
- {
- public:
- /**
- * C++ destructor.
- */
- IMPORT_C virtual ~CNSmlDataModBase();
-
- /**
- * Sets own database format.
- * @param aOwnStoreFormat. Own database format.
- */
- IMPORT_C void SetOwnStoreFormat( CSmlDataStoreFormat& aOwnStoreFormat );
-
- /**
- * Sets remote database format.
- * @param aRemoteStoreFormat. Remote database format.
- */
- IMPORT_C void SetPartnerStoreFormat( CSmlDataStoreFormat& aRemoteStoreFormat );
-
- /**
- * Sets mime type that is used for sending and receiving.
- * This method can be called separately before every item.
- * @param aMimeType. Mime type.
- * @param aMimeVersion. Mime type version.
- * @return KErrNone if partnerStoreFormat is passed and same mime type with same version
- * can be found. Otherwise KErrNotFound is returned.
- */
- IMPORT_C TInt SetUsedMimeType( const RStringF aMimeType, const RStringF aMimeVersion );
-
- /**
- * Strips data that is to be transmitted to the sync partner.
- * @param aItem Item's data. On returns this data may have changed due to stripping.
- */
- IMPORT_C void StripTxL( CBufBase& aItem );
-
- /**
- * Merges received item with item in exported from the local database.
- * @param aNewItem Received item. On return aItem contains merged item.
- * @param aOldItem Item exported from the local database with which aNewItem is merged.
- */
- IMPORT_C void MergeRxL( CBufBase& aNewItem, CBufBase& aOldItem, TBool aFieldLevel = EFalse );
-
- /**
- * Checks whether merging is needed or not.
- * @return ETrue if mergins is needed EFalse otherwise.
- */
- IMPORT_C TBool NeedsMerge();
-
- protected:
- /**
- * Basic constructor of class.
- */
- CNSmlDataModBase();
-
- /**
- * Creates correct type of parser for each Data Modifications.
- * @return Correct type of versit parser.
- */
- virtual CVersitParser* ChildCreateParserLC() = 0;
-
- /**
- * Strips data that is to be transmitted to the sync partner.
- * @param aItem Item's data. On returns this data may have changed due to stripping.
- */
- void StripL( TDes8& aItem );
-
- /**
- * Strips data that is to be transmitted to the sync partner from entity.
- * @param aEntity Item's data. On returns this data may have changed due to stripping.
- * @param aModified If item's data is modified then this is ETrue at return. Otherwise EFalse.
- */
- void StripEntityL( CVersitParser* aEntity, TBool& aModified ) const;
-
- /**
- * Strips all data from entity that is supported by remote server.
- * @param aEntity Item's data. On returns this data may have changed due to stripping.
- * @param aModified If item's data is modified then this is ETrue at return. Otherwise EFalse.
- * @param aParamLevelCheck This is used to decide if parameters are compared when properties are stripped or not.
- */
- void StripAllOnPartnerListL( CVersitParser* aEntity, TBool& aModified, TBool aParamLevelCheck = ETrue ) const;
-
- /**
- * Strips all data from entity that is not supported by remote server.
- * @param aEntity Item's data. On returns this data may have changed due to stripping.
- * @param aModified If item's data is modified then this is ETrue at return. Otherwise EFalse.
- * @param aParamLevelCheck This is used to decide if parameters are compared when properties are stripped or not.
- */
- void StripAllNotOnPartnerListL( CVersitParser* aEntity, TBool& aModified, TBool aParamLevelCheck = ETrue ) const;
-
- /**
- * Merges data from old item to new item.
- * @param aNewItem Data of receive item. On returns this data may have changed due to merging.
- * @param aOldData Data of old item.
- * @param aFieldLevel This is used to decide if operation is field level update or not. Are all supported
- * properties updated or just received properties.
- */
- void MergeL( TDes8& aNewItem, const TDesC8& aOldItem,TBool aFieldLevel );
-
- /**
- * Merges data from old entity to new entity.
- * @param aNewEntity Data of receive entity. On returns this data may have changed due to merging.
- * @param aOldEntity Data of old entity.
- * @param aModified If aNewEntity is modified then this is ETrue at return. Otherwise EFalse.
- * @param aFieldLevel This is used to decide if operation is field level update or not. Are all supported
- * properties updated or just received properties.
- */
- void MergeEntityL( CVersitParser* aNewEntity, CVersitParser* aOldEntity, TBool& aModified, TBool aFieldLevel ) const;
-
- private:
- CSmlDataStoreFormat* iOwnStoreFormat;
- CSmlDataStoreFormat* iRemoteStoreFormat;
- TInt iUsedOwnMimeType;
- TInt iUsedRemoteMimeType;
- RStringF iMimeType;
- RStringF iMimeVersion;
- };
-
-
-/**
-* Data Modifications for Calendar.
-*
-* @lib nsmldatamod.lib
-*/
-class CNSmlVCalMod : public CNSmlDataModBase
- {
- public:
- /**
- * Constuctor
- */
- IMPORT_C CNSmlVCalMod();
-
- protected:
- /**
- * Creates correct type of parser for Calendar Data Modifications.
- * @return Correct type of versit parser.
- */
- CVersitParser* ChildCreateParserLC();
- };
-
-/**
-* Data Modifications for Contacts.
-*
-* @lib nsmldatamod.lib
-*/
-class CNSmlVCardMod : public CNSmlDataModBase
- {
- public:
- /**
- * Constuctor
- */
- IMPORT_C CNSmlVCardMod();
-
- protected:
- /**
- * Creates correct type of parser for Contacts Data Modifications.
- * @return Correct type of versit parser.
- */
- CVersitParser* ChildCreateParserLC();
- };
-
-
-#endif // __NSMLDATABASE_H__
-
-// End of file