internetradio2.0/xmlparsersrc/irxmlelements.cpp
changeset 0 09774dfdd46b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/internetradio2.0/xmlparsersrc/irxmlelements.cpp	Mon Apr 19 14:01:53 2010 +0300
@@ -0,0 +1,176 @@
+/*
+* Copyright (c) 2006-2007 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
+*
+*/
+
+
+#include <stringpool.h>
+
+#include "irdebug.h"
+#include "irxmlelements.h"
+
+//Ignores PC Lint Warning 618.
+
+//! Literals for the StringPool
+
+//! Literals for List of genres,languages,countries
+ _STLIT8(KName,"name");
+ _STLIT8(KID,"id");
+ _STLIT8(KSize,"size");
+ 
+//!Literals for the List of Channels
+ _STLIT8(KShortDesC,"shortDesc");
+
+ _STLIT8(KBitrate,"bitrate");
+ _STLIT8(KValue,"value");
+//! Literals for the channel 
+
+_STLIT8(KSdsid,"sdsid");
+_STLIT8(KLangCode,"langCode");
+_STLIT8(KLang,"lang");
+_STLIT8(KCountryCode,"countryCode");
+_STLIT8(KLastUpdated,"lastUpdated");
+_STLIT8(KDescription,"description");
+_STLIT8(KImgURL,"imgUrl");
+_STLIT8(KAdvUrl,"advertiseImgUrl");
+_STLIT8(KAdvUse,"advertiseInUse");
+_STLIT8(KGenreId,"genreid");
+_STLIT8(KURL,"url");
+_STLIT8(KMusicStoreEnabled,"musicStoreEnabled");
+//!Literals for the log Usage
+
+_STLIT8(KIRId,"irid"); 
+//! Literals for the OTA Update
+
+_STLIT8(KVersion,"version");
+_STLIT8(KUpdateInterval,"updateInterval");
+_STLIT8(KUpdateMethod,"updateMethod");
+
+ //! Literals for Advertisement
+_STLIT8(KInUse,"inUse");
+_STLIT8(KUsageVisibleTimes,"usageVisibleTimes");
+_STLIT8(KVisibleTime,"visibleTime");
+ 
+const TInt KNoOfElementInTable = 27;
+ 
+ //! PoolTable
+ const TAny* const IRXMLPoolContent[] =
+    { 
+	(const TAny*)         &KGetOp,    
+	(const TAny*)         &KName,       
+	(const TAny*)         &KID,    
+	(const TAny*)         &KSize,
+	(const TAny*)         &KShortDesC,
+	(const TAny*)         &KValue,        
+	(const TAny*)         &KSdsid,
+	(const TAny*)         &KLangCode,
+	(const TAny*)         &KLang,
+	(const TAny*)         &KCountryCode,
+	(const TAny*)         &KCountry,
+	(const TAny*)         &KLastUpdated,
+	(const TAny*)         &KDescription,
+	(const TAny*)         &KImgURL,
+	(const TAny*)         &KAdvUrl,    
+	(const TAny*)         &KAdvUse,
+	(const TAny*)         &KGenreId,
+	(const TAny*)         &KURL,    
+	(const TAny*)         &KMusicStoreEnabled,    
+	(const TAny*)         &KBitrate,
+	(const TAny*)         &KIRId,
+	(const TAny*)         &KVersion,
+	(const TAny*)         &KUpdateInterval,
+	(const TAny*)         &KUpdateMethod,
+	(const TAny*)          &KInUse,
+	(const TAny*)         &KUsageVisibleTimes,
+	(const TAny*)          &KVisibleTime
+    };
+    
+//! Pointer to a StringTable
+const static TStringTable IRPoolTable = 
+    {
+	KNoOfElementInTable,      
+	&IRXMLPoolContent[0],
+	EFalse
+    };     
+
+
+// ---------------------------------------------------------------------------
+// Creates an initialised string pool with no pre-loaded string tables.
+// ---------------------------------------------------------------------------
+//
+void TIRXMLElementFormat::OpenStringPoolL(RStringPool&  aStringPool)
+    {
+    IRLOG_DEBUG( "CIRXMLContentHandler::OpenStringPoolL" );
+    aStringPool.OpenL(IRPoolTable);
+    IRLOG_DEBUG( "CIRXMLContentHandler::OpenStringPoolL - Exiting." );
+    }
+
+
+// ---------------------------------------------------------------------------
+// TIRXMLElementFormat :: GetElementIdL
+// The ElementId of the element from the StringPool
+// ---------------------------------------------------------------------------
+//
+TIRXMLElement TIRXMLElementFormat::GetElementIdL(const TDesC8& aElement, 
+                                  const RStringPool& aStringPool)
+    {
+		IRLOG_DEBUG( "TIRXMLElementFormat::GetElementIdL" );
+		TBool validElement = EFalse;
+		TInt  tableEntries;
+		TInt  pos(0);
+        tableEntries = IRPoolTable.iCount;
+        while(pos < tableEntries && validElement == EFalse)
+			{
+			RStringF tableEntry;
+            tableEntry = aStringPool.StringF(pos,IRPoolTable);
+            HBufC8* ElementName = HBufC8::NewLC(tableEntry.DesC().Length());
+            ElementName->Des().Copy(tableEntry.DesC());
+            TLex8 string(*ElementName);
+            TPtrC8 token = string.NextToken();
+            TInt CompareResult = aElement.Compare(token);
+            if(CompareResult == 0)
+                {
+                 validElement = ETrue;
+                }
+            if(validElement == EFalse)
+                {
+                 pos++;
+                }
+            tableEntry.Close();
+            CleanupStack::PopAndDestroy(ElementName);        
+        }
+    if(validElement)
+        {
+        IRLOG_DEBUG( "CIRXMLContentHandler::GetElementIdL - Exiting (1)." );
+        return static_cast<TIRXMLElement>(pos);
+        }        
+    IRLOG_DEBUG( "CIRXMLContentHandler::GetElementIdL - Exiting (2)." );
+    return(EElementIDUnknown);
+    } 
+    
+// ---------------------------------------------------------------------------
+// TIRXMLElementFormat::CloseStringPoolL
+// Closes the StringPool
+// ---------------------------------------------------------------------------
+//
+void TIRXMLElementFormat::CloseStringPoolL(RStringPool&  aStringPool)
+    {
+    IRLOG_DEBUG( "TIRXMLElementFormat::CloseStringPoolL" );
+    aStringPool.Close();
+    IRLOG_DEBUG( "TIRXMLElementFormat::CloseStringPoolL - Exiting." );
+	return;
+    }    
+   
+