--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreenplugins/videochplugin/inc/videochpublishabledataitem.h Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,211 @@
+/*
+* 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: CVcxNsPublishableDataItem class declaration*
+*/
+
+
+
+
+#ifndef _VCXNSCHPUBLISHABLEDATAITEM_H
+#define _VCXNSCHPUBLISHABLEDATAITEM_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32cmn.h>
+#include "videochpublishabledata.h"
+
+
+// FORWARD DECLARATIONS
+class CLiwDefaultMap;
+template <class T, class K> class RHashMap;
+
+
+// CLASS DECLARATION
+/**
+ * Class contains data and services for handling data of
+ * single item in the tvvideo menu suite
+ */
+
+class CVcxNsPublishableDataItem: public CBase
+ {
+
+public:
+
+ /**
+ * Two-phased constructor. Provided content type
+ * should not be locally defined. The object does not
+ * own the actual string.
+ *
+ * @param aContentType Desc pointer to contentype of this item
+ *
+ * @return CVcxNsPublishableDataItem*
+ */
+ static CVcxNsPublishableDataItem* NewL( TPtrC aContentType );
+
+ /**
+ * Two-phased constructor. Provided content type
+ * should not be locally defined. The object does not
+ * own the actual string.
+ *
+ * @param aContentType Desc pointer to contentype of this item
+ *
+ * @return CVcxNsPublishableDataItem*
+ */
+ static CVcxNsPublishableDataItem* NewLC( TPtrC aContentType );
+
+ /**
+ * Destructor
+ *
+ */
+ virtual ~CVcxNsPublishableDataItem();
+
+
+private:
+
+ /**
+ * Symbian 2nd phase constructor
+ *
+ */
+ void ConstructL();
+
+ /**
+ * C++ constructor
+ *
+ */
+ CVcxNsPublishableDataItem( TPtrC aContentType );
+
+public:
+
+ /**
+ * returns a desc pointer to content type desc
+ *
+ * @return TPtrC
+ */
+ TPtrC ContentType() const;
+
+ /**
+ * Method sets integer type data into iIntData map
+ *
+ * @param aValueKey& value's key name where to save
+ * @param aValue value to save
+ *
+ * @leave KErrNotFound: if item with provided content type or value data
+ * item with provided key not found.
+ * @leave KErrNoMemory: if memory could not be allocated to store the
+ * copies of aKey and aValue
+ */
+ void SetDataL( TPtrC8 aKey, TInt aValue );
+
+ /**
+ * Method sets integer type data into iDescData map
+ *
+ * @param aValueKey& value's key name where to save
+ * @param aValue value to save
+ *
+ * @leave KErrNotFound: if item with provided content type or value data
+ * item with provided key not found.
+ * @leave KErrNoMemory: if memory could not be allocated to store the
+ * copies of aKey and aValue
+ */
+ void SetDataL( TPtrC8 aKey, const TDesC& aData );
+
+ /**
+ * Method returns integer -type data from local map.
+ *
+ * @param aValueKey& value's key name from where to get
+ *
+ * @return TInt
+ *
+ * @leave KErrNotFound: if item with provided content type or value data
+ * item with provided key not found.
+ *
+ */
+ TInt GetIntDataL( TPtrC8 aKey ) const;
+
+ /**
+ * Method returns descriptor -type data from local map.
+ *
+ * @param aValueKey& value's key name from where to get
+ *
+ * @return TInt
+ *
+ * @leave KErrNotFound: if item with provided content type or value data
+ * item with provided key not found.
+ *
+ */
+ const TDesC& GetDesCDataL( TPtrC8 aKey ) const;
+
+ /**
+ * Method copies key-value pairs from the local maps into
+ * provided reference map.
+ *
+ * @param aDataMap map where to save data
+ *
+ */
+ void FillCPDataMapL( CLiwDefaultMap& aDataMap );
+
+ /**
+ * Method reads key-value pairs from provided reference map
+ * and saves them to local maps.
+ *
+ * @param aDataMap map where to copy data
+ *
+ */
+ void ReadCPDataMapL( CLiwDefaultMap& aDataMap );
+
+ /**
+ * Method clears data. All descs sizes are set to zero and integers
+ * set to 0.
+ *
+ */
+ void ClearData();
+
+private:
+
+ /**
+ * Internal helper method to extract data to liwvariant from the liwmap.
+ *
+ * Method leaves if data provided by the key is not found
+ *
+ * @param aKey key of data item
+ * @param aDataMap a map where to search data
+ * @param aVariant variant item from where to fetch tha actual data
+ *
+ */
+ TInt ExtractVariant( const TDesC8& aKey,
+ CLiwDefaultMap& aDataMap,
+ TLiwVariant& aVariant );
+
+
+private: // DATA
+
+ /**
+ * Desc pointer to external string containing content type txt.
+ * Not Owned.
+ */
+ TPtrC iContentType;
+
+ /**
+ * Map containing integer type data.
+ */
+ RHashMap< TBuf8< KTvVideoMaxValueKeyLen >, TInt >* iIntData;
+
+ /**
+ * Map containing desc type data.
+ */
+ RHashMap< TBuf8< KTvVideoMaxValueKeyLen >, HBufC* >* iDescData;
+
+ };
+
+#endif // _VCXNSCHPUBLISHABLEDATAITEM_H