--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web_plat/feeds_engine_api/inc/FeedsEntity.h Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,248 @@
+/*
+* 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 the License "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: The client side connection to the FeedsSever.
+ *
+*/
+
+
+#ifndef __FEEDSENTITY_H
+#define __FEEDSENTITY_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CFeedsMap;
+class CPackedFeed;
+class CPackedFolder;
+class CPacked;
+class RFeedsInterface;
+
+enum TFeedsEntityType
+ {
+ EFeed,
+ EFolder,
+ EFeedsItem,
+ EFeedsEnclosure,
+ EMiniItem
+ };
+
+// DATA TYPES
+enum TFeedItemStatus
+ {
+ EItemStatusUndefined,
+ EItemStatusNew,
+ EItemStatusUnread,
+ EItemStatusRead
+ };
+
+// CLASS DECLARATION
+class CFeedsEntity : public CBase
+ {
+
+public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CFeedsEntity* NewL(RFeedsInterface* aFeedsInterface);
+
+ /**
+ * Two-phased constructor.
+ * Only called from RFolderItem. aPackedFolder is adopted by this method.
+ */
+ static CFeedsEntity* NewL(CPackedFolder* aPackedFolder,
+ RFeedsInterface* aFeedsInterface);
+
+ /**
+ * Two-phased constructor.
+ * Only called from RFolderItem. aPackedFolder is adopted by this method.
+ */
+ static CFeedsEntity* NewL(CPackedFeed* aPackedFeed,
+ RFeedsInterface* aFeedsInterface);
+
+ /**
+ * Two-phased constructor.
+ */
+ static CFeedsEntity* NewFolderL(const TDesC& aTitle, TInt aEntryId, TInt aStatusCode);
+
+ /**
+ * Two-phased constructor.
+ */
+ static CFeedsEntity* NewFeedL(const TDesC& aTitle, const TDesC& aUrl,
+ TInt aEntryId, TInt aFeedId, const TTime& aTimestamp, TInt aStatusCode, TInt aFreq,
+ const TInt& aUnreadCount=0);
+
+ /**
+ * Two-phased constructor.
+ */
+ CFeedsEntity* CFeedsEntity::NewMiniItemL();
+
+
+ /**
+ * C++ default constructor. aPackedFolder is adopted by this method.
+ */
+ CFeedsEntity(CPackedFolder* aPackedFolder);
+
+ /**
+ * C++ default constructor. aPackedFolder is adopted by this method.
+ */
+ CFeedsEntity(CPackedFeed* aPackedFeed);
+
+ /**
+ * C++ default constructor.
+ */
+ CFeedsEntity();
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL(const CPackedFolder& aPackedFolder);
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL(const CPackedFeed& aPackedFeed);
+
+ /**
+ * Destructor
+ */
+ ~CFeedsEntity();
+
+ /**
+ * Sets string Attribute
+ *
+ *
+ * @param aAttribute Enum representing attribute
+ * @param aAttributeValue - Attribute value
+ * @return void
+ */
+ void SetAttribute(TUint aAttribute, const TPtrC& aAttributeValue);
+
+ /**
+ * Changes Attributes/Property
+ *
+ *
+ * @param aNewValues Map containing new Values
+ * @return wheather operation was successful or failed (ETrue/EFalse)
+ */
+ IMPORT_C TInt ChangeValueL(const CFeedsMap& aNewValues);
+
+ /**
+ * Gets string Attribute
+ *
+ *
+ * @param Enum value representing an attribute
+ * @param aValue - returned value of the attribute
+ * @return KErrNone if successful otherwise KErrNotFound
+ */
+ IMPORT_C TInt GetStringValue(TUint anAttribute, TPtrC& aValue) const;
+
+ /**
+ * Gets integer Attribute
+ *
+ *
+ * @param Enum value representing an attribute
+ * @param aValue - returned value of the attribute
+ * @return KErrNone if successful otherwise KErrNotFound
+ */
+ IMPORT_C TInt GetIntegerValue(TUint anAttribute, TInt& aValue) const;
+
+ /**
+ * Gets time Attribute
+ *
+ *
+ * @param Enum value representing an attribute
+ * @param aValue - returned value of the attribute
+ * @return KErrNone if successful otherwise KErrNotFound
+ */
+ IMPORT_C TInt GetTimeValue(TUint anAttribute, TTime& aValue) const;
+
+ /**
+ * Gets type of CFeedsEntity (Where this represents folder/feeds/items/enclosures)
+ *
+ *
+ * @return TFeedsEntityType enum
+ */
+
+ IMPORT_C TFeedsEntityType GetType() const;
+
+ /**
+ * Gets ID of feeds entity (This ID is actually unique integer value)
+ *
+ *
+ * @return TInt ID
+ */
+ IMPORT_C TInt GetId() const;
+
+ /**
+ * Returns Parent of this feeds entity (NULL if it is root folder)
+ *
+ *
+ * @return CFeedsEntity* (parent)
+ */
+ IMPORT_C CFeedsEntity* GetParent() const;
+
+ /**
+ * Returns RPointerArray containing all children of this CFeedsEntity
+ *
+ *
+ * @return Array containing children.
+ */
+ IMPORT_C const RPointerArray<CFeedsEntity>& GetChildren() const;
+
+ /**
+ * Initialises FeedsInterface pointer
+ *
+ *
+ * @param aFeedIterface
+ * @return void
+ */
+ void SetFeedInterface(RFeedsInterface* aFeedInterface)
+ {
+ iFeedInterface = aFeedInterface;
+ }
+
+ // Friend classes declration.
+ friend class RFeedsInterface;
+ friend class CTransaction;
+
+private: // Private data members.
+ TInt iId;
+ TInt iFeedId;
+ TFeedsEntityType iType;
+ CFeedsEntity* iParent;
+ RPointerArray<CFeedsEntity> iChildren;
+ CFeedsMap* iAttrProp;
+ CPacked* iPacked;
+ RFeedsInterface* iFeedInterface;
+ };
+
+#endif //__FEEDSENTITY_H__
+
+