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