contentstorage/cautils/inc/cainnerquery.h
changeset 60 f62f87b200ec
child 61 8e5041d13c84
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contentstorage/cautils/inc/cainnerquery.h	Fri Mar 19 09:35:23 2010 +0200
@@ -0,0 +1,255 @@
+/*
+ * Copyright (c) 2008 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 __CCAINNERQUERY_H__
+#define __CCAINNERQUERY_H__
+
+#include <e32base.h>
+
+//FORWARD DECLARATIONS
+class CDesC16ArrayFlat;
+class RWriteStream;
+class RReadStream;
+
+/**
+ * Class represents Content Arsenal query
+ */
+NONSHARABLE_CLASS( CCaInnerQuery ): public CBase
+    {
+
+public:
+
+    enum TSortAttribute
+        {
+        Name = 1,
+        NameDesc,
+        CreatedTimestamp,
+        CreatedTimestampDesc,
+        MostUsed,
+        MostUsedDesc,
+        LastUsed,
+        LastUsedDesc,
+        Default, // default - return items in custom order
+        DefaultDesc
+        };
+
+    enum TEntryRole
+        {
+        Item = 0x1,
+        Group = 0x2
+        };
+
+    /**
+     * Destructor.
+     */
+    virtual ~CCaInnerQuery();
+
+    /**
+     * Two-phased constructor.
+     * @return The created object.
+     */
+    IMPORT_C static CCaInnerQuery* NewL();
+
+    /**
+     * Two-phased constructor.
+     * @return The created object.
+     */
+    IMPORT_C static CCaInnerQuery* NewLC();
+
+    /**
+     * Get query entry array ids. 
+     * @return Array od entries' ids to be queried.
+     */
+    IMPORT_C const RArray<TInt>& GetIds() const;
+
+    /**
+     * Sets the ids to be queried, entries to be fetched from storage.
+     * @param aArray The array of entries to be fetched.
+     */
+    IMPORT_C void SetIdsL( const RArray<TInt>& aArray );
+
+    /**
+     * Returns the parent id set for the query.
+     * @return Id of entry's parent.
+     */
+    IMPORT_C TInt GetParentId() const;
+
+    /**
+     * Sets the parent id to be queried. This will cause returning only entries whose aprent ids are aId.
+     * @param aId The parent id to be set for the query.
+     */
+    IMPORT_C void SetParentId( TInt aId );
+
+    /**
+     * Gets the typenames filter set in the query.
+     * @return Array of typenames set in this query. 
+     */
+    IMPORT_C const CDesC16ArrayFlat* GetEntryTypeNames() const;
+
+    /**
+     * Sets the typename filter for the query. 
+     * @param aArray Sets the typename filter for the query.
+     */
+    IMPORT_C void SetEntryTypeNames( CDesC16ArrayFlat* aArray );
+
+    /**
+     * Reutrns the role of teh queried entries.
+     * @return Role filter.
+     */
+    IMPORT_C TInt GetRole() const;
+
+    /**
+     * Sets the role filter for the query.
+     * @param The role of which type items should be fetched.
+     */
+    IMPORT_C void SetRole( TInt aRole );
+
+    /**
+     * Gets flags which are on.
+     * @return Flags which are on.
+     */
+    IMPORT_C TUint GetFlagsOn() const;
+
+    /**
+     * Sets flags which are on (filter).
+     * @param aFlagsOn Flags which are on filter.
+     */
+    IMPORT_C void SetFlagsOn( TUint aFlagsOn );
+
+    /**
+     * Gets flags which are on filter.
+     * @return Filter of flags which are on.
+     */
+    IMPORT_C TUint GetFlagsOff() const;
+
+    /**
+     * Sets flags which are off (filter).
+     * @param aFlagsOff Flags which are off filter.
+     */
+    IMPORT_C void SetFlagsOff( TUint aFlagsOff );
+
+    /**
+     * The uid filter of the entry to be fetched.
+     * @return Uid of entry to be fetched.
+     */
+    IMPORT_C TUint GetUid() const;
+
+    /**
+     * Sets the uid filter.
+     * @param aUid Uid filter. Items will be fetched with only the specific uid.
+     */
+    IMPORT_C void SetUid( TUint aUid );
+
+    /**
+     * Specifies the order type in which queried entiries are returned. 
+     * @return The sort type of the query.
+     */
+    IMPORT_C CCaInnerQuery::TSortAttribute GetSort() const;
+
+    /**
+     * Sets the sort order to in which items will be returned.
+     * @param aSort The sort order to in which items will be returned.
+     */
+    IMPORT_C void SetSort( CCaInnerQuery::TSortAttribute aSort );
+
+    /**
+     * Externalizes to stream.
+     * @param aStream Stream to which CCaInnerQuery is externalized.
+     */
+    IMPORT_C void ExternalizeL( RWriteStream& aStream ) const;
+
+    /**
+     * Internalizes from stream.
+     * @param aStream Stream from which CCaInnerQuery is internalized.
+     */
+    IMPORT_C void InternalizeL( RReadStream& aStream );
+
+    /**
+     * Sets the maximum amount of entries to be fetched.
+     * @param aCount The number of entries to be fetched.
+     */
+    IMPORT_C void SetCount( TUint aCount );
+
+    /**
+     * Gets the maximum amount of entries to be fetched.
+     * @return The maximum amount of entries to be fetched.
+     */
+    IMPORT_C TUint GetCount() const;
+
+private:
+
+    /**
+     * Second phased constructor.
+     */
+    void ConstructL();
+
+    /**
+     * Constructor
+     */
+    CCaInnerQuery();
+
+private:
+    // data
+
+    /*
+     * Unique identifier of entries. Own
+     */
+    RArray<TInt> iIds;
+
+    /*
+     * Unique identifier of the parent.
+     */
+    TInt iParentId;
+
+    /*
+     * Own.
+     */
+    CDesC16ArrayFlat* iEntryTypeNames;
+
+    /*
+     * Entry types.
+     */
+    TInt iRole;
+
+    /*
+     * Flags on.
+     */
+    TUint iFlagsOn;
+
+    /*
+     * Flags off.
+     */
+    TUint iFlagsOff;
+
+    /*
+     * Uid.
+     */
+    TUint iUid;
+
+    /*
+     * Sorting option.
+     */
+    TUint iSort;
+
+    /*
+     * Number of entries to fetch
+     */
+    TUint iCount;
+
+    };
+
+#endif // __CCAQUERY_H__