upnpavcontroller/upnpavcontrollerclient/inc/upnpavbrowserequest.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:52:00 +0200
changeset 0 7f85d04be362
permissions -rw-r--r--
Revision: 200947 Kit: 200951

/*
* Copyright (c) 2006 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:      a data class containing browse-related data
*
*/






#ifndef C_CUPNPAVBROWSEREQUEST_H
#define C_CUPNPAVBROWSEREQUEST_H


#include <e32base.h>
#include <s32mem.h>

#include "upnpavbrowsingsession.h"
// FORWARD DECLARATIONS

// CLASS DECLARATION

/**
*  UPnP AV Controller Client/Server communication helper class
*  
*
*  @lib - 
*  @since Series 60 3.1
*/

class CUpnpAVBrowseRequest : public CBase
    { 
    
public:  // Constructors and destructor
        
    /**
     * Two-phased constructor.
     */
    static inline CUpnpAVBrowseRequest* NewLC();
    
    /**
     * Two-phased constructor.
     */
    static inline CUpnpAVBrowseRequest* NewL();
    
    /**
     * Destructor.
     */
    inline virtual ~CUpnpAVBrowseRequest();
    
public:

    /**
     * Externalizes device information to stream.
     * Leaves in case of errors.
     * @since Series 60 3.0
     * @param reference to RWriteStream
     * @return none
     */
    inline void ExternalizeL( RWriteStream& aStream ) const;
    
    /**
     * Internalizes device information from stream.
     * Leaves in case of errors.
     * @since Series 60 3.0
     * @param reference to RReadStream
     * @return none
     */
    inline void InternalizeL( RReadStream& aStream );

    /**
     * Externalizes information to stream and returns the object as a heap
     * desctiptor.
     */        
    inline HBufC8* ToDes8L() const;

private: //

    /**
     * Constructor
     */
    inline CUpnpAVBrowseRequest();

    /**
     * Perform the second phase construction
     */
    inline void ConstructL();

public: // New methods

    /**
     * Set Id
     * @param aId
     */
    inline void SetIdL( const TDesC8& aId );

    /**
     * Get Id
     * @return id
     */    
    inline const TDesC8& Id();

    /**
     * Set search criteria
     * @param aSearchCriteria
     */    
    inline void SetSearchCriteriaL( const TDesC8& aSearchCriteria );

    /**
     * Get search criteria
     * @return search criteria
     */    
    inline const TDesC8& SearchCriteria();

    /**
     * Set filter
     * @param aFilter
     */
    inline void SetFilterL( const TDesC8& aFilter );
        
    /**
     * Get filter
     * @return filter
     */    
    inline const TDesC8& Filter();

    /**
     * Set browse flag
     * @param aBrowseFlag
     */    
    inline void SetBrowseFlag( MUPnPAVBrowsingSession::TBrowseFlag
        aBrowseFlag );
    
    /**
     * Get browse flag
     * @return browse flag
     */    
    inline MUPnPAVBrowsingSession::TBrowseFlag BrowseFlag();

    /**
     * Set start index
     * @param aStartIndex
     */    
    inline void SetStartIndex( TInt aStartIndex );
    
    /**
     * Get start index
     * @return start index
     */    
    inline TInt StartIndex();

    /**
     * Set requested count
     * @param aRequestedCount
     */
    inline void SetRequestedCount( TInt aRequestedCount );

    /**
     * Get requested count
     * @return requested count
     */    
    inline TInt RequestedCount();

    /**
     * Set sort criteria
     * @param aSortCriteria
     */
    inline void SetSortCriteriaL( const TDesC8& aSortCriteria );
    
    /**
     * Get sort criteria
     * @return sort criteria
     */    
    inline const TDesC8& SortCriteria();

private:
    
    TInt                                iCriteriaLength;
    HBufC8*                             iId; // Owned
    HBufC8*                             iSearchCriteria; // Owned
    HBufC8*                             iFilter; // Owned
    MUPnPAVBrowsingSession::TBrowseFlag iBrowseFlag;
    TInt                                iStartIndex;
    TInt                                iRequestedCount;
    HBufC8*                             iSortCriteria; // Owned
    
    };

#include "upnpavbrowserequest.inl"

#endif // C_CUPNPAVBROWSEREQUEST_H