contentmgmt/referencedrmagent/RefTestAgent/RTAServer/Client/rtamanager.cpp
changeset 15 da2ae96f639b
parent 8 35751d3474b7
child 33 cf642210ecb7
--- a/contentmgmt/referencedrmagent/RefTestAgent/RTAServer/Client/rtamanager.cpp	Fri Oct 02 13:15:59 2009 +0300
+++ b/contentmgmt/referencedrmagent/RefTestAgent/RTAServer/Client/rtamanager.cpp	Mon Oct 12 10:17:04 2009 +0300
@@ -731,3 +731,95 @@
 		User::LeaveIfError(SendReceive(ENoEnforceManagerDisplayManagementInfo, TIpcArgs()));
 		}
 	}
+
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT     
+      
+EXPORT_C TInt RRtaManager::GetAttribute(const TDesC8& aHeaderData, TInt aAttribute, TInt& aValue) const     
+    {     
+    TPckg<TInt> valuePkg(aValue);     
+    TInt result = SendReceive(EWMDRMGetAttribute, TIpcArgs(&aHeaderData, aAttribute, &valuePkg));     
+    return result;     
+    }     
+         
+EXPORT_C TInt RRtaManager::GetAttributeSet(const TDesC8& aHeaderData, ContentAccess::RAttributeSet& aAttributeSet) const     
+    {     
+    TRAPD(err, GetAttributeSetL (aHeaderData, aAttributeSet));     
+    return err;     
+    }     
+         
+EXPORT_C TInt RRtaManager::GetStringAttribute(const TDesC8& aHeaderData, TInt aAttribute, TDes& aValue) const     
+    {     
+    TInt result = SendReceive(EWMDRMGetStringAttribute, TIpcArgs(&aHeaderData, aAttribute, &aValue));     
+    return result;     
+    }     
+      
+EXPORT_C TInt RRtaManager::GetStringAttributeSet(const TDesC8& aHeaderData, ContentAccess::RStringAttributeSet& aStringAttributeSet) const     
+    {     
+    TRAPD(err, GetStringAttributeSetL(aHeaderData, aStringAttributeSet));     
+    return err;     
+    }     
+         
+void RRtaManager::GetAttributeSetL(const TDesC8& aHeaderData, ContentAccess::RAttributeSet& aAttributeSet) const     
+    {     
+    // dynamic buffer since we don't know in advance the size required     
+    CBufFlat* buffer = CBufFlat::NewL(KDefaultBufferSize);     
+    CleanupStack::PushL(buffer);     
+         
+    RBufWriteStream stream(*buffer);     
+    CleanupClosePushL(stream);     
+         
+    // write the directory to the stream     
+    aAttributeSet.ExternalizeL(stream);     
+    CleanupStack::PopAndDestroy(&stream);     
+         
+    // Create an HBufC8 from the stream buf's length, and copy      
+    // the stream buffer into this descriptor     
+    HBufC8* transferBuffer = HBufC8::NewLC(buffer->Size() * 15);     
+    TPtr8 ptr = buffer->Ptr(0);     
+    transferBuffer->Des().Copy(ptr);     
+    TPtr8 transferPtr = transferBuffer->Des();     
+         
+    User::LeaveIfError(SendReceive(EWMDRMGetAttributeSet, TIpcArgs(&aHeaderData, &transferPtr)));     
+      
+    // read in the attribute values from the buffer     
+    RDesReadStream readStream(transferPtr);     
+    CleanupClosePushL(readStream);     
+    aAttributeSet.InternalizeL(readStream);     
+    CleanupStack::PopAndDestroy(&readStream);     
+         
+    CleanupStack::PopAndDestroy(2, buffer);     
+    }     
+         
+void RRtaManager::GetStringAttributeSetL(const TDesC8& aHeaderData, ContentAccess::RStringAttributeSet& aStringAttributeSet) const     
+    {     
+    // dynamic buffer since we don't know in advance the size required     
+    CBufFlat* buffer = CBufFlat::NewL(KDefaultBufferSize);     
+    CleanupStack::PushL(buffer);     
+         
+    RBufWriteStream stream(*buffer);     
+    CleanupClosePushL(stream);     
+         
+    // write the directory to the stream     
+    aStringAttributeSet.ExternalizeL(stream);     
+    CleanupStack::PopAndDestroy(&stream);     
+         
+    // Create an HBufC8 from the stream buf's length, and copy      
+    // the stream buffer into this descriptor     
+    HBufC8* transferBuffer = HBufC8::NewLC(buffer->Size()*15);     
+    TPtr8 ptr = buffer->Ptr(0);     
+    transferBuffer->Des().Copy(ptr);     
+    TPtr8 transferPtr = transferBuffer->Des();     
+         
+    User::LeaveIfError(SendReceive(EWMDRMGetStringAttributeSet, TIpcArgs(&aHeaderData, &transferPtr)));     
+         
+    // read in the attribute values from the buffer     
+    RDesReadStream readStream(transferPtr);     
+    CleanupClosePushL(readStream);     
+    aStringAttributeSet.InternalizeL(readStream);     
+    CleanupStack::PopAndDestroy(&readStream);     
+                     
+    CleanupStack::PopAndDestroy(2, buffer);     
+    }     
+         
+#endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT 
+