upnpavcontroller/upnpavcontrollerclient/inc/upnpavbrowserequest.inl
changeset 0 7f85d04be362
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpavcontroller/upnpavcontrollerclient/inc/upnpavbrowserequest.inl	Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,331 @@
+/*
+* 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
+*
+*/
+
+
+
+
+
+
+// INCLUDE FILES
+
+#include "upnpavbrowserequest.h"
+
+// CONSTANTS
+const TInt KBrowseMaxStringLen = 255;
+const TInt KBrowseBufferGranularity = 100;    
+
+
+// ============================ MEMBER FUNCTIONS ============================
+
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::CUpnpAVBrowseRequest
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// --------------------------------------------------------------------------
+inline CUpnpAVBrowseRequest::CUpnpAVBrowseRequest()
+    {    
+    }
+
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::ConstructL
+// Symbian 2nd phase constructor can leave.
+// --------------------------------------------------------------------------
+inline void CUpnpAVBrowseRequest::ConstructL()
+    {
+    iId = KNullDesC8().AllocL();
+    iSearchCriteria = KNullDesC8().AllocL();
+    iFilter = KNullDesC8().AllocL();
+    iSortCriteria = KNullDesC8().AllocL();
+    }
+
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::NewL
+// Two-phased constructor.
+// --------------------------------------------------------------------------
+inline CUpnpAVBrowseRequest* CUpnpAVBrowseRequest::NewL()
+    {
+    CUpnpAVBrowseRequest* self = NewLC();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::NewLC
+// Two-phased constructor.
+// --------------------------------------------------------------------------
+inline CUpnpAVBrowseRequest* CUpnpAVBrowseRequest::NewLC()
+    {
+    CUpnpAVBrowseRequest* self = new( ELeave )
+        CUpnpAVBrowseRequest;    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+    
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::NewLC
+// Two-phased constructor.
+// --------------------------------------------------------------------------
+inline CUpnpAVBrowseRequest::~CUpnpAVBrowseRequest()
+    {
+    delete iId;
+    delete iSearchCriteria;
+    delete iFilter;
+    delete iSortCriteria;         
+    }
+
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::NewLC
+// Two-phased constructor.
+// --------------------------------------------------------------------------
+inline void CUpnpAVBrowseRequest::ExternalizeL( RWriteStream& aStream ) const
+    {    
+    aStream.WriteInt16L( iCriteriaLength );    
+    aStream << *iId;
+    aStream << *iSearchCriteria;
+    aStream << *iFilter;
+    aStream.WriteInt16L( (TInt)iBrowseFlag );
+    aStream.WriteInt16L( iStartIndex );
+    aStream.WriteInt16L( iRequestedCount );
+    aStream << *iSortCriteria;   
+    }
+    
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::InternalizeL
+// Internalizes object
+// --------------------------------------------------------------------------
+inline void CUpnpAVBrowseRequest::InternalizeL( RReadStream& aStream )
+    {
+    iCriteriaLength = aStream.ReadInt16L();
+    
+    delete iId; iId = NULL;
+    iId = HBufC8::NewL( aStream, KBrowseMaxStringLen );
+
+    delete iSearchCriteria; iSearchCriteria = NULL;
+    iSearchCriteria = HBufC8::NewL( aStream, iCriteriaLength );
+
+    delete iFilter; iFilter = NULL;
+    iFilter = HBufC8::NewL( aStream, KBrowseMaxStringLen );
+    
+    iBrowseFlag = (MUPnPAVBrowsingSession::TBrowseFlag)aStream.ReadInt16L();
+    
+    iStartIndex = aStream.ReadInt16L();
+    
+    iRequestedCount = aStream.ReadInt16L();
+
+    delete iSortCriteria; iSortCriteria = NULL;
+    iSortCriteria = HBufC8::NewL( aStream, KBrowseMaxStringLen );
+    }
+
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::ToDes8L
+// Externalizes object to a heap descriptor
+// --------------------------------------------------------------------------
+inline HBufC8* CUpnpAVBrowseRequest::ToDes8L() const
+    {
+    // serialize object
+    CBufFlat* tempFlatBuf = CBufFlat::NewL( KBrowseBufferGranularity );
+    CleanupStack::PushL( tempFlatBuf );
+
+    RBufWriteStream stream( *tempFlatBuf );
+    CleanupClosePushL( stream );
+    
+    stream << *this;
+    
+    // create heap descriptor
+    HBufC8* tempBuf = HBufC8::NewLC( tempFlatBuf->Size() );
+    TPtr8 ptr( tempBuf->Des() );
+    tempFlatBuf->Read( 0, ptr, tempFlatBuf->Size() );
+    
+    // clean up
+    CleanupStack::Pop( tempBuf );
+    CleanupStack::PopAndDestroy( &stream );
+    CleanupStack::PopAndDestroy( tempFlatBuf );
+    
+    return tempBuf;
+    }
+
+
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::SetIdL
+// Sets id
+// --------------------------------------------------------------------------
+inline void CUpnpAVBrowseRequest::SetIdL( const TDesC8& aId )
+    {
+    HBufC8* tempBuf = aId.AllocL();
+    delete iId;
+    iId = tempBuf;
+    }
+    
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::Id
+// Returns id
+// --------------------------------------------------------------------------
+inline const TDesC8& CUpnpAVBrowseRequest::Id()
+    {
+    if( iId )
+        {
+        return *iId;
+        }
+    else
+        {
+        return KNullDesC8;
+        }    
+    }
+  
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::SetSearchCriteriaL
+// Sets search criteria
+// --------------------------------------------------------------------------
+inline void CUpnpAVBrowseRequest::SetSearchCriteriaL(
+    const TDesC8& aSearchCriteria )
+    {
+    HBufC8* tempBuf = aSearchCriteria.AllocL();
+	iCriteriaLength = tempBuf->Length();
+	delete iSearchCriteria;
+	iSearchCriteria = tempBuf;
+    }
+
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::SearchCriteria
+// Returns search criteria
+// --------------------------------------------------------------------------
+inline const TDesC8& CUpnpAVBrowseRequest::SearchCriteria()
+    {
+    if( iSearchCriteria )
+        {
+        return *iSearchCriteria;
+        }
+    else
+        {
+        return KNullDesC8;
+        }        
+    }
+
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::SetFilterL
+// Sets filter
+// --------------------------------------------------------------------------
+inline void CUpnpAVBrowseRequest::SetFilterL( const TDesC8& aFilter )
+    {
+    HBufC8* tempBuf = aFilter.AllocL();
+    delete iFilter;
+    iFilter = tempBuf;    
+    }
+    
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::Filter
+// Returns filter
+// --------------------------------------------------------------------------
+inline const TDesC8& CUpnpAVBrowseRequest::Filter()
+    {    
+    if( iFilter )
+        {
+        return *iFilter;
+        }
+    else
+        {
+        return KNullDesC8;
+        }        
+    }
+    
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::SetBrowseFlag
+// Sets browse flag
+// --------------------------------------------------------------------------
+inline void CUpnpAVBrowseRequest::SetBrowseFlag(
+    MUPnPAVBrowsingSession::TBrowseFlag aBrowseFlag )
+    {
+    iBrowseFlag = aBrowseFlag;
+    }
+    
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::BrowseFlag
+// Returns browse flag
+// --------------------------------------------------------------------------
+inline MUPnPAVBrowsingSession::TBrowseFlag CUpnpAVBrowseRequest::BrowseFlag()
+    {
+    return iBrowseFlag;
+    }
+    
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::SetStartIndex
+// Sets start index
+// --------------------------------------------------------------------------
+inline void CUpnpAVBrowseRequest::SetStartIndex( TInt aStartIndex )
+    {
+    iStartIndex = aStartIndex;
+    }
+    
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::StartIndex
+// Returns start index
+// --------------------------------------------------------------------------
+inline TInt CUpnpAVBrowseRequest::StartIndex()
+    {
+    return iStartIndex;
+    }
+
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::SetRequestedCount
+// Sets requested count
+// --------------------------------------------------------------------------
+inline void CUpnpAVBrowseRequest::SetRequestedCount( TInt aRequestedCount )
+    {
+    iRequestedCount = aRequestedCount;
+    }
+
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::RequestedCount
+// Returns requested count
+// --------------------------------------------------------------------------
+inline TInt CUpnpAVBrowseRequest::RequestedCount()
+    {
+    return iRequestedCount;
+    }
+
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::SetSortCriteriaL
+// Sets sort criteria
+// --------------------------------------------------------------------------
+inline void CUpnpAVBrowseRequest::SetSortCriteriaL(
+    const TDesC8& aSortCriteria )
+    {
+    HBufC8* tempBuf = aSortCriteria.AllocL();
+    delete iSortCriteria;
+    iSortCriteria = tempBuf;    
+    }
+    
+// --------------------------------------------------------------------------
+// CUpnpAVBrowseRequest::SortCriteria
+// Returns sort criteria
+// --------------------------------------------------------------------------
+inline const TDesC8& CUpnpAVBrowseRequest::SortCriteria()
+    {
+    if( iSortCriteria )
+        {
+        return *iSortCriteria;
+        }
+    else
+        {
+        return KNullDesC8;
+        }
+    }
+
+// End of File
+