diff -r 000000000000 -r c53acadfccc6 metadataengine/common/src/mdcquery.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/metadataengine/common/src/mdcquery.cpp Mon Jan 18 20:34:07 2010 +0200 @@ -0,0 +1,268 @@ +/* +* Copyright (c) 2007-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: common query and condition definitions for MdE* +*/ + +#include "mdcquery.h" + + +///////////////////// +// TMdCCondition // +///////////////////// + +EXPORT_C const TMdCCondition& TMdCCondition::GetFromBufferL( + CMdCSerializationBuffer& aBuffer ) + { + const TInt bufferPosition = aBuffer.Position(); + TMdCCondition* condition = (TMdCCondition*)(aBuffer.Buffer().Ptr() + bufferPosition); + return *condition; + } + + +////////////////////////// +// TMdCLogicCondition // +////////////////////////// + +EXPORT_C TMdCLogicCondition::TMdCLogicCondition() : TMdCCondition( EMdCLogicCondition ) + { + } + +EXPORT_C void TMdCLogicCondition::SerializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::SerializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C void TMdCLogicCondition::DeserializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::DeserializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C const TMdCLogicCondition& TMdCLogicCondition::GetFromBufferL( CMdCSerializationBuffer& aBuffer ) + { + const TInt bufferPosition = aBuffer.Position(); + TMdCLogicCondition* logicCondition = (TMdCLogicCondition*)(aBuffer.Buffer().Ptr() + bufferPosition); + if (logicCondition->iType != EMdCLogicCondition) + { + __ASSERT_DEBUG( EFalse, User::Panic( _L("No TMdCLogicCondition!"), KErrCorrupt ) ); + + User::Leave( KErrCorrupt ); + } + const TInt size = sizeof(TMdCLogicCondition) % 2 ? sizeof(TMdCLogicCondition)+1 : sizeof(TMdCLogicCondition); + aBuffer.PositionL( bufferPosition + size ); + return *logicCondition; + } + + +/////////////////////////// +// TMdCObjectCondition // +/////////////////////////// + +EXPORT_C TMdCObjectCondition::TMdCObjectCondition() : TMdCCondition( EMdCObjectCondition ) + { + } + +EXPORT_C void TMdCObjectCondition::SerializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::SerializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C void TMdCObjectCondition::DeserializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::DeserializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C const TMdCObjectCondition& TMdCObjectCondition::GetFromBufferL( CMdCSerializationBuffer& aBuffer ) + { + const TInt bufferPosition = aBuffer.Position(); + TMdCObjectCondition* objectCondition = (TMdCObjectCondition*)(aBuffer.Buffer().Ptr() + bufferPosition); + if (objectCondition->iType != EMdCObjectCondition) + { + __ASSERT_DEBUG( EFalse, User::Panic( _L("No TMdCObjectCondition!"), KErrCorrupt ) ); + + User::Leave( KErrCorrupt ); + } + const TInt size = sizeof(TMdCObjectCondition) % 2 ? sizeof(TMdCObjectCondition)+1 : sizeof(TMdCObjectCondition); + aBuffer.PositionL( bufferPosition + size ); + return *objectCondition; + } + + +////////////////////////// +// TMdCEventCondition // +////////////////////////// + +EXPORT_C TMdCEventCondition::TMdCEventCondition() : TMdCCondition( EMdCEventCondition ) + { + } + +EXPORT_C void TMdCEventCondition::SerializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::SerializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C void TMdCEventCondition::DeserializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::DeserializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C const TMdCEventCondition& TMdCEventCondition::GetFromBufferL( CMdCSerializationBuffer& aBuffer ) + { + const TInt bufferPosition = aBuffer.Position(); + TMdCEventCondition* eventCondition = (TMdCEventCondition*)(aBuffer.Buffer().Ptr() + bufferPosition); + if (eventCondition->iType != EMdCEventCondition) + { + __ASSERT_DEBUG( EFalse, User::Panic( _L("No TMdCEventCondition!"), KErrCorrupt ) ); + + User::Leave( KErrCorrupt ); + } + const TInt size = sizeof(TMdCEventCondition) % 2 ? sizeof(TMdCEventCondition)+1 : sizeof(TMdCEventCondition); + aBuffer.PositionL( bufferPosition + size ); + return *eventCondition; + } + + +///////////////////////////// +// TMdCPropertyCondition // +///////////////////////////// + +EXPORT_C TMdCPropertyCondition::TMdCPropertyCondition() : TMdCCondition( EMdCPropertyCondition ) + { + } + +EXPORT_C void TMdCPropertyCondition::SerializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::SerializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C void TMdCPropertyCondition::DeserializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::DeserializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C const TMdCPropertyCondition& TMdCPropertyCondition::GetFromBufferL( CMdCSerializationBuffer& aBuffer ) + { + const TInt bufferPosition = aBuffer.Position(); + TMdCPropertyCondition* propertyCondition = (TMdCPropertyCondition*)(aBuffer.Buffer().Ptr() + bufferPosition); + if (propertyCondition->iType != EMdCPropertyCondition) + { + __ASSERT_DEBUG( EFalse, User::Panic( _L("No TMdCPropertyCondition!"), KErrCorrupt ) ); + + User::Leave( KErrCorrupt ); + } + const TInt size = sizeof(TMdCPropertyCondition) % 2 ? sizeof(TMdCPropertyCondition)+1 : sizeof(TMdCPropertyCondition); + aBuffer.PositionL( bufferPosition + size ); + return *propertyCondition; + } + + +///////////////////////////// +// TMdCRelationCondition // +///////////////////////////// + +EXPORT_C TMdCRelationCondition::TMdCRelationCondition() : TMdCCondition( EMdCRelationCondition ) + { + } + +EXPORT_C void TMdCRelationCondition::SerializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::SerializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C void TMdCRelationCondition::DeserializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::DeserializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C const TMdCRelationCondition& TMdCRelationCondition::GetFromBufferL( CMdCSerializationBuffer& aBuffer ) + { + const TInt bufferPosition = aBuffer.Position(); + TMdCRelationCondition* relationCondition = (TMdCRelationCondition*)(aBuffer.Buffer().Ptr() + bufferPosition); + if (relationCondition->iType != EMdCRelationCondition) + { + __ASSERT_DEBUG( EFalse, User::Panic( _L("No TMdCRelationCondition!"), KErrCorrupt ) ); + + User::Leave( KErrCorrupt ); + } + const TInt size = sizeof(TMdCRelationCondition) % 2 ? sizeof(TMdCRelationCondition)+1 : sizeof(TMdCRelationCondition); + aBuffer.PositionL( bufferPosition + size ); + return *relationCondition; + } + + +////////////////////////// +// TMdCSearchCriteria // +////////////////////////// + +EXPORT_C TMdCSearchCriteria::TMdCSearchCriteria() : TMdCSerializationType( EMdCSearchCriteria ) + { + } + +EXPORT_C void TMdCSearchCriteria::SerializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::SerializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C void TMdCSearchCriteria::DeserializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::DeserializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C const TMdCSearchCriteria& TMdCSearchCriteria::GetFromBufferL( CMdCSerializationBuffer& aBuffer ) + { + const TInt bufferPosition = aBuffer.Position(); + TMdCSearchCriteria* searchCriteria = (TMdCSearchCriteria*)(aBuffer.Buffer().Ptr() + bufferPosition); + if (searchCriteria->iType != EMdCSearchCriteria) + { + __ASSERT_DEBUG( EFalse, User::Panic( _L("No TMdCSearchCriteria!"), KErrCorrupt ) ); + + User::Leave( KErrCorrupt ); + } + const TInt size = sizeof(TMdCSearchCriteria) % 2 ? sizeof(TMdCSearchCriteria)+1 : sizeof(TMdCSearchCriteria); + aBuffer.PositionL( bufferPosition + size ); + return *searchCriteria; + } + +///////////////////// +// TMdCOrderRule // +///////////////////// + +EXPORT_C TMdCOrderRule::TMdCOrderRule() : TMdCSerializationType( EMdCOrderRule ) + { + } + +EXPORT_C void TMdCOrderRule::SerializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::SerializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C void TMdCOrderRule::DeserializeL(CMdCSerializationBuffer& aBuffer) + { + TMdCSerializationType::DeserializeL( aBuffer, sizeof(*this) ); + } + +EXPORT_C const TMdCOrderRule& TMdCOrderRule::GetFromBufferL( CMdCSerializationBuffer& aBuffer ) + { + const TInt bufferPosition = aBuffer.Position(); + TMdCOrderRule* orderRule = (TMdCOrderRule*)(aBuffer.Buffer().Ptr() + bufferPosition); + if (orderRule->iType != EMdCOrderRule) + { + __ASSERT_DEBUG( EFalse, User::Panic( _L("No TMdCOrderRule!"), KErrCorrupt ) ); + + User::Leave( KErrCorrupt ); + } + const TInt size = sizeof(TMdCOrderRule) % 2 ? sizeof(TMdCOrderRule)+1 : sizeof(TMdCOrderRule); + aBuffer.PositionL( bufferPosition + size ); + return *orderRule; + } +