contentmgmt/referencedrmagent/RefTestAgent/RTAServer/Server/rtamanagerhandler.cpp
changeset 15 da2ae96f639b
parent 8 35751d3474b7
child 29 ece3df019add
equal deleted inserted replaced
10:afc583cfa176 15:da2ae96f639b
    66 	
    66 	
    67 CRtaManagerHandler::~CRtaManagerHandler()
    67 CRtaManagerHandler::~CRtaManagerHandler()
    68 	{
    68 	{
    69 	delete iArchive;
    69 	delete iArchive;
    70 	iFile.Close();
    70 	iFile.Close();
       
    71 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT     
       
    72     delete iWmdrmContentObject;     
       
    73 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT 
    71 	}
    74 	}
    72 
    75 
    73 void CRtaManagerHandler::ServiceL(const RMessage2& aMessage)
    76 void CRtaManagerHandler::ServiceL(const RMessage2& aMessage)
    74 //
    77 //
    75 // Handle a client request.
    78 // Handle a client request.
   168 		break;
   171 		break;
   169 	case EManagerDisplayManagementInfo:
   172 	case EManagerDisplayManagementInfo:
   170 	case ENoEnforceManagerDisplayManagementInfo:
   173 	case ENoEnforceManagerDisplayManagementInfo:
   171 		DisplayManagementInfoL(aMessage);
   174 		DisplayManagementInfoL(aMessage);
   172 		break;
   175 		break;
       
   176 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
       
   177     case EWMDRMGetAttribute:     
       
   178     case ENoEnforceWMDRMGetAttribute:     
       
   179         GetWMDRMAttributeL(aMessage);     
       
   180         break;     
       
   181              
       
   182     case EWMDRMGetAttributeSet:     
       
   183     case ENoEnforceWMDRMGetAttributeSet:     
       
   184         GetWMDRMAttributeSetL(aMessage);     
       
   185         break;     
       
   186          
       
   187     case EWMDRMGetStringAttribute:     
       
   188     case ENoEnforceWMDRMGetStringAttribute:     
       
   189         GetWMDRMStringAttributeL(aMessage);     
       
   190         break;     
       
   191              
       
   192     case EWMDRMGetStringAttributeSet:     
       
   193     case ENoEnforceWMDRMGetStringAttributeSet:     
       
   194         GetWMDRMStringAttributeSetL(aMessage);     
       
   195         break;     
       
   196 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT 
   173 	default:
   197 	default:
   174 		CRtaSession::PanicClient(aMessage,EPanicIllegalFunction);
   198 		CRtaSession::PanicClient(aMessage,EPanicIllegalFunction);
   175 		break;
   199 		break;
   176 		}
   200 		}
   177 	}
   201 	}
   543 
   567 
   544 void CRtaManagerHandler::DisplayManagementInfoL(const RMessage2& /*aMessage*/)
   568 void CRtaManagerHandler::DisplayManagementInfoL(const RMessage2& /*aMessage*/)
   545 	{
   569 	{
   546 	User::Leave(KErrCANotSupported);
   570 	User::Leave(KErrCANotSupported);
   547 	}
   571 	}
       
   572 
       
   573 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT     
       
   574       
       
   575 void CRtaManagerHandler::OpenWmdrmContentObjectL(const RMessage2& aMessage, TInt aHeaderParameter)     
       
   576     {     
       
   577     HBufC8* headerData = ReadDesC8LC(aMessage, aHeaderParameter);        
       
   578     iWmdrmContentObject = CWmdrmContentParser::NewL(*headerData);     
       
   579          
       
   580     CleanupStack::PopAndDestroy(headerData);     
       
   581     }     
       
   582       
       
   583 void CRtaManagerHandler::GetWMDRMAttributeL(const RMessage2& aMessage)     
       
   584     {     
       
   585     OpenWmdrmContentObjectL(aMessage, 0);     
       
   586          
       
   587     TInt attribute = aMessage.Int1();     
       
   588     TInt value;     
       
   589     TPckg<TInt> valuePckg(value);     
       
   590       
       
   591     User::LeaveIfError(iWmdrmContentObject->GetAttribute(attribute, value));     
       
   592     WriteL(aMessage, 2, valuePckg);     
       
   593     }     
       
   594          
       
   595 void CRtaManagerHandler::GetWMDRMStringAttributeL(const RMessage2& aMessage)     
       
   596     {     
       
   597     OpenWmdrmContentObjectL(aMessage, 0);     
       
   598       
       
   599     TInt attribute = aMessage.Int1();     
       
   600     HBufC* value = ReadDes16LC(aMessage, 2);     
       
   601     TPtr valuePtr = value->Des();     
       
   602       
       
   603     User::LeaveIfError(iWmdrmContentObject->GetStringAttribute(attribute, valuePtr));     
       
   604     WriteL(aMessage, 2, valuePtr);     
       
   605          
       
   606     CleanupStack::PopAndDestroy(value);     
       
   607     }     
       
   608          
       
   609 void CRtaManagerHandler::GetWMDRMAttributeSetL(const RMessage2& aMessage)     
       
   610     {     
       
   611     OpenWmdrmContentObjectL(aMessage, 0);     
       
   612          
       
   613     RAttributeSet attributeSet;     
       
   614     CleanupClosePushL(attributeSet);     
       
   615          
       
   616     HBufC8* value = ReadDes8LC(aMessage, 1);     
       
   617     TPtr8 valuePtr = value->Des();     
       
   618     RDesReadStream readStream(valuePtr);     
       
   619     CleanupClosePushL(readStream);     
       
   620          
       
   621     attributeSet.InternalizeL(readStream);     
       
   622     CleanupStack::PopAndDestroy(2, value);     
       
   623          
       
   624     iWmdrmContentObject->GetAttributeSet(attributeSet);     
       
   625       
       
   626     // Write the object out to a buffer, send to client     
       
   627     CBufFlat* buf = CBufFlat::NewL(50);     
       
   628     CleanupStack::PushL(buf);     
       
   629     // create write stream     
       
   630     RBufWriteStream writeStream(*buf);     
       
   631     CleanupClosePushL(writeStream);     
       
   632          
       
   633     // write the directory to the stream     
       
   634     attributeSet.ExternalizeL(writeStream);     
       
   635     CleanupStack::PopAndDestroy(&writeStream);     
       
   636          
       
   637     TPtr8 bufPtr = buf->Ptr(0);     
       
   638     WriteL(aMessage, 1, bufPtr);     
       
   639              
       
   640     CleanupStack::PopAndDestroy(2, &attributeSet); // buf, attributeSet     
       
   641     }     
       
   642          
       
   643 void CRtaManagerHandler::GetWMDRMStringAttributeSetL(const RMessage2& aMessage)     
       
   644     {     
       
   645     OpenWmdrmContentObjectL(aMessage, 0);     
       
   646          
       
   647     RStringAttributeSet attributeSet;     
       
   648     CleanupClosePushL(attributeSet);     
       
   649          
       
   650     HBufC8* value = ReadDes8LC(aMessage, 1);     
       
   651     TPtr8 valuePtr = value->Des();     
       
   652     RDesReadStream readStream(valuePtr);     
       
   653     CleanupClosePushL(readStream);     
       
   654          
       
   655     attributeSet.InternalizeL(readStream);     
       
   656     CleanupStack::PopAndDestroy(2, value);     
       
   657          
       
   658     iWmdrmContentObject->GetStringAttributeSet(attributeSet);     
       
   659       
       
   660     // Write the object out to a buffer, send to client     
       
   661     CBufFlat* buf = CBufFlat::NewL(50);     
       
   662     CleanupStack::PushL(buf);     
       
   663     // create write stream     
       
   664     RBufWriteStream writeStream(*buf);     
       
   665     CleanupClosePushL(writeStream);     
       
   666          
       
   667     // write the directory to the stream     
       
   668     attributeSet.ExternalizeL(writeStream);     
       
   669     CleanupStack::PopAndDestroy(&writeStream);     
       
   670          
       
   671     TPtr8 bufPtr = buf->Ptr(0);     
       
   672     WriteL(aMessage, 1, bufPtr);     
       
   673              
       
   674     CleanupStack::PopAndDestroy(2, &attributeSet); // buf, attributeSet     
       
   675     }     
       
   676       
       
   677 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT