diff -r 000000000000 -r b497e44ab2fc syncmlfw/ds/dsutils/dbcaps/inc/nsmldbcaps.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/syncmlfw/ds/dsutils/dbcaps/inc/nsmldbcaps.h Thu Dec 17 09:07:52 2009 +0200 @@ -0,0 +1,794 @@ +/* +* 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: DB capabilities header. +* +*/ + + +#ifndef __NSMLDBCAPS_H__ +#define __NSMLDBCAPS_H__ + +// ------------------------------------------------------------------------------------------------ +// Includes +// ------------------------------------------------------------------------------------------------ +#include +#include + +// ------------------------------------------------------------------------------------------------ +// TNSmlCtCapData +// ------------------------------------------------------------------------------------------------ +struct TNSmlCtCapData + { +public: + +// 1.2 CHANGES: New elements added. + enum TNSmlCtCapTag + { + ECtType, + EVerCt, + EFieldLevel, + EPropName, + EPropDataType, + EPropMaxOccur, + EPropMaxSize, + EPropNoTruncate, + EPropValEnum, + EPropDisplayName, + EParamName, + EParamValEnum, + EParamDataType, + EParamDisplayName + }; +// changes end + + /** + * C++ constructor. + * @param aTag Element type. + * @param aValue Value of the element. + */ + IMPORT_C TNSmlCtCapData( TNSmlCtCapTag aTag, const TDesC8& aValue ); + + /** + * Static compare routine for two TNSmlCtCapData instances. Instances are kept in order + * in array for faster searching. + * @param aFirst First compare instance. + * @param aSecond Second compare instance. + * @return TInt Returns greater than 0 if aFirst is greater than aSecond, less than 0 if aFirst + * is less than aSecond and 0 if aFirst is equal to aSecond. + */ + IMPORT_C static TInt Compare( const TNSmlCtCapData& aFirst, const TNSmlCtCapData& aSecond ); + +public: + TNSmlCtCapTag iTag; + const TBuf8<64> iValue; + }; + +// 1.2 CHANGES: FilterCap +// ------------------------------------------------------------------------------------------------ +// TNSmlFilterCapData +// ------------------------------------------------------------------------------------------------ +struct TNSmlFilterCapData + { +public: + + enum TNSmlFilterCapTag + { + ECtType, + EVerCt, + EFilterKeyword, + EPropName + }; + + /** + * C++ constructor. + * @param aTag Element type. + * @param aValue Value of the element. + */ + IMPORT_C TNSmlFilterCapData( TNSmlFilterCapTag aTag, const TDesC8& aValue ); + + /** + * Static compare routine for two TNSmlFilterCapData instances. Instances are kept in order + * in array for faster searching. + * @param aFirst First compare instance. + * @param aSecond Second compare instance. + * @return TInt Returns greater than 0 if aFirst is greater than aSecond, less than 0 if aFirst + * is less than aSecond and 0 if aFirst is equal to aSecond. + */ + IMPORT_C static TInt Compare( const TNSmlFilterCapData& aFirst, const TNSmlFilterCapData& aSecond ); + +public: + TNSmlFilterCapTag iTag; + const TBuf8<64> iValue; + }; + +// changes end + +// 1.2 CHANGES: New class (replaces CNSmlCtParam). +// ------------------------------------------------------------------------------------------------ +// CNSmlPropParam +// ------------------------------------------------------------------------------------------------ +struct sml_devinf_propparam_s; +class CNSmlPropParam : public CBase + { +public: + /** + * C++ constructor. + * @param aParamPtr Pointer to device info property parameter structure. + */ + IMPORT_C CNSmlPropParam( sml_devinf_propparam_s* aParamPtr ); + + /** + * Sets parameter's displayable name. + * @param aDispName Displayable name as descriptor. + */ + IMPORT_C void SetDisplayNameL( const TDesC8& aDispName ); + + /** + * Adds new valenum. + * @param aValEnum Value of valenum as descriptor. + */ + IMPORT_C void AddValEnumL( const TDesC8& aValEnum ); + + /** + * Sets datatype. + * @param aDataType Value of datatype as descriptor. + */ + IMPORT_C void SetDataTypeL( const TDesC8& aDataType ); + +private: + sml_devinf_propparam_s* iParamPtr; + }; +// changes end + + +// 1.2 CHANGES: New class (replaces CNSmlCtProp). +// ------------------------------------------------------------------------------------------------ +// CNSmlDevInfProp +// ------------------------------------------------------------------------------------------------ +struct sml_devinf_property_s; +class CNSmlDevInfProp : public CBase + { +public: + + /** + * C++ constructor. + * @param aParamPtr Pointer to device info property structure. + */ + IMPORT_C CNSmlDevInfProp( sml_devinf_property_s* aPropPtr ); + + /** + * C++ destructor. + */ + IMPORT_C ~CNSmlDevInfProp(); + + /** + * Adds new parameter to this property. Also leaves newly created instance into cleanupstack. + * @param aParam Name of the parameter as descriptor. + * @return CNSmlPropParam* Pointer to newly created instance. + */ + IMPORT_C CNSmlPropParam* AddParamLC( const TDesC8& aParam ); + + /** + * Sets property's maximum occurrence value. + * @param aMaxOccur Maximum occurrence value as descriptor. + */ + IMPORT_C void SetMaxOccurL( const TDesC8& aMaxOccur ); + + /** + * Sets the maximum size of a property. + * @param aMaxSize Maximum size of a property as descriptor. + */ + IMPORT_C void SetMaxSizeL( const TDesC8& aMaxSize ); + + /** + * Sets NoTruncate element. + * Secifies if truncation is permitted. + */ + IMPORT_C void SetNoTruncateL(); + + /** + * Sets property's displayable name. + * @param aDispName Displayable name as descriptor. + */ + IMPORT_C void SetDisplayNameL( const TDesC8& aDispName ); + + /** + * Adds new valenum. + * @param aValEnum Value of valenum as descriptor. + */ + IMPORT_C void AddValEnumL( const TDesC8& aValEnum ); + + /** + * Sets datatype. + * @param aDataType Value of datatype as descriptor. + */ + IMPORT_C void SetDataTypeL( const TDesC8& aDataType ); +private: + sml_devinf_property_s* iPropPtr; + }; +// changes end + +// ------------------------------------------------------------------------------------------------ +// CNSmlCtCap +// ------------------------------------------------------------------------------------------------ +struct sml_devinf_ctcap_s; +class CNSmlCtCap : public CBase + { +public: + CNSmlCtCap( sml_devinf_ctcap_s* aCtCapPtr ); + ~CNSmlCtCap(); + + /** + * Sets value of CtCtype. + * @param aCtType Value of CtType as descriptor. + */ + IMPORT_C void SetCtTypeL( const TDesC8& aCtType ); + +// 1.2 CHANGES: Setting new elements in CtCap structure. + /** + * Sets value of VerCt. + * @param aVerCt Value of VerCt as descriptor. + */ + IMPORT_C void SetVerCtL( const TDesC8& aVerCt ); + + /** + * Sets FieldLevel element. + */ + IMPORT_C void SetFieldLevelL(); + + /** + * Adds new property, also leaves newly created instance into cleanupstack. + * @param aProp Property's name as descriptor. + * @return CNSmlDevInfProp* Pointer to newly created instance. + */ + IMPORT_C CNSmlDevInfProp* AddDevInfPropLC( const TDesC8& aProp ); +// changes end + +private: + sml_devinf_ctcap_s* iCtCapPtr; + }; + +// 1.2 CHANGES: New class for FilterCap params. +// ------------------------------------------------------------------------------------------------ +// CNSmlFilterCap +// ------------------------------------------------------------------------------------------------ +struct sml_devinf_filtercap_s; +class CNSmlFilterCap : public CBase + { +public: + CNSmlFilterCap( sml_devinf_filtercap_s* aFilterCapPtr ); + ~CNSmlFilterCap(); + + /** + * Adds new filter keyword to FilterCap. + * @param aKeyword Value of filter keyword as descriptor. + */ + IMPORT_C void AddFilterKeywordL( const TDesC8& aKeyword ); + + /** + * Adds new property name to FilterCap. + * @param aPropName Value of property name as descriptor. + */ + IMPORT_C void AddPropNameL( const TDesC8& aPropName ); +private: + sml_devinf_filtercap_s* iFilterCapPtr; + }; +// changes end + +// ------------------------------------------------------------------------------------------------ +// CNSmlCtCapHandler +// ------------------------------------------------------------------------------------------------ +struct sml_devinf_datastore_s; +struct sml_devinf_ctcaplist_s; +struct sml_devinf_filtercaplist_s; +struct sml_pcdata_s; +struct sml_devinf_xmit_s; +struct sml_devinf_ctcap_s; +struct sml_devinf_ctdataprop_s; + +class CNSmlCtCapsHandler : public CBase + { +public: + /** + * C++ constructor. + * @param aCtCaps Pointer to CtCaps structure. + */ + IMPORT_C CNSmlCtCapsHandler( sml_devinf_ctcaplist_s* aCtCaps ); + + /** + * Gets CtCaps as array of TNSmlCtCapData items. + * @param aCtCaps On return contains CtCaps parsed into TNSmlCtCapData items. + * @param aCtType If defined then CtCaps only for given CtType are returned otherwise all CtCaps + * are parsed into array. + */ + IMPORT_C void GetCtCapsL( CArrayFix& aCtCaps, const TDesC8& aCtType = TPtrC8() ); + +protected: + + void AppendCtCapL( CArrayFix& aCtCaps, sml_devinf_ctcap_s* aCtCap ); + +// 1.2 CHANGES: New structures for version 1.2. + void AppendDevInfPropL( CArrayFix& aCtCaps, sml_devinf_property_s* aCtCap ); + void AppendPropParamL( CArrayFix& aCtCaps, sml_devinf_propparam_s* aCtCap, TNSmlCtCapData::TNSmlCtCapTag aTag ); +// changes end +private: + sml_devinf_ctcaplist_s* iCtCaps; // does not own this! + }; + +// 1.2 CHANGES: FilterCap Handler +// ------------------------------------------------------------------------------------------------ +// CNSmlFilterCapHandler +// ------------------------------------------------------------------------------------------------ +class CNSmlFilterCapsHandler : public CBase + { +public: + /** + * C++ constructor. + * @param aFilterCaps Pointer to FilterCaps structure. + */ + IMPORT_C CNSmlFilterCapsHandler( sml_devinf_filtercaplist_s* aFilterCaps ); + + /** + * Gets FilterCaps as array of TNSmlFilterCapData items. + * @param aFilterCaps On return contains FilterCaps parsed into TNSmlFilterCapData items. + * @param aCtType If defined then FilterCaps only for given CtType are returned otherwise all FilterCaps + * are parsed into array. + */ + IMPORT_C void GetFilterCapsL( CArrayFix& aFilterCaps, const TDesC8& aCtType = TPtrC8() ); + +protected: + + void AppendFilterCapL( CArrayFix& aFilterCaps, sml_devinf_filtercap_s* aFilterCap ); + +private: + sml_devinf_filtercaplist_s* iFilterCaps; // does not own this! + }; + +// changes end + +// ------------------------------------------------------------------------------------------------ +// CNSmlDbCaps +// ------------------------------------------------------------------------------------------------ + +// 1.2 HYBRID CHANGES: + struct sml_devinf_devinf_s; +// changes end + +class CNSmlDbCaps : public CBase + { +public: + enum ENSmlSyncTypes + { + EAllTypes = 0, + ETwoWaySync = 1, + ESlowTwoWaySync, + EOneWaySyncFromClient, + ERefreshSyncFromClient, + EOneWaySyncFromServer, + ERefreshSyncFromServer, + EServerAlertedSync, + ESyncTypeNone = 8 + }; + + /** + * Two-phase (leave safe) constructor. + * @return CNSmlDbCaps* Pointer to newly created instance. + */ + IMPORT_C static CNSmlDbCaps* NewL(); + + /** + * Two-phase (leave safe) constructor. Leaves instance into cleanupstack. + * @return CNSmlDbCaps* Pointer to newly created instance. + */ + IMPORT_C static CNSmlDbCaps* NewLC(); + + /** + * C++ destructor. + */ + IMPORT_C ~CNSmlDbCaps(); + + // These structs are used by sync agent + + /** + * Returns pointer to datastore structure. + * @return sml_devinf_datastore_s* Pointer to datastore structure. + */ + IMPORT_C sml_devinf_datastore_s* DatastoreL() const; + + /** + * Returns pointer to ctcap structure. + * @return sml_devinf_ctcaplist_s* Pointer to ctcap structure. + */ + IMPORT_C sml_devinf_ctcaplist_s* CtCaps() const; + +// 1.2 CHANGES: FilterCap + /** + * Returns pointer to filtercap structure. + * @return sml_devinf_filtercaplist_s* Pointer to filtercap structure. + */ + IMPORT_C sml_devinf_filtercaplist_s* FilterCaps() const; +// changes end + + /** + * Checks whether given synctype is supported or not. + * @param aType Synctype to check. + * @return TBool ETrue if Synctype is supported, EFalse otherwise. + */ + IMPORT_C TBool SupportsSyncType( ENSmlSyncTypes aType ) const; + + /** + * Creates instance of CtCaps handler. + * @return CNSmlCtCapsHandler* Pointer to newly created CtCaps handler. + */ + IMPORT_C CNSmlCtCapsHandler* CreateHandlerL() const; + // DataStore element + + /** + * Sets RxPref element. + * @param aCtType Value of CtType as descriptor. + * @param aVerCt Value of VerCt as descriptor. + */ + IMPORT_C void SetRxPrefL( const TDesC8& aCtType, const TDesC8& aVerCt ); + + /** + * Adds Rx element. + * @param aCtType Value of CtType as descriptor. + * @param aVerCt Value of VerCt as descriptor. + */ + IMPORT_C void AddRxL( const TDesC8& aCtType, const TDesC8& aVerCt ); + + /** + * Sets TxPref element. + * @param aCtType Value of CtType as descriptor. + * @param aVerCt Value of VerCt as descriptor. + */ + IMPORT_C void SetTxPrefL( const TDesC8& aCtType, const TDesC8& aVerCt ); + + /** + * Adds Tx element. + * @param aCtType Value of CtType as descriptor. + * @param aVerCt Value of VerCt as descriptor. + */ + IMPORT_C void AddTxL( const TDesC8& aCtType, const TDesC8& aVerCt ); + + /** + * Enables synctype (does not clear other settings!). + * @param aType Syntype to enable. + */ + IMPORT_C void SetSyncType( ENSmlSyncTypes aType ); + +// 1.2 CHANGES: Filter-Rx & FilterCap + /** + * Adds Filter-Rx element. + * @param aCtType Value of CtType as descriptor. + * @param aVerCt Value of VerCt as descriptor. + */ + IMPORT_C void AddFilterRxL( const TDesC8& aCtType, const TDesC8& aVerCt ); + + /** + * Creates new FilterCap element instance, also leaves newly created instance into cleanupstack. + * @param aCtType Value of CtType as descriptor. + * @param aVerCt Value of VerCt as descriptor. + * @return CNSmlFilterCap* Pointer to newly created instance. + */ + IMPORT_C CNSmlFilterCap* AddFilterCapLC( const TDesC8& aCtType, const TDesC8& aVerCt ); + + /** + * Creates instance of FilterCaps handler. + * @return CNSmlFilterCapsHandler* Pointer to newly created FilterCaps handler. + */ + IMPORT_C CNSmlFilterCapsHandler* CreateFilterCapsHandlerL() const; + +// changes end + +// 1.2 CHANGES: Setting SupportHierarchicalSync, SourceRef, DisplayName, MaxGuidSize + /** + * Sets SupportHierarchicalSync element. + * Indicates if hierarchical synchronization is supported. + */ + IMPORT_C void SetSupportHierarchicalSyncL(); + + /** + * Sets SourceRef element. + * @param aSourceRef Value of SourceRef as descriptor. + */ + IMPORT_C void SetSourceRefL( const TDesC8& aSourceRef ); + + /** + * Sets DisplayName element. + * @param aDispName Value of DisplayName as descriptor. + */ + IMPORT_C void SetDisplayNameL( const TDesC8& aDispName ); + + /** + * Sets MaxGuidSize element. + * @param aMaxGuid Value of MaxGuidSize as descriptor. + */ + IMPORT_C void SetMaxGuidSizeL( const TDesC8& aMaxGuid ); + +// changes end + // CTCap element + /** + * Creates new CtCap element instance, also leaves newly created instance into cleanupstack. + * @return CNSmlCtCap* Pointer to newly created instance. + */ + IMPORT_C CNSmlCtCap* AddCtCapLC(); + +// 1.2 HYBRID CHANGES: Device info conversion + /** + * Creates version 1.1 CtCap element from version 1.2 Ctcap element + * @return error code if conversion fails or is not possible + */ + + IMPORT_C TInt ConvertDeviceInfoL( sml_devinf_devinf_s* aDeviceInfo); +// changes end + + /** + * sets maxitems element. Same as: iDatastore->dsmem->maxid + * @param aMaxItems. Max items. Contains a number. + */ + void SetMaxItemsL( const TDesC8& aMaxItems ); + + /** + * sets maxsize element. Same as: iDatastore->dsmem->maxmem + * @param aMaxSize. Max size. Contains a number. + */ + void SetMaxSizeL( const TDesC8& aMaxSize ); + + /** + * Returns pointer to datastore structure. No export needed, only needed inside the dll. + * @return sml_devinf_datastore_s* Pointer to datastore structure. + */ + const sml_devinf_datastore_s* Datastore() const; + + // 1.2 CHANGES: FilterCap + /** + * Returns pointer to filtercap structure. No export needed, only needed inside the dll. + * @return sml_devinf_filtercaplist_s* Pointer to filtercap structure. + */ + const sml_devinf_filtercaplist_s* FilterCapsList() const; +// changes end + +protected: + void ConstructL(); + CNSmlDbCaps(); + sml_pcdata_s* CreatePcdataL( const TDesC8& aData ); + sml_devinf_xmit_s* CreateXmitL( const TDesC8& aCtType, const TDesC8& aVerCt ); + +private: + TUint32 iSyncTypes; + TInt32 iPublicId; + mutable sml_devinf_datastore_s* iDatastore; + mutable sml_devinf_ctcaplist_s* iCtCaps; + mutable sml_devinf_filtercaplist_s* iFilterCaps; + }; + +// ------------------------------------------------------------------------------------------------ +// CNSmlDbMetaHandler +// ------------------------------------------------------------------------------------------------ +struct sml_metinf_metinf_s; + +class CNSmlDbMetaHandler : public CBase + { +public: + /** + * C++ constructor. + */ + IMPORT_C CNSmlDbMetaHandler(); + + /** + * C++ constructor. + * @param aMetInf Pointer to meta information structure. + */ + IMPORT_C CNSmlDbMetaHandler( sml_metinf_metinf_s* aMetInf ); + + /** + * Returns value of Format element as 8-bit descriptor. + * @return TPtrC8 Value of Format element. + */ + IMPORT_C TPtrC8 Format() const; + + /** + * Returns value of Type element as 8-bit descriptor. + * @return TPtrC8 Value of Type element. + */ + IMPORT_C TPtrC8 Type() const; + + /** + * Returns value of Mark element as 8-bit descriptor. + * @return TPtrC8 Value of Mark element. + */ + IMPORT_C TPtrC8 Mark() const; + + /** + * Returns value of Size element as 8-bit descriptor. + * @return TPtrC8 Value of Size element. + */ + IMPORT_C TPtrC8 Size() const; + + /** + * Returns value of NextNonce element as 8-bit descriptor. + * @return TPtrC8 Value of NextNonce element. + */ + IMPORT_C TPtrC8 NextNonce() const; + + /** + * Returns value of Version element as 8-bit descriptor. + * @return TPtrC8 Value of Version element. + */ + IMPORT_C TPtrC8 Version() const; + + /** + * Returns value of MaxMsgSize element as 8-bit descriptor. + * @return TPtrC8 Value of MaxMsgSize element. + */ + IMPORT_C TPtrC8 MaxMsgSize() const; + + /** + * Returns value of MaxObjSize element as 8-bit descriptor. + * @return TPtrC8 Value of MaxObjSize element. + */ + IMPORT_C TPtrC8 MaxObjSize() const; + + /** + * Returns value of Mem/Shared element as 8-bit descriptor. + * @return TPtrC8 Value of Mem/Shared element. + */ + IMPORT_C TPtrC8 MemShared() const; + + /** + * Returns value of Mem/Free element as 8-bit descriptor. + * @return TPtrC8 Value of Mem/Free element. + */ + IMPORT_C TPtrC8 MemFreeMem() const; + + /** + * Returns value of Mem/FreeID element as 8-bit descriptor. + * @return TPtrC8 Value of Mem/FreeID element. + */ + IMPORT_C TPtrC8 MemFreeID() const; + + /** + * Returns value of Anchor/Next element as 8-bit descriptor. + * @return TPtrC8 Value of Anchor/Next element. + */ + IMPORT_C TPtrC8 AnchorNext() const; + + /** + * Returns value of Anchor/Last element as 8-bit descriptor. + * @return TPtrC8 Value of Anchor/Last element. + */ + IMPORT_C TPtrC8 AnchorLast() const; + + /** + * Returns values of EMI element as array. + * @param aEMI On return contains values of EMI element. + */ + IMPORT_C void GetEmiL( CDesC8Array& aEMI ) const; + +private: + sml_metinf_metinf_s* iMetInf; // does not own this! + }; + +// ------------------------------------------------------------------------------------------------ +// CNSmlDbMeta +// ------------------------------------------------------------------------------------------------ +class CNSmlDbMeta : public CBase + { +public: + IMPORT_C static CNSmlDbMeta* NewL(); + IMPORT_C static CNSmlDbMeta* NewLC(); + IMPORT_C ~CNSmlDbMeta(); + + // These structs are used by sync agent + IMPORT_C sml_metinf_metinf_s* MetInfL() const; + IMPORT_C CNSmlDbMetaHandler* CreateHandlerL() const; + IMPORT_C void Clear(); + + /** + * Sets value of Format element. + * @param aValue Value of Format element as 8-bit descriptor. + */ + IMPORT_C void SetFormatL( const TDesC8& aValue ); + + /** + * Sets value of Type element. + * @param aValue Value of Type element as 8-bit descriptor. + */ + IMPORT_C void SetTypeL( const TDesC8& aValue ); + + /** + * Sets value of Mark element. + * @param aValue Value of Mark element as 8-bit descriptor. + */ + IMPORT_C void SetMarkL( const TDesC8& aValue ); + + /** + * Sets value of Size element. + * @param aValue Value of Size element as 8-bit descriptor. + */ + IMPORT_C void SetSizeL( const TDesC8& aValue ); + + /** + * Sets value of NextNonce element. + * @param aValue Value of NextNonce element as 8-bit descriptor. + */ + IMPORT_C void SetNextNonceL( const TDesC8& aValue ); + + /** + * Sets value of Version element. + * @param aValue Value of Version element as 8-bit descriptor. + */ + IMPORT_C void SetVersionL( const TDesC8& aValue ); + + /** + * Sets value of MaxMsgSize element. + * @param aValue Value of MaxMsgSize element as 8-bit descriptor. + */ + IMPORT_C void SetMaxMsgSizeL( const TDesC8& aValue ); + + /** + * Sets value of MaxObjSize element. + * @param aValue Value of MaxObjSize element as 8-bit descriptor. + */ + IMPORT_C void SetMaxObjSizeL( const TDesC8& aValue ); + + /** + * Sets value of Mem/Shared element. + * @param aValue Value of Mem/Shared element as 8-bit descriptor. + */ + IMPORT_C void SetMemSharedL( const TDesC8& aValue ); + + /** + * Sets value of Mem/FreeMem element. + * @param aValue Value of Mem/FreeMem element as 8-bit descriptor. + */ + IMPORT_C void SetMemFreeMemL( const TDesC8& aValue ); + + /** + * Sets value of Mem/FreeID element. + * @param aValue Value of Mem/FreeID element as 8-bit descriptor. + */ + IMPORT_C void SetMemFreeIDL( const TDesC8& aValue ); + + /** + * Sets value of Anchor/Next element. + * @param aValue Value of Anchor/Next element as 8-bit descriptor. + */ + IMPORT_C void SetAnchorNextL( const TDesC8& aValue ); + + /** + * Sets value of Anchor/Last element. + * @param aValue Value of Anchor/Last element as 8-bit descriptor. + */ + IMPORT_C void SetAnchorLastL( const TDesC8& aValue ); + + /** + * Adds EMI elements. + * @param aValue Array of EMI element values. + */ + IMPORT_C void SetEmiL( const CDesC8Array& aValue ); + +protected: + void MakeSureMetInfExistsL(); + void ConstructL(); + CNSmlDbMeta(); + +private: + mutable sml_metinf_metinf_s* iMetInf; + }; + +#endif // __NSMLDBCAPS_H__ + +// End of File