diff -r 000000000000 -r 7f85d04be362 upnpavcontroller/upnpavcontrollerclient/inc/upnpavrequest.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upnpavcontroller/upnpavcontrollerclient/inc/upnpavrequest.inl Thu Dec 17 08:52:00 2009 +0200 @@ -0,0 +1,330 @@ +/* +* 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 for client-server comms +* +*/ + + + + + + +// INCLUDE FILES + +#include "upnpavrequest.h" + +#include + +// CONSTANTS +_LIT( KURIRequestPanicText, "CUpnpAVRequest" ); +const TInt KMaxStringLen = 256; +const TInt KMaxStringLenLong = 1024; +const TInt KBufferGranularity = 100; + +// ============================ MEMBER FUNCTIONS ============================ + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::CUpnpAVRequest +// C++ default constructor can NOT contain any code, that +// might leave. +// -------------------------------------------------------------------------- +inline CUpnpAVRequest::CUpnpAVRequest() + { + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::ConstructL +// Symbian 2nd phase constructor can leave. +// -------------------------------------------------------------------------- +inline void CUpnpAVRequest::ConstructL() + { + iId = KNullDesC8().AllocL(); + iUuid = KNullDesC8().AllocL(); + iFilePath = KNullDesC().AllocL();; + iURI = KNullDesC8().AllocL(); + //iItem = CUpnpItem::NewL(); + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::NewL +// Two-phased constructor. +// -------------------------------------------------------------------------- +inline CUpnpAVRequest* CUpnpAVRequest::NewL() + { + CUpnpAVRequest* self = NewLC(); + CleanupStack::Pop( self ); + return self; + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::NewLC +// Two-phased constructor. +// -------------------------------------------------------------------------- +inline CUpnpAVRequest* CUpnpAVRequest::NewLC() + { + CUpnpAVRequest* self = new( ELeave ) + CUpnpAVRequest; + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::~CUpnpAVRequest +// Destructor +// -------------------------------------------------------------------------- +inline CUpnpAVRequest::~CUpnpAVRequest() + { + delete iId; + delete iUuid; + delete iFilePath; + delete iURI; + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::ExternalizeL +// Externatizes object +// -------------------------------------------------------------------------- +inline void CUpnpAVRequest::ExternalizeL( RWriteStream& aStream ) const + { + aStream << *iId; + aStream << *iUuid; + aStream << *iFilePath; + aStream << *iURI; + aStream.WriteInt16L( (TInt)iRequiresBrowse ); + aStream.WriteInt16L( (TInt)iMemoryType ); + aStream.WriteInt16L( (TInt)iFileSharing ); + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::InternalizeL +// Internalizes object +// -------------------------------------------------------------------------- +inline void CUpnpAVRequest::InternalizeL( RReadStream& aStream ) + { + delete iId; iId = NULL; + iId = HBufC8::NewL( aStream, KMaxStringLen ); + + delete iUuid; iUuid = NULL; + iUuid = HBufC8::NewL( aStream, KMaxStringLen ); + + delete iFilePath; iFilePath = NULL; + iFilePath = HBufC::NewL( aStream, KMaxStringLen ); + + delete iURI; iURI = NULL; + iURI = HBufC8::NewL( aStream, KMaxStringLenLong ); + + iRequiresBrowse = (TBool)aStream.ReadInt16L(); + + iMemoryType = (MUPnPAVBrowsingSession::TMemoryType)aStream.ReadInt16L(); + + iFileSharing = (MUPnPAVBrowsingSession::TFileSharing) + aStream.ReadInt16L(); + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::ToDes8L +// Externalizes object to a heap descriptor +// -------------------------------------------------------------------------- +inline HBufC8* CUpnpAVRequest::ToDes8L() const + { + // serialize object + CBufFlat* tempFlatBuf = CBufFlat::NewL( KBufferGranularity ); + 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; + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::SetIdL +// Sets id +// -------------------------------------------------------------------------- +inline void CUpnpAVRequest::SetIdL( const TDesC8& aId ) + { + HBufC8* tempBuf = aId.AllocL(); + delete iId; + iId = tempBuf; + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::Id +// Returns id +// -------------------------------------------------------------------------- +inline const TDesC8& CUpnpAVRequest::Id() + { + if( iId ) + { + return *iId; + } + else + { + return KNullDesC8; + } + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::SetUuidL +// Sets uuid +// -------------------------------------------------------------------------- +inline void CUpnpAVRequest::SetUuidL( const TDesC8& aUuid ) + { + HBufC8* tempBuf = aUuid.AllocL(); + delete iUuid; + iUuid = tempBuf; + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::Uuid +// Returns uuid +// -------------------------------------------------------------------------- +inline const TDesC8& CUpnpAVRequest::Uuid() + { + if( iUuid ) + { + return *iUuid; + } + else + { + return KNullDesC8; + } + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::SetFilePathL +// Sets filepath +// -------------------------------------------------------------------------- +inline void CUpnpAVRequest::SetFilePathL( const TDesC& aFilePath ) + { + HBufC* tempBuf = aFilePath.AllocL(); + delete iFilePath; + iFilePath = tempBuf; + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::FilePath +// Returns filepath +// -------------------------------------------------------------------------- +inline const TDesC& CUpnpAVRequest::FilePath() + { + if( iFilePath ) + { + return *iFilePath; + } + else + { + return KNullDesC; + } + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::SetURIL +// Sets URI +// -------------------------------------------------------------------------- +inline void CUpnpAVRequest::SetURIL( const TDesC8& aURI ) + { + HBufC8* tempBuf = aURI.AllocL(); + delete iURI; + iURI = tempBuf; + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::URI +// Returns URI +// -------------------------------------------------------------------------- +inline const TDesC8& CUpnpAVRequest::URI() + { + if( iURI ) + { + return *iURI; + } + else + { + return KNullDesC8; + } + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::SetRequiresBrowse +// +// -------------------------------------------------------------------------- +inline void CUpnpAVRequest::SetRequiresBrowse( TBool aBrowse ) + { + iRequiresBrowse = aBrowse; + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::RequiresBrowse +// +// -------------------------------------------------------------------------- +inline TBool CUpnpAVRequest::RequiresBrowse() + { + return iRequiresBrowse; + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::SetMemoryType +// Sets used memory type +// -------------------------------------------------------------------------- +inline void CUpnpAVRequest::SetMemoryType( + MUPnPAVBrowsingSession::TMemoryType aMemoryType ) + { + iMemoryType = aMemoryType; + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::MemoryType +// Returns used memory type +// -------------------------------------------------------------------------- +inline MUPnPAVBrowsingSession::TMemoryType CUpnpAVRequest::MemoryType() + { + return iMemoryType; + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::SetFileSharing +// Sets the state of filesharing +// -------------------------------------------------------------------------- +inline void CUpnpAVRequest::SetFileSharing( + MUPnPAVBrowsingSession::TFileSharing aFileSharing ) + { + iFileSharing = aFileSharing; + } + +// -------------------------------------------------------------------------- +// CUpnpAVRequest::FileSharing +// Returns the state of filesharing +// -------------------------------------------------------------------------- +inline MUPnPAVBrowsingSession::TFileSharing CUpnpAVRequest::FileSharing() + { + return iFileSharing; + } + +// End of File +