terminalsecurity/SCP/DmEventNotifier/src/SwApplicationService.cpp
changeset 5 3f7d9dbe57c8
parent 0 b497e44ab2fc
equal deleted inserted replaced
4:958eca8527dd 5:3f7d9dbe57c8
    23 // ---------------------------------------------------------------------------
    23 // ---------------------------------------------------------------------------
    24 // CSwApplicationService::NewL
    24 // CSwApplicationService::NewL
    25 // ---------------------------------------------------------------------------
    25 // ---------------------------------------------------------------------------
    26 CSwApplicationService* CSwApplicationService::NewL()
    26 CSwApplicationService* CSwApplicationService::NewL()
    27     {
    27     {
    28     FLOG(_L("CSwApplicationService::NewL >>"));
    28     _DMEVNT_DEBUG(_L("CSwApplicationService::NewL >>"));
    29 
    29 
    30     CSwApplicationService* self = new (ELeave) CSwApplicationService(KSwPSKeyCondition);
    30     CSwApplicationService* self = new (ELeave) CSwApplicationService(KSwPSKeyCondition);
    31     CleanupStack::PushL(self);
    31     CleanupStack::PushL(self);
    32 
    32 
    33     self->ConstructL();
    33     self->ConstructL();
    34 
    34 
    35     CleanupStack::Pop(self);
    35     CleanupStack::Pop(self);
    36     FLOG(_L("CSwApplicationService::NewL <<"));
    36     _DMEVNT_DEBUG(_L("CSwApplicationService::NewL <<"));
    37     return self;
    37     return self;
    38     }
    38     }
    39 
    39 
    40 // ---------------------------------------------------------------------------
    40 // ---------------------------------------------------------------------------
    41 // CSwApplicationService::NewLC
    41 // CSwApplicationService::NewLC
    42 // ---------------------------------------------------------------------------
    42 // ---------------------------------------------------------------------------
    43 CSwApplicationService* CSwApplicationService::NewLC()
    43 CSwApplicationService* CSwApplicationService::NewLC()
    44     {
    44     {
    45     FLOG(_L("CSwApplicationService::NewLC >>"));
    45     _DMEVNT_DEBUG(_L("CSwApplicationService::NewLC >>"));
    46 
    46 
    47     CSwApplicationService* self = CSwApplicationService::NewL();
    47     CSwApplicationService* self = CSwApplicationService::NewL();
    48     CleanupStack::PushL(self);
    48     CleanupStack::PushL(self);
    49 
    49 
    50     FLOG(_L("CSwApplicationService::NewLC <<"));
    50     _DMEVNT_DEBUG(_L("CSwApplicationService::NewLC <<"));
    51     return self;
    51     return self;
    52     }
    52     }
    53 
    53 
    54 // ---------------------------------------------------------------------------
    54 // ---------------------------------------------------------------------------
    55 // CSwApplicationService::ConstructL
    55 // CSwApplicationService::ConstructL
    56 // ---------------------------------------------------------------------------
    56 // ---------------------------------------------------------------------------
    57 void CSwApplicationService::ConstructL()
    57 void CSwApplicationService::ConstructL()
    58     {
    58     {
    59     FLOG(_L("CSwApplicationService::ConstructL >>"));
    59     _DMEVNT_DEBUG(_L("CSwApplicationService::ConstructL >>"));
    60 
    60 
    61     FLOG(_L("CSwApplicationService::ConstructL <<"));
    61     _DMEVNT_DEBUG(_L("CSwApplicationService::ConstructL <<"));
    62     }
    62     }
    63 
    63 
    64 // ---------------------------------------------------------------------------
    64 // ---------------------------------------------------------------------------
    65 // CSwApplicationService::CSwApplicationService
    65 // CSwApplicationService::CSwApplicationService
    66 // ---------------------------------------------------------------------------
    66 // ---------------------------------------------------------------------------
    67 CSwApplicationService::CSwApplicationService(const TPSKeyCondition& aPSKeyCondition):CDmEventServiceBase(aPSKeyCondition, ESoftwareService)
    67 CSwApplicationService::CSwApplicationService(const TPSKeyCondition& aPSKeyCondition):CDmEventServiceBase(aPSKeyCondition, ESoftwareService)
    68         {
    68         {
    69         FLOG(_L("CSwApplicationService::CSwApplicationService >>"));
    69         _DMEVNT_DEBUG(_L("CSwApplicationService::CSwApplicationService >>"));
    70 
    70 
    71         FLOG(_L("CSwApplicationService::CSwApplicationService <<"));
    71         _DMEVNT_DEBUG(_L("CSwApplicationService::CSwApplicationService <<"));
    72         }
    72         }
    73 
    73 
    74 // ---------------------------------------------------------------------------
    74 // ---------------------------------------------------------------------------
    75 // CSwApplicationService::~CSwApplicationService
    75 // CSwApplicationService::~CSwApplicationService
    76 // ---------------------------------------------------------------------------
    76 // ---------------------------------------------------------------------------
    82 // ---------------------------------------------------------------------------
    82 // ---------------------------------------------------------------------------
    83 // CSwApplicationService::IsKeyValid
    83 // CSwApplicationService::IsKeyValid
    84 // ---------------------------------------------------------------------------
    84 // ---------------------------------------------------------------------------
    85 TBool CSwApplicationService::IsKeyValid()
    85 TBool CSwApplicationService::IsKeyValid()
    86     {
    86     {
    87     FLOG(_L("CSwApplicationService::IsKeyValid >>"));
    87     _DMEVNT_DEBUG(_L("CSwApplicationService::IsKeyValid >>"));
    88     TBool ret (EFalse);
    88     TBool ret (EFalse);
    89     TInt value (KErrNone);
    89     TInt value (KErrNone);
    90 
    90 
    91     //Just read the key to find if it exists
    91     //Just read the key to find if it exists
    92     if (RProperty::Get(KSwPSKeyCondition.iPskey.iConditionCategory, KSwPSKeyCondition.iPskey.iConditionKey, value) == KErrNone)
    92     if (RProperty::Get(KSwPSKeyCondition.iPskey.iConditionCategory, KSwPSKeyCondition.iPskey.iConditionKey, value) == KErrNone)
    93         ret = ETrue;
    93         ret = ETrue;
    94 
    94 
    95     FLOG(_L("CSwApplicationService::IsKeyValid, return = %d >>"), ret);
    95     _DMEVNT_DEBUG(_L("CSwApplicationService::IsKeyValid, return = %d >>"), ret);
    96     return ret;
    96     return ret;
    97     }
    97     }
    98 
    98 
    99 // ---------------------------------------------------------------------------
    99 // ---------------------------------------------------------------------------
   100 // CSwApplicationService::WaitForRequestCompleteL
   100 // CSwApplicationService::WaitForRequestCompleteL
   101 // ---------------------------------------------------------------------------
   101 // ---------------------------------------------------------------------------
   102 void CSwApplicationService::WaitForRequestCompleteL()
   102 void CSwApplicationService::WaitForRequestCompleteL()
   103     {
   103     {
   104     FLOG(_L("CSwApplicationService::WaitForRequestCompleteL >>"));
   104     _DMEVNT_DEBUG(_L("CSwApplicationService::WaitForRequestCompleteL >>"));
   105 
   105 
   106     TRequestStatus status (KErrNone);
   106     TRequestStatus status (KErrNone);
   107     RProperty prop;
   107     RProperty prop;
   108     TInt value (KErrNone);
   108     TInt value (KErrNone);
   109 
   109 
   110     iOperation = ENoOpn;
   110     iOperation = ENoOpn;
   111     TPSKey pskey = GetPSKeyCondition().iPskey;
   111     TPSKey pskey = GetPSKeyCondition().iPskey;
   112     do {
   112     do {
   113         FLOG(_L("Waiting for IDLE state..."))
   113         _DMEVNT_DEBUG(_L("Waiting for IDLE state..."))
   114         __LEAVE_IF_ERROR( prop.Attach(pskey.iConditionCategory, pskey.iConditionKey));
   114         __LEAVE_IF_ERROR( prop.Attach(pskey.iConditionCategory, pskey.iConditionKey));
   115     
   115     
   116         prop.Subscribe(status);
   116         prop.Subscribe(status);
   117         User::WaitForRequest(status);
   117         User::WaitForRequest(status);
   118     
   118     
   119         __LEAVE_IF_ERROR( prop.Get(pskey.iConditionCategory, pskey.iConditionKey, value));
   119         __LEAVE_IF_ERROR( prop.Get(pskey.iConditionCategory, pskey.iConditionKey, value));
   120     }while (IsSwInIdle(value));
   120     }while (IsSwInIdle(value));
   121 
   121 
   122     FLOG(_L("CSwApplicationService::WaitForRequestCompleteL >>"));
   122     _DMEVNT_DEBUG(_L("CSwApplicationService::WaitForRequestCompleteL >>"));
   123     }
   123     }
   124 
   124 
   125 // ---------------------------------------------------------------------------
   125 // ---------------------------------------------------------------------------
   126 // CSwApplicationService::IsSwInIdle
   126 // CSwApplicationService::IsSwInIdle
   127 // ---------------------------------------------------------------------------
   127 // ---------------------------------------------------------------------------
   128 TBool CSwApplicationService::IsSwInIdle(TInt aValue)
   128 TBool CSwApplicationService::IsSwInIdle(TInt aValue)
   129     {
   129     {
   130     FLOG(_L("CSwApplicationService::IsSwInIdle, value = %d >> "), aValue);
   130     _DMEVNT_DEBUG(_L("CSwApplicationService::IsSwInIdle, value = %d >> "), aValue);
   131 
   131 
   132     TInt operation(aValue & Swi::KSwisOperationMask);
   132     TInt operation(aValue & Swi::KSwisOperationMask);
   133     TInt operationStatus(aValue & Swi::KSwisOperationStatusMask);
   133     TInt operationStatus(aValue & Swi::KSwisOperationStatusMask);
   134     TBool ret (EFalse);
   134     TBool ret (EFalse);
   135 
   135 
   136     FLOG(_L("operation %d, status %d"), operation, operationStatus);
   136     _DMEVNT_DEBUG(_L("operation %d, status %d"), operation, operationStatus);
   137 
   137 
   138     if (Swi::ESwisStatusSuccess == operationStatus) 
   138     if (Swi::ESwisStatusSuccess == operationStatus) 
   139         {
   139         {
   140         switch (operation)
   140         switch (operation)
   141             {
   141             {
   142             case Swi::ESwisInstall: 
   142             case Swi::ESwisInstall: 
   143                 {
   143                 {
   144                 FLOG(_L("Installation in progress"));
   144                 _DMEVNT_DEBUG(_L("Installation in progress"));
   145                 iOperation = EOpnInstall;
   145                 iOperation = EOpnInstall;
   146                 }
   146                 }
   147                 break;
   147                 break;
   148             case Swi::ESwisUninstall:
   148             case Swi::ESwisUninstall:
   149                 {
   149                 {
   150                 FLOG(_L("Uninstallation in progress"));
   150                 _DMEVNT_DEBUG(_L("Uninstallation in progress"));
   151                 iOperation = EOpnUninstall;
   151                 iOperation = EOpnUninstall;
   152                 }
   152                 }
   153                 break;
   153                 break;
   154             case Swi::ESwisRestore:
   154             case Swi::ESwisRestore:
   155                 {
   155                 {
   156                 FLOG(_L("Restore in progress"));
   156                 _DMEVNT_DEBUG(_L("Restore in progress"));
   157                 iOperation = EOpnRestore;
   157                 iOperation = EOpnRestore;
   158                 }
   158                 }
   159                 break;
   159                 break;
   160             default:
   160             default:
   161                 {
   161                 {
   162                 FLOG(_L("Unknown operation"));
   162                 _DMEVNT_DEBUG(_L("Unknown operation"));
   163                 iOperation = EOpnUnknown;
   163                 iOperation = EOpnUnknown;
   164                 }
   164                 }
   165             }
   165             }
   166         }
   166         }
   167     ret = (operation != Swi::ESwisNone)? ETrue:EFalse;
   167     ret = (operation != Swi::ESwisNone)? ETrue:EFalse;
   168     FLOG(_L("CSwApplicationService::IsSwInIdle, ret = %d << "),ret);
   168     _DMEVNT_DEBUG(_L("CSwApplicationService::IsSwInIdle, ret = %d << "),ret);
   169     return ret;
   169     return ret;
   170     }
   170     }
   171 
   171 
   172 // ---------------------------------------------------------------------------
   172 // ---------------------------------------------------------------------------
   173 // CSwApplicationService::TaskName
   173 // CSwApplicationService::TaskName