--- a/mds_plat/metadata_engine_api/inc/mderelationcondition.h Fri Sep 03 10:57:50 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,237 +0,0 @@
-/*
-* 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: ?Description
-*
-*/
-
-
-#ifndef __MDERELATIONCONDITION_H__
-#define __MDERELATIONCONDITION_H__
-
-
-#include <mdccommon.h>
-#include <mdecondition.h>
-#include <mderange.h>
-
-
-/* Forward declarations. */
-class CMdELogicCondition;
-class CMdERelationDef;
-
-/**
- * Search condition for relations.
- */
-NONSHARABLE_CLASS(CMdERelationCondition) : public CMdECondition
- {
-public:
-
- /* Constructors and destructor. */
-
- static CMdERelationCondition* NewL( TItemId aRelationId = KNoId,
- const RArray<TItemId>* aRelationIds = NULL,
- TRelationConditionSide aSide = ERelationConditionSideEither,
- const CMdERelationDef* aRelationDef = NULL,
- const TMdEIntRange* aParameterRange = NULL );
-
- static CMdERelationCondition* NewLC( TItemId aRelationId = KNoId,
- const RArray<TItemId>* aRelationIds = NULL,
- TRelationConditionSide aSide = ERelationConditionSideEither,
- const CMdERelationDef* aRelationDef = NULL,
- const TMdEIntRange* aParameterRange = NULL );
-
- /**
- * Destructor.
- */
- virtual ~CMdERelationCondition();
-
- /* Methods. */
-
- /**
- * Returns the relation ID.
- *
- * @return Relation ID.
- */
- IMPORT_C TItemId RelationId() const;
-
- /**
- * Returns the relation IDs.
- *
- * @return Relation IDs.
- */
- IMPORT_C const RArray<TItemId>* RelationIds() const;
-
- /**
- * Returns a pointer to the relation definition.
- *
- * @return Relation definition; or <code>NULL</code>,
- * if no relation definition has been associated with this
- * condition.
- */
- IMPORT_C const CMdERelationDef* RelationDef() const;
-
- /**
- * Returns the conditions for the object on the left side of the relation.
- *
- * @return Logic condition node.
- */
- IMPORT_C CMdELogicCondition& LeftL();
-
- /**
- * Returns the conditions for the object on the right side of the
- * relation.
- *
- * @return Logic condition node.
- */
- IMPORT_C CMdELogicCondition& RightL();
-
- /**
- * Returns the side on which a matched object must be.
- * @return The side on which an object must be.
- */
- TRelationConditionSide Side() const;
-
- /**
- * Sets the side on which a matched object must be.
- * @return The side on which an object must be.
- */
- IMPORT_C void SetSide(TRelationConditionSide aSide);
-
- /**
- * Returns the relation parameter range.
- * @return Parameter's range conditions
- */
- IMPORT_C const TMdEIntRange* ParameterRange() const;
-
- /**
- * Sets the GUID which a relation must match.
- *
- * @param aGuidHigh new GuidHigh value
- * @param aGuidLow new GuidLow value
- */
- IMPORT_C void SetGuid(const TInt64& aGuidHigh, const TInt64& aGuidLow);
-
- /**
- * Gets the GUID which a relation must match.
- *
- * @param aGuidHigh reference where GuidHigh will be stored
- * @param aGuidLow reference where GuidLow will be stored
- * @return returns ETrue if relation condition contains GUID condition,
- * otherwise doesn't change parameters' values and returns EFalse
- */
- IMPORT_C TBool Guid(TInt64& aGuidHigh, TInt64& aGuidLow) const;
-
- /**
- * Sets the last modified date range which a relation must match.
- *
- * @param aLastModifiedTimeRange last modified date range
- */
- IMPORT_C void SetLastModifiedDateRangeL(const TMdETimeRange& aLastModifiedDateRange);
-
- /**
- * Gets the last modified date range which a relation must match.
- *
- * @param aLastModifiedDateRange reference where last modified date range will be stored
- * @return returns ETrue if relation condition contains last modified date range condition,
- * otherwise doesn't change parameter's value and returns EFalse
- */
- IMPORT_C TBool LastModifiedDateRange(TMdETimeRange& aLastModifiedDateRange) const;
-
- /**
- * Get possible query's internal optimization flags from condition.
- *
- * @param aFlaga query's internal optimization flags
- * @return last level internal optimization flags
- */
- TUint32 InternalQueryOptimizationFlags(TUint32& aFlags);
-
- /**
- * Get required size of serialized buffer when it is serialized.
- *
- * @return required serialized buffer size
- */
- TUint32 RequiredBufferSize() const;
-
- /**
- * Serialize own data to serialized buffer (correct position must be set
- * before calling).
- *
- * @param aBuffer serialized buffer.
- */
- void SerializeL(CMdCSerializationBuffer& aBuffer,
- TMdCOffset& aFreespaceOffset) const;
-
-protected:
-
- /* Constructor. */
-
-
- /* Utility methods. */
-
-
-private:
-
- /* Private methods. */
-
- /**
- * Constructor.
- *
- * @param aRelationId The relation ID which an relation must match.
- * @param aSide The side on which an object must be.
- * @param aRelationDef relation definition
- */
- CMdERelationCondition(TItemId aRelationId, TRelationConditionSide aSide,
- const CMdERelationDef* aRelationDef);
-
- /**
- * Second-phase constructor. Creates two LogicConditions as children of
- * this relation condition and creates range condition for parameter.
- * Ownership of the parameter stays with caller.
- *
- * @param aRelationIds The relation IDs which an relation must match.
- * @param aParameterRange parameter range conditions
- */
- void ConstructL(const RArray<TItemId>* aRelationIds,
- const TMdEIntRange* aParameterRange);
-
-
-private:
-
- const TItemId iRelationId;
-
- RArray<TItemId>* iRelationIds;
-
- /** Relation definition. */
- const CMdERelationDef* iRelationDef;
-
- /** Conditions for the left object. */
- CMdELogicCondition* iLeftCondition;
-
- /** Conditions for the right object. */
- CMdELogicCondition* iRightCondition;
-
- /** The side on which an object must be. */
- TRelationConditionSide iSide;
-
- /** Conditions for the relation parameter. */
- TMdEIntRange* iParameterRange;
-
- /** Conditions for the relation GUID. */
- TInt64 iGuidHigh;
- TInt64 iGuidLow;
-
- /** Conditions for the relation last modified date. */
- TMdETimeRange* iLastModifiedDateRange;
- };
-
-#endif // __MDERELATIONCONDITION_H__