internetradio2.0/xmlparserinc/irxmlelements.h
author Pat Downey <patd@symbian.org>
Tue, 18 May 2010 11:36:57 +0100
changeset 4 3f2d53f144fe
parent 0 09774dfdd46b
permissions -rw-r--r--
Merge docml changeset with recent Nokia delivery.

/*
* 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
*
*/


#ifndef IRXMLELEMENTS_H
#define IRXMLELEMENTS_H

#include <e32cmn.h>
#include <stringtablesupport.h>

//Literals to instantiate the class
 _STLIT8(KGetOp,"getOperation");
 _LIT8(KCatGenre,"genres");
 _STLIT8(KCatLang,"languages");
 _STLIT8(KCatCountry,"countries");
 _STLIT8(KChannels,"channels");
 _STLIT8(KPresets,"presets");
 _STLIT8(KIRID,"irid");
 _STLIT8(KTimeStamp,"timestamp"); 
 _STLIT8(KIRVersion,"iRAPPVersion"); 
 _STLIT8(KAdv,"advertisement");
 _STLIT8(KPreset,"preset");
 _STLIT8(KServers,"servers"); 
 _STLIT8(KGenre,"genre");
 _STLIT8(KLanguage,"language");
 _STLIT8(KCountry,"country");
 _STLIT8(KChannel,"channel");
 _STLIT8(KAd,"ad");
 _STLIT8(KAdvertisements,"advertisements");
 _STLIT8(KBanner,"banner");
 _STLIT8(KClickthroughUrl,"clickthrough-url");


//! Enum for the attributes
enum TIRXMLElement
    {
     EGetOperation,
     
    // List of Genres/Language/Contry
    EName,
    EID,
    ESize,
    
    //! Channels 
    EShortDesC,
    EBitrateValue,
    
    // Preset
    ESdsID,
    ELangCode,
    ELang,
    ECountryCode,
    ECountry,
    ELastUpdated,
    EDesc,
    EImgURL,
    EAdvImgURL,
    EAdvInUse,
    EGenreID,
    EURL,
    EMusicStoreEnabled,
    EBitrate,
    
    // Log Usage
    EIRID,
    
    // OTA Update
    EVersion,
    EUpdateInterval,
    EUpdateMethod,
    
    //Advertisement
    EInUse,
    EUsageVisibleTimes,
    EVisibleTime,
    /**
    Unknown Element
    */    
    EElementIDUnknown,
     }; 
 
class RStringPool;

/**
* This class handles the XML string pool
* not accessible outside the dll
*/
class TIRXMLElementFormat
    {
 public : 
    /**
    * Creates an initialised string pool with no pre-loaded string tables.
    * @param aStringPool Stringpool
    */
    static void OpenStringPoolL(RStringPool& aStringPool);
    /**
    * The ElementId of the element from the StringPool
    * @param aElement the element name to be searched in the pool
    * @param aStringPool stringpool reference
    * @return the enum for the element
    */
    static TIRXMLElement GetElementIdL(const TDesC8& aElement, 
                                const RStringPool& aStringPool);
    /**
    * Closes the StringPool
    * @param aStringPool Stringpool
    */                                     
    static void CloseStringPoolL(RStringPool& aStringPool);                                    
    }; 
 
 
#endif //IRXMLELEMENTS_H