diff -r 000000000000 -r dfb7c4ff071f commsfwtools/preparedefaultcommsdatabase/inc/CommsDat.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsfwtools/preparedefaultcommsdatabase/inc/CommsDat.h Thu Dec 17 09:22:25 2009 +0200 @@ -0,0 +1,459 @@ +// Copyright (c) 2004-2009 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: +// Constants for use in storing comms data via CommsDat +// +// + +/** + @file + @publishedAll + @released +*/ + + +#if (!defined COMMSDAT_H) +#define COMMSDAT_H + +#include +#include + + +namespace CommsDat +{ + +/** +Use this constant for Debug panic calls + +@publishedAll +@released +*/ +_LIT(KCommsDatName,"CommsDat"); + +/** +Use this constant for Debug panic calls + +@publishedAll +@released +*/ +enum + { + ECommitBeforeOpenTransaction = 1, + ERollBackBeforeOpenTransaction = 2, + ESessionClosed = 3, + ENotifierNotCreated = 4, + EWrongAPPrioritySelPolRecord = 5, + EWrongIAPServiceType = 6, + EInvalidIAP = 7 + }; + +using namespace Meta; + +// +// VERSION INFO +// +/* Please note: + * ------------ + * Concrete schema version should be used in the client applicaiton (curently available + * KCDVersion1_1 or KCDVersion1_2). + * + * Until the 9.5 release there was only one schema version, KCDVersion1_1, which was + * available. From the 9.5 relase there is a possibility to use other schema version, + * KCDVersion1_2. Important that it's still possible to use the KCVersion1_1 + * constant, and use the deprecated records/tables, - CommsDat will invoke it's + * mapping functionality in this case to be backward compatible. + * + * For backward compatibility reason the KCDLatestVersion and KCDCurrentVersion + * constants are mapped to the KCDVersion1_1 constant. These constants are + * deprecated. + * + * ! PLEASE USE EXPLICIT SCHEMA VERSION WHEN CREATING A COMMSDAT SESSION OBJECT ! + */ + +/** +Versions of the dataset in use + +Initial Version +@publishedAll +@released +*/ + +#define KCDVersion1_1 TVersion(1,1,1) + +#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY +/** +Some elements in Version KCDVersion1_1 now deprecated +These elements will be mapped if the client starts a session with KCDVersion1_1 +They will be ignored or rejected as not supported if client starts a session with +KCDVersion1_2 + +@publishedAll +@released +*/ +#define KCDVersion1_2 TVersion(1,2,1) +#endif + +/** +For BC reasons this constant maps to the KCDVersion1_1 dataschema version. + +@publishedAll +@deprecated +*/ +#define KCDLatestVersion KCDVersion1_1 + +/** +For BC reasons this constant maps to the KCDVersion1_1 dataschema version. + +@publishedAll +@deprecated +*/ +#define KCDCurrentVersion KCDVersion1_1 + + +// +// Attribute Flags +// + +/** +Access control attribute flags. +When these are SET in the mask the attribute is obeyed +When they are CLEARED from the mask, the attribute is ignored +By default attributes are obeyed. + +@publishedAll +@released +*/ +typedef enum +{ + ECDNoWriteButDelete = 0x0000010, // R/W Read Only but deleteable Caller should explicitly choose to modify + // Enforced by convention only, not with Platform Security + ECDHidden = 0x0000020, // R/W Read-Write Hidden data Not policed - hides public utility info such as default values + // Enforced by convention only, not with Platform Security + ECDPrivate = 0x0000040, // R/W Read-Write Private data For sensitive user data such as passwords + // Policed at storage server API with platsec capability + ECDProtectedWrite = 0x0000080, // W Write-Protected data To allow data to be read only to most clients but modifiable by a few privileged clients + // Policed at storage server API with platsec capability +} TCDAttributeFlags; + +// +// Masks for Element Type info +// + + +/** +Mask to use to hide attribute reserved bits + +@publishedAll +@released +*/ +#define KCDMaskHideAttrAndRes 0xffffff00 + + +/** +Mask to use to show reserved bits + +@publishedAll +@released +*/ +#define KCDMaskShowRes 0x8000000f + + +/** +Mask to use to hide reserved bits + +@publishedAll +@released +*/ +#define KCDMaskHideRes 0x7ffffff0 + + +/** +T x x Mask to show Table Type info + +@publishedAll +@released +*/ +#define KCDMaskShowRecordType 0x7f800000 + + +/** +x C x Mask to show Column Type + +@publishedAll +@released +*/ +#define KCDMaskShowFieldType 0x007f0000 + + +/** +T C x Mask to show Table and Column Type + +@publishedAll +@released +*/ +#define KCDMaskShowType 0x7fff0000 + + +/** +T x R Mask to show Record id + +@publishedAll - don't use this. Replace with KCDMaskShowRecordId +@deprecated +*/ +#define KCDMaskShowInstance 0x0000ff00 + + +/** +T x R Mask to show Record id +Use in place of KCDMaskShowInstance +@publishedAll +@released +*/ +#define KCDMaskShowRecordId 0x0000ff00 + + +/** +T C R Mask to show Field instance without attributes or reserved bits + +@publishedAll +@released +*/ +#define KCDMaskShowField 0x7fffff00 + + +/** +T x R Mask to show Record Type and Record Id without column type, attributes or reserved bits + +@publishedAll +@released +*/ +#define KCDMaskShowRecordTypeAndId (KCDMaskShowRecordType | KCDMaskShowRecordId) + +/** +x C R Mask to show Column Type and Record Id without Record type, attributes or reserved bits + +@publishedAll +@released +*/ +#define KCDMaskShowColumnTypeAndRecordId (KCDMaskShowFieldType | KCDMaskShowRecordId) + + +/** +Mask to show Attributes + +@publishedAll +@released +*/ +#define KCDMaskShowAttributes 0x000000f0 + +/** +Mask to use to show attributes and reserved bits + +@publishedAll +@released +*/ +#define KCDMaskShowAttrAndRes 0x000000ff + + +/** +Id for the Initial record in a record set + +@publishedAll +@released +*/ +#define KCDInitialRecordId 0x00000100 + + +/** +Id for the Initial table in the database + +@publishedAll +@released +*/ +#define KCDInitialTableId 0x00800000 + + +/** +Id for the Initial User defined table in the database +clients have 64 table ids available to them + +@publishedAll +@released +*/ +#define KCDInitialUDefRecordType 0x5F800000 + + +/** +Id for the Last User defined table in the database. + +@publishedAll +@released +*/ +#define KCDLastUDefRecordType 0x7F800000 + + +/** +Id for the Initial column in a record set + +@publishedAll +@released +*/ +#define KCDInitialColumnId 0x00010000 + + +/** +T C 0 location for default field values + +@publishedAll +@released +*/ +#define KCDDefaultRecord 0x00000000 + + +/** +Combine with table id and Column id to give the location of column type info + +@publishedAll +@released +*/ +#define KCDColumnTypeInfo 0x0000ff00 + + + +/** +Combine with table id to give request for a new record in a table. +The table must already exist. + +@publishedAll +@released +*/ +#define KCDNewRecordRequest 0x807f0001 + + +/** +Combined with CMDBField, it finds the TableId given the table name + +@publishedAll +@released +*/ +#define KCDMaskGenericTableName 0x007fff00 + + + +/** +Maximum number of tables that can be created in one repository + +@publishedAll +@released +*/ +#define KCDMaxTables 254 + + +/** +Maximum number of User defined tables that can be created in one repository + +@publishedAll +@released +*/ +#define KCDMaxUserDefTables 64 + + +/** +Maximum number of columns that can be created in one table + +@publishedAll +@released +*/ +#define KCDMaxColumns 126 + + +/** +Maximum number of records that can be stored in one table + +@publishedAll +@released +*/ +#define KCDMaxRecords 254 + + +/** +Maximum number of characters in a field name + +@publishedAll +@released +*/ +#define KCDMaxFieldNameLength 64 + + +/** +Macro for interaction with netmeta +@publishedAll +@released +*/ +#define X_REGISTER_ATTRIBUTE( thisMetaClass, var, metaType ) \ + { _FOFF( thisMetaClass, var ), Meta::metaType##VisitorFactoryL }, + + +#define EXP_DATA_VTABLE \ + IMPORT_C virtual Meta::SVDataTableEntry const* GetVDataTable() const; \ + IMPORT_C virtual TUint8* GetAttribPtr(const TInt aOffset) const; \ + IMPORT_C static Meta::SVDataTableEntry const* GetVDataTableStatic(); \ + static const Meta::SVDataTableEntry iVDataTable[]; + + +/** +Macros used to implement virtual functions from MMetaData interface and construct the v data table +@publishedAll +@released +*/ +#define EXP_START_ATTRIBUTE_TABLE( thisMetaClass, uid, typeId ) \ + EXPORT_C Meta::SVDataTableEntry const* thisMetaClass::GetVDataTable() const { return &iVDataTable[0]; }; \ + EXPORT_C TUint8* thisMetaClass::GetAttribPtr(const TInt aOffset) const { return (TUint8*)this + aOffset; }; \ + EXPORT_C Meta::SVDataTableEntry const* thisMetaClass::GetVDataTableStatic() { return &iVDataTable[0]; }; \ + const Meta::SVDataTableEntry thisMetaClass::iVDataTable[] = { \ + { uid, reinterpret_cast(typeId) }, + + +/** +@publishedAll +@released +*/ +typedef enum +{ + EText, //< Text field - descriptor with a maximum length of 50 unicode characters. + EDesC8, //< Buffer of TUInt8. Maximum length is 1024 * 8. + EUint32, //< Unsigned 32 bit integer field. + EInt, //< Signed integer field + EBool, //< Boolean field + EMedText, //< Text field - descriptor with a maximum length of 256 unicode characters. + ELongText, //< Text field - descriptor with a maximum length of 1024 unicode characters. + ELink //< This field is an integer that identifies a record in another table. + +} TCDFieldValueTypes; + +/** +Flag to indicate change in field +Not for use in database. Just with fields + +@publishedAll +*/ +#define KCDChangedFlag 0x00000001 + +} //end namespace CommsDat + +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#include +#endif + +#endif