internetradio2.0/irxmlparser/src/irxmlelements.cpp
changeset 14 896e9dbc5f19
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/internetradio2.0/irxmlparser/src/irxmlelements.cpp	Wed Aug 18 09:40:26 2010 +0300
@@ -0,0 +1,176 @@
+/*
+* Copyright (c) 2009 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:  The implementation for presentation elements.
+*
+*/
+
+
+#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;
+    }    
+   
+