diff -r 000000000000 -r 7f85d04be362 upnpmediaserver/avobjects/src/upnpbrowsecriteria.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upnpmediaserver/avobjects/src/upnpbrowsecriteria.cpp Thu Dec 17 08:52:00 2009 +0200 @@ -0,0 +1,225 @@ +/** @file +* Copyright (c) 2005-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: UPnPBrowseCriteria implementation +* +*/ + + +// INCLUDE FILES +#include "upnpbrowsecriteria.h" +#include "upnpattribute.h" +#include "upnpobject.h" + + + + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CUpnpBrowseCriteria::ConstructL(const TDesC8& aFilter) +{ + iFilter = aFilter.AllocL(); +} + +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::NewLC +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +EXPORT_C CUpnpBrowseCriteria* CUpnpBrowseCriteria::NewLC(const TDesC8& aFilter) +{ + CUpnpBrowseCriteria* self = new( ELeave ) CUpnpBrowseCriteria; + CleanupStack::PushL( self ); + self->ConstructL(aFilter); + return self; +} + +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::NewLC +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +EXPORT_C CUpnpBrowseCriteria* CUpnpBrowseCriteria::NewL(const TDesC8& aFilter) +{ + CUpnpBrowseCriteria* self = NewLC(aFilter); + CleanupStack::Pop(self); + return self; +} + +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::CUpnpBrowseCriteria +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CUpnpBrowseCriteria::CUpnpBrowseCriteria() + { + } + +// Destructor +CUpnpBrowseCriteria::~CUpnpBrowseCriteria() + { + delete iFilter; + } + +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::SetFilterL +// Sets filter. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CUpnpBrowseCriteria::SetFilterL( const TDesC8& aFilter ) + { + HBufC8* tmp = aFilter.AllocL(); + delete iFilter; + iFilter = tmp; + } + +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::GetFilter +// Returns filter. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC8& CUpnpBrowseCriteria::Filter() const + { + return *iFilter; + } + +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::SetRequestCount +// Sets request count. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CUpnpBrowseCriteria::SetRequestedCount( TInt aRequestedCount ) + { + iRequestedCount=aRequestedCount; + } + +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::RequestedCount +// Returns requested count +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CUpnpBrowseCriteria::RequestedCount() const + { + return iRequestedCount; + } + +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::SetStartingIndex +// Sets starting index. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CUpnpBrowseCriteria::SetStartingIndex( TInt aStartingIndex) + { + iStartingIndex=aStartingIndex; + } + +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::StartingIndex +// Returns starting index +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CUpnpBrowseCriteria::StartingIndex() const + { + return iStartingIndex; + } + +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::CopyL +// Copies the content from parameter CUpnpElement to this +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C void CUpnpBrowseCriteria::CopyL( const CUpnpBrowseCriteria& aBrowseCriteria ) + { + CBufFlat* buffer = CBufFlat::NewL( sizeof( aBrowseCriteria ) ); + CleanupStack::PushL( buffer ); + RBufWriteStream outStream; + outStream.Open( *buffer ); + CleanupClosePushL( outStream ); + RBufReadStream inStream; + inStream.Open( *buffer ); + CleanupClosePushL( inStream ); + aBrowseCriteria.ExternalizeL( outStream ); + InternalizeL( inStream ); + CleanupStack::PopAndDestroy( 3 ); // inStream && outStream && buffer + } + +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::ExternalizeL +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +EXPORT_C void CUpnpBrowseCriteria::ExternalizeL( RWriteStream& aStream ) const + { + aStream << *iFilter; + aStream.WriteInt32L(RequestedCount()); + aStream.WriteInt32L(StartingIndex()); + } + +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::InternalizeL +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +EXPORT_C void CUpnpBrowseCriteria::InternalizeL( RReadStream& aStream ) + { + + delete iFilter; + iFilter = NULL; + iFilter = HBufC8::NewL( aStream,KMaxUpnpObjStringLen); + + iRequestedCount=aStream.ReadInt32L(); + iStartingIndex=aStream.ReadInt32L(); + } +// ----------------------------------------------------------------------------- +// CUpnpBrowseCriteria::ToDes8L +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +EXPORT_C HBufC8* CUpnpBrowseCriteria::ToDes8L() const +{ + // serialize object + CBufFlat* buf = CBufFlat::NewL(KDefBufferGranularity); + CleanupStack::PushL(buf); + RBufWriteStream stream(*buf); + CleanupClosePushL(stream); + + stream << *this; + + // create heap descriptor + HBufC8* hbuf = HBufC8::NewLC(buf->Size()); + TPtr8 ptr(hbuf->Des()); + buf->Read(0, ptr, buf->Size()); + + // clean up + CleanupStack::Pop(hbuf); + CleanupStack::PopAndDestroy(&stream); + CleanupStack::PopAndDestroy(buf); + + return hbuf; +} +// End of File