upnpavcontroller/upnpavcontrollerclient/inc/upnpavrequest.inl
changeset 0 7f85d04be362
--- /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 <upnpitem.h>
+
+// 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
+