services/terminalmodeservice/inc/upnpappfilterinfo.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 16:06:48 +0300
branchRCL_3
changeset 9 5c72fd91570d
permissions -rw-r--r--
Revision: 201029 Kit: 201035

/**
* Copyright (c) 2010 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: CUpnpAppFilterInfo class declaration
*
*/

#ifndef __UPNPAPPFILTERINFO_H__
#define __UPNPAPPFILTERINFO_H__

// Include Files
#include <e32base.h>
#include "terminalmodeconsts.h"

// Literals
_LIT8(KProtocolId,          "protocolID");
_LIT8(KFormat,              "format");
_LIT8(KRemotingDirection,   "direction");
_LIT8(KAppCategory,         "appCategory");
_LIT8(KTrustLevel,          "trustLevel");
_LIT8(KContCategory,        "contentCategory");
_LIT8(KContentRules,        "contentRules");
_LIT8(KAudioType,           "audioType");

/**
 *  This class stores the parsed information provided in the AppListingFilter
 *  input argument of the GetApplicationList action.
 *  Provides internal setter and getter methods.
 *  Maintains a structure which holds the information such as which all optional 
 *  elements are needed in the response and which all applications should go
 *  in the response.
 */
class CUpnpAppFilterInfo : public CBase
      {
public: 
      static  CUpnpAppFilterInfo* NewL();
      ~CUpnpAppFilterInfo();
      
      /*
       * Method is used to set the value for each key provided in the filter string as an input
       * Returns error if the there is a mismatch of the key or key is not as per the GetApplicationList schema
       * The default parameter( aDisplayInfoFlag ) is provided only to distinguish the child element "trustLevel" ( child element)
       * of displayInfo element from "trustLevel" of appInfo element.
       */
      void SetFilterInfoL( const TDesC8& aKey, const TDesC8& aValue,
                                  TTerminalModeErrorCode& aErr, TBool aDisplayInfoFlag = EFalse );
      // inlined Getter methods
      inline const TDesC8& AppName()const;
      inline const TDesC8& AppDescription()const;
      inline const TDesC8& MimeType()const;
      inline const TDesC8& Width()const;
      inline const TDesC8& Height()const;
      inline const TDesC8& Depth()const;
      inline const TDesC8& AllowedProfileIdList()const;
      inline const TDesC8& ProtocolId()const;
      inline const TDesC8& Format()const;
      inline const TDesC8& Direction()const;
      inline const TDesC8& AppCategory()const;
      inline const TDesC8& AppTrustLevel()const;
      inline const TDesC8& ContentCategory()const;
      inline const TDesC8& ContentRules()const;
      inline const TDesC8& ContentTrustLevel()const;
      inline const TDesC8& AudioType()const;
      inline const TDesC8& ResourceStatus()const;
      inline const TDesC8& Signature()const;
      
private:
      CUpnpAppFilterInfo( );
      
private:
      HBufC8*                     iAppName;
      HBufC8*                     iAppDesc;
      HBufC8*                     iMimeType;
      HBufC8*                     iWidth;
      HBufC8*                     iHeight;
      HBufC8*                     iDepth;
      HBufC8*                     iAllowedIdList;
      HBufC8*                     iProtocolId;
      HBufC8*                     iFormat;
      HBufC8*                     iDirection;
      HBufC8*                     iAppCategory;
      HBufC8*                     iAppTrustLevel;
      HBufC8*                     iContCategory;
      HBufC8*                     iContentRules;
      HBufC8*                     iContTrustLevel;
      HBufC8*                     iAudioType;
      HBufC8*                     iRscStatus;
      HBufC8*                     iSignature;
      };

#include "upnpappfilterinfo.inl"

#endif  //__UPNPAPPFILTERINFO_H__