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 |