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