omadrm/drmplugins/drmrohandler/src/CRoHandler.cpp
branchRCL_3
changeset 32 457cd4423b8c
parent 18 8a03a285ab14
child 71 1221b68b8a5f
equal deleted inserted replaced
25:04da681812a9 32:457cd4423b8c
    40 #include <data_caging_path_literals.hrh>    // KDC_MTM_RESOURCE_DIR
    40 #include <data_caging_path_literals.hrh>    // KDC_MTM_RESOURCE_DIR
    41 #include <uriutils.h>                       // UriUtils and so on
    41 #include <uriutils.h>                       // UriUtils and so on
    42 #include <PushMtmUi.rsg>                    // for R_PUSHMISC_UNK_SENDER
    42 #include <PushMtmUi.rsg>                    // for R_PUSHMISC_UNK_SENDER
    43 #include <RoHandler.rsg>                    // for R_QTN_DRM_MGR_INB_TITLE
    43 #include <RoHandler.rsg>                    // for R_QTN_DRM_MGR_INB_TITLE
    44 #include <sysutil.h>                        // Disk space checking
    44 #include <sysutil.h>                        // Disk space checking
       
    45 #include <featmgr.h>                        // Feature Manager
    45 
    46 
    46 #include "CRoHandler.h"
    47 #include "CRoHandler.h"
    47 #include "RoMtmCli.h"                       // for CRightsObjectMtmClient
    48 #include "RoMtmCli.h"                       // for CRightsObjectMtmClient
    48 #include "RoapSyncWrapper.h"
    49 #include "RoapSyncWrapper.h"
    49 
    50 
   396         (
   397         (
   397         //None.
   398         //None.
   398         )
   399         )
   399     : CPushHandlerBase(),
   400     : CPushHandlerBase(),
   400     iFirstTime( ETrue ), iPushMsg( NULL ), iMsvId( NULL ),
   401     iFirstTime( ETrue ), iPushMsg( NULL ), iMsvId( NULL ),
   401     iPutRightsToInbox( ETrue )
   402     iPutRightsToInbox( ETrue ), iFeatureManagerFound( EFalse )
   402     {
   403     {
   403     }
   404     }
   404 
   405 
   405 /*
   406 /*
   406 -----------------------------------------------------------------------------
   407 -----------------------------------------------------------------------------
   426     TRAPD( r, WriteL( _L8( "ConstructL" ) ) );
   427     TRAPD( r, WriteL( _L8( "ConstructL" ) ) );
   427 #endif
   428 #endif
   428 
   429 
   429     CRepository* repository( NULL );
   430     CRepository* repository( NULL );
   430     TInt err( KErrNone );
   431     TInt err( KErrNone );
   431 
   432     TInt ret( KErrNone );
       
   433 
       
   434     TRAP( ret, FeatureManager::InitializeLibL() );
       
   435     if ( !ret )
       
   436         {
       
   437         iFeatureManagerFound = ETrue;
       
   438         }   
       
   439     
   432     User::LeaveIfError( iFs.Connect() );
   440     User::LeaveIfError( iFs.Connect() );
   433 
   441 
   434     // create drm
   442     // create drm
   435     iMessageParser = CDRMMessageParser::NewL();
   443     iMessageParser = CDRMMessageParser::NewL();
   436 
   444 
   508 
   516 
   509     iMsvId = NULL;
   517     iMsvId = NULL;
   510 
   518 
   511     // session must be deleted last (and constructed first)
   519     // session must be deleted last (and constructed first)
   512     delete iSession;
   520     delete iSession;
   513 
   521     
       
   522     if ( iFeatureManagerFound )
       
   523         {
       
   524         FeatureManager::UnInitializeLib();
       
   525         }
       
   526         
   514 #ifdef _DRM_TESTING
   527 #ifdef _DRM_TESTING
   515     TRAP( r, WriteL( _L8( "~CRoHandler-End" ) ) );
   528     TRAP( r, WriteL( _L8( "~CRoHandler-End" ) ) );
   516 #endif
   529 #endif
   517     }
   530     }
   518 
   531 
   655     iMsgType = CheckMessageTypeL();
   668     iMsgType = CheckMessageTypeL();
   656     switch( iMsgType )
   669     switch( iMsgType )
   657         {
   670         {
   658         case EOma1Ro:
   671         case EOma1Ro:
   659             {
   672             {
   660             HandleRightsMessageL();
   673             if ( iFeatureManagerFound && FeatureManager::FeatureSupported(
       
   674                     KFeatureIdFfOmadrm1FullSupport ) )
       
   675                 {
       
   676                 HandleRightsMessageL();
       
   677                 }
   661             break;
   678             break;
   662             }
   679             }
   663 #ifdef __DRM_OMA2
   680 #ifdef __DRM_OMA2
   664         case EOma2RoapTrigger:
   681         case EOma2RoapTrigger:
   665         case EOma2RoapTriggerRoAcquisition:
   682         case EOma2RoapTriggerRoAcquisition:
   666             {
   683             if ( iFeatureManagerFound && FeatureManager::FeatureSupported(
   667             HandleRoapTriggerL();
   684                     KFeatureIdFfOmadrm2Support ) )
       
   685                 {
       
   686                 HandleRoapTriggerL();
       
   687                 }
       
   688             break;    
       
   689         case EOma2RoapTriggerMetering:
       
   690             if ( iFeatureManagerFound && FeatureManager::FeatureSupported( 
       
   691                     KFeatureIdFfOmadrm2Support ) )
       
   692                 {
       
   693                 HandleMeteringTriggerSilentlyL();
       
   694                 }
   668             break;
   695             break;
   669             }
   696         case EOma2RoapPdu:
   670         case EOma2RoapTriggerMetering:
   697             if ( iFeatureManagerFound && FeatureManager::FeatureSupported(
   671             {
   698                     KFeatureIdFfOmadrm2Support ) )
   672             HandleMeteringTriggerSilentlyL();
   699                 {
       
   700                 HandleRoapPduL();
       
   701                 }
   673             break;
   702             break;
   674             }
       
   675         case EOma2RoapPdu:
       
   676             {
       
   677             HandleRoapPduL();
       
   678             break;
       
   679             }
       
   680 #endif
   703 #endif
   681         default:
   704         default:
   682             {
   705             {
   683             User::Leave( KErrNotSupported );
   706             User::Leave( KErrNotSupported );
   684             }
   707             }
  1398         }
  1421         }
  1399 
  1422 
  1400     switch( iMsgType )
  1423     switch( iMsgType )
  1401         {
  1424         {
  1402         case EOma1Ro:
  1425         case EOma1Ro:
  1403             {
  1426             {            
  1404             HandleRightsMessageL();
  1427             if ( iFeatureManagerFound && FeatureManager::FeatureSupported(
       
  1428                     KFeatureIdFfOmadrm1FullSupport ) )
       
  1429                 {
       
  1430                 HandleRightsMessageL();
       
  1431                 }
  1405             break;
  1432             break;
  1406             }
  1433             }
  1407 #ifdef __DRM_OMA2
  1434 #ifdef __DRM_OMA2
  1408         case EOma2RoapTrigger:
  1435         case EOma2RoapTrigger:
  1409         case EOma2RoapTriggerRoAcquisition:
  1436         case EOma2RoapTriggerRoAcquisition:
  1410             {
  1437             if ( iFeatureManagerFound && FeatureManager::FeatureSupported(
  1411             HandleRoapTriggerL();
  1438                     KFeatureIdFfOmadrm2Support ) )
       
  1439                 {
       
  1440                 HandleRoapTriggerL();
       
  1441                 }
  1412             break;
  1442             break;
  1413             }
       
  1414         case EOma2RoapPdu:
  1443         case EOma2RoapPdu:
  1415             {
  1444             if ( iFeatureManagerFound && FeatureManager::FeatureSupported(
  1416             HandleRoapPduL();
  1445                     KFeatureIdFfOmadrm2Support ) )
       
  1446                 {
       
  1447                 HandleRoapPduL();
       
  1448                 }
  1417             break;
  1449             break;
  1418             }
       
  1419 #endif
  1450 #endif
  1420         default:
  1451         default:
  1421             {
  1452             {
  1422             User::Leave( KErrNotSupported );
  1453             User::Leave( KErrNotSupported );
  1423             }
  1454             }