--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/searchsrv_plat/cpix_search_api/inc/cpixdocument.h Wed Aug 18 10:53:26 2010 +0300
@@ -0,0 +1,174 @@
+/*
+* Copyright (c) 2010 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: Qt search document APIs
+*
+*/
+
+#ifndef _CPIXDOCUMENT_H
+#define _CPIXDOCUMENT_H
+
+#ifdef BUILD_DLL
+#define DLL_EXPORT Q_DECL_EXPORT
+#else
+#define DLL_EXPORT Q_DECL_IMPORT
+#endif
+
+/**
+ * @file
+ * @ingroup Qt Search ClientAPI
+ * @brief Contains CpixDocument APIs
+ */
+
+#include <QObject>
+#include <cpixcommon.h>
+
+//Forward Declaration
+class CpixDocumentPrivate;
+class CpixDocumentField;
+
+/**
+ * @brief Represents the document returned as a result of a search query.
+ * @ingroup ClientAPI
+ *
+ * Link against: cpixsearch.lib
+ */
+class DLL_EXPORT CpixDocument: public QObject
+ {
+ Q_OBJECT
+public:
+ //@TODO: The following enums are copied over from S60. They need to
+ // be moved to a common file so that they can be shared by s60, qt and openc.
+ /**
+ * TStored defines wheter the value is stored to database.
+ * If value is stored to database, it can be retrieved from search result.
+ */
+ enum Stored
+ {
+ StoreYes = 1,
+ StoreNo = 2
+ };
+
+ /**
+ * TIndexed defines how the value of the field is indexed.
+ * If value is indexed, it can be searched.
+ */
+ enum Indexed
+ {
+ IndexNo = 16,
+ IndexTokenized = 32,
+ IndexUnTokenized = 64
+ };
+
+ /**
+ * TAggregated defines how the value of the field are exposed
+ * for aggregation. Aggregated field can be found with generic searches.
+ * If aggregation is not specified, all indexed field are aggeregated by
+ * default. Note: that also non-indexed fields can be aggregated.
+ */
+ enum Aggregated
+ {
+ AggregateNo = 1<<30,
+ AggregateYes = 1<<31,
+ AggregateDefault = 0
+ };
+ /**
+ * By default, field value is stored to database and it's indexed as tokenized strings.
+ */
+ static const int DefaultConfig = StoreYes | IndexTokenized | AggregateDefault;
+
+ static const float KDefaultBoost;
+
+public:
+ /**
+ * Constructor.
+ * Creates a CpixDocument object and return a pointer to the created object.
+ * @return A pointer to the created instance of CpixDocument.
+ */
+ static CpixDocument* newInstance();
+
+ /**
+ * Destructor
+ */
+ virtual ~CpixDocument();
+
+ /**
+ * Getter: Gets the document identifier.
+ * @return document identifier.
+ */
+ QString docId() const;
+
+ /**
+ * Getter: Gets the document excert.
+ * @return document excerpt.
+ */
+ QString excerpt() const;
+
+ /**
+ * Getter: Gets the document's base app class.
+ * @return document's base app class.
+ */
+ QString baseAppClass() const;
+
+ /**
+ * Getter: Gets the field at aIndex in the document.
+ * @param aIndex index of the field that is to be retrieved.
+ * @return CpixDocumentField that was at aIndex.
+ */
+ const CpixDocumentField& field( const int aIndex ) const THROWS_EXCEPTION;
+
+ /**
+ * Getter: Gets the field count.
+ * @return The number of the fields in the document.
+ */
+ int fieldCount() const;
+
+ /**
+ * Setter: Sets the document identifier for the document.
+ * @param aDocId the document identifier to be set.
+ */
+ void setDocId(const QString aDocId);
+
+ /**
+ * Setter: Sets the excerpt for the document.
+ * @param aExcerpt the excerpt to be set.
+ */
+ void setExcerpt(const QString aExcerpt);
+
+ /**
+ * Setter: Sets the base app class for the document.
+ * @param aBaseAppClass the base app class to be set.
+ */
+ void setBaseAppClass(const QString aBaseAppClass);
+
+ /**
+ * Setter: Adds a field with aName, aValue and aConfig to the document.
+ * @param aName The name of the field
+ * @param aValue The value of the field
+ * @param aConfig The config of the field
+ * @return the CpixDocumentField that was added to the document.
+ */
+ void addField(const QString aName, const QString aValue, const int aConfig = CpixDocument::DefaultConfig);
+
+private:
+ /**
+ * Default constructor
+ */
+ CpixDocument();
+
+private:
+ CpixDocumentPrivate* const iPvtImpl;
+ Q_DECLARE_PRIVATE_D( iPvtImpl, CpixDocument )
+ };
+
+#endif //_CPIXDOCUMENT_H