diff -r 000000000000 -r c53acadfccc6 metadataengine/server/src/mdseventdef.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/metadataengine/server/src/mdseventdef.cpp Mon Jan 18 20:34:07 2010 +0200 @@ -0,0 +1,109 @@ +/* +* Copyright (c) 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: Class to hold description about one object and it's properties +* +*/ + +#include "mdseventdef.h" + +#include "mdcdef.h" +#include "mdssqliteconnection.h" +#include "mdsindexer.h" + +/** + * NewLC + */ +CMdsEventDef* CMdsEventDef::NewLC( const TDesC& aName, const TInt32 aPriority ) + { + CMdsEventDef* ret = new( ELeave ) CMdsEventDef( ); + CleanupStack::PushL( ret ); + ret->ConstructL( aName, aPriority ); + return ret; + } + +/** + * NewL + */ +CMdsEventDef* CMdsEventDef::NewL( const TDesC& aName, const TInt32 aPriority ) + { + CMdsEventDef* ret = CMdsEventDef::NewLC( aName, aPriority ); + CleanupStack::Pop( ret ); + return ret; + } + +/** + * ConstructL + */ +void CMdsEventDef::ConstructL( const TDesC& aName, TInt32 aPriority ) + { + // check that only allowed characters (A-Z, a-z) are used + CheckAllowerCharatersL( aName, EFalse ); + + CMdsItemDef::ConstructL( aName ); + iPriority = aPriority; + } + +/** + * Destructor + */ +CMdsEventDef::~CMdsEventDef() + { + } + +void CMdsEventDef::StoreToDBL( const TInt aNamespaceDefId ) + { + _LIT( KMdsSqlClauseAddEventDef, "INSERT INTO EventDef (NamespaceDefId, Priority, Name ) Values(?, ?, ?);" ); + + if ( GetStoredInDB() ) + { + return; + } + + RRowData rowData; + CleanupClosePushL( rowData ); + rowData.AppendL( TColumn( aNamespaceDefId ) ); + rowData.AppendL( TColumn( iPriority ) ); + rowData.AppendL( TColumn( GetName().AllocL() ) ); + + TDefId id = MMdSIndexer::ExecuteAndGetIndexL(KMdsSqlClauseAddEventDef, rowData ); + + SetId( id ); + SetStoredInDB(); + + CleanupStack::PopAndDestroy( &rowData ); + } + +TBool CMdsEventDef::operator==( const CMdsEventDef& aEventDef ) const + { + return GetName() == aEventDef.GetName() && iPriority == aEventDef.iPriority; + } + +TUint32 CMdsEventDef::RequiredBufferSize() + { + return sizeof(TMdCEventDef) + CMdsItemDef::RequiredBufferSize(); + } + +TMdCOffset CMdsEventDef::SerializeL(CMdCSerializationBuffer& aBuffer, TMdCOffset aFreeSpace) + { + TMdCEventDef eventDef; + eventDef.iDefId = GetId(); + + // store name + eventDef.iName.iPtr.iCount = GetName().Length(); + eventDef.iName.iPtr.iOffset = aFreeSpace; + eventDef.SerializeL( aBuffer ); + + aBuffer.PositionL( aFreeSpace ); + return CMdsItemDef::SerializeL( aBuffer ); + }