74 |
74 |
75 // ----------------------------------------------------------------------------- |
75 // ----------------------------------------------------------------------------- |
76 // CFSMailRequestHandler::NewL |
76 // CFSMailRequestHandler::NewL |
77 // ----------------------------------------------------------------------------- |
77 // ----------------------------------------------------------------------------- |
78 EXPORT_C CFSMailRequestHandler* CFSMailRequestHandler::NewL( |
78 EXPORT_C CFSMailRequestHandler* CFSMailRequestHandler::NewL( |
79 RPointerArray<CImplementationInformation>& aPluginInfo, |
79 RPointerArray<CImplementationInformation>& aPluginInfo, |
80 RPointerArray<CFSMailPlugin>& aPlugins ) |
80 RPointerArray<CFSMailPlugin>& aPlugins ) |
81 { |
81 { |
82 FUNC_LOG; |
82 FUNC_LOG; |
83 CFSMailRequestHandler* pluginHandler = |
83 CFSMailRequestHandler* pluginHandler = |
84 CFSMailRequestHandler::NewLC( aPluginInfo, aPlugins ); |
84 CFSMailRequestHandler::NewLC( aPluginInfo, aPlugins ); |
85 CleanupStack:: Pop(pluginHandler); |
85 CleanupStack:: Pop(pluginHandler); |
86 return pluginHandler; |
86 return pluginHandler; |
87 } |
87 } |
88 |
88 |
89 // ----------------------------------------------------------------------------- |
89 // ----------------------------------------------------------------------------- |
90 // CFSMailRequestHandler::ConstructL |
90 // CFSMailRequestHandler::ConstructL |
91 // ----------------------------------------------------------------------------- |
91 // ----------------------------------------------------------------------------- |
92 void CFSMailRequestHandler::ConstructL( |
92 void CFSMailRequestHandler::ConstructL( |
93 RPointerArray<CImplementationInformation> /*aPluginInfo*/, |
93 RPointerArray<CImplementationInformation> /*aPluginInfo*/, |
94 RPointerArray<CFSMailPlugin> /*aPlugins*/ ) |
94 RPointerArray<CFSMailPlugin> /*aPlugins*/ ) |
95 { |
95 { |
96 FUNC_LOG; |
96 FUNC_LOG; |
97 |
97 |
98 |
98 |
99 } |
99 } |
100 |
100 |
101 // ----------------------------------------------------------------------------- |
101 // ----------------------------------------------------------------------------- |
102 // CFSMailRequestHandler::GetPluginByUid |
102 // CFSMailRequestHandler::GetPluginByUid |
103 // ----------------------------------------------------------------------------- |
103 // ----------------------------------------------------------------------------- |
104 EXPORT_C CFSMailPlugin* CFSMailRequestHandler::GetPluginByUid(TFSMailMsgId aObjectId) |
104 EXPORT_C CFSMailPlugin* CFSMailRequestHandler::GetPluginByUid(TFSMailMsgId aObjectId) |
105 { |
105 { |
106 FUNC_LOG; |
106 FUNC_LOG; |
107 |
107 |
108 for(TInt i=0;i<iPluginList.Count();i++) |
108 for(TInt i=0;i<iPluginList.Count();i++) |
109 { |
109 { |
110 if(iPluginList[i]->iPluginId.iUid == aObjectId.PluginId().iUid) |
110 if(iPluginList[i]->iPluginId.iUid == aObjectId.PluginId().iUid) |
111 { |
111 { |
112 return iPluginList[i]->iPlugin; |
112 return iPluginList[i]->iPlugin; |
113 } |
113 } |
114 } |
114 } |
115 |
115 |
116 |
116 |
117 return NULL; |
117 return NULL; |
118 } |
118 } |
119 |
119 |
120 // ----------------------------------------------------------------------------- |
120 // ----------------------------------------------------------------------------- |
121 // CFSMailRequestHandler::InitAsyncRequestL |
121 // CFSMailRequestHandler::InitAsyncRequestL |
122 // ----------------------------------------------------------------------------- |
122 // ----------------------------------------------------------------------------- |
123 EXPORT_C TFSPendingRequest CFSMailRequestHandler::InitAsyncRequestL( |
123 EXPORT_C TFSPendingRequest CFSMailRequestHandler::InitAsyncRequestL( |
124 TUid aPluginId, |
124 TUid aPluginId, |
125 MFSMailRequestObserver& aOperationObserver) |
125 MFSMailRequestObserver& aOperationObserver) |
126 { |
126 { |
127 FUNC_LOG; |
127 FUNC_LOG; |
128 TFSPendingRequest newRequest; |
128 TFSPendingRequest newRequest; |
129 for(TInt i=0;i<iPendingRequests.Count();i++) |
129 for(TInt i=0;i<iPendingRequests.Count();i++) |
130 { |
130 { |
131 if(iPendingRequests[i].iRequestStatus != TFSPendingRequest::EFSRequestPending) |
131 if(iPendingRequests[i].iRequestStatus != TFSPendingRequest::EFSRequestPending) |
132 { |
132 { |
133 iPendingRequests[i].iPluginId = aPluginId; |
133 iPendingRequests[i].iPluginId = aPluginId; |
134 iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestPending; |
134 iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestPending; |
135 iPendingRequests[i].iObserver->SetUserObserver(aOperationObserver); |
135 iPendingRequests[i].iObserver->SetUserObserver(aOperationObserver); |
136 newRequest = iPendingRequests[i]; |
136 newRequest = iPendingRequests[i]; |
137 return newRequest; |
137 return newRequest; |
138 } |
138 } |
139 } |
139 } |
140 |
140 |
141 newRequest.iRequestId = iPendingRequests.Count(); |
141 newRequest.iRequestId = iPendingRequests.Count(); |
142 newRequest.iPluginId = aPluginId; |
142 newRequest.iPluginId = aPluginId; |
143 newRequest.iRequestStatus = TFSPendingRequest::EFSRequestPending; |
143 newRequest.iRequestStatus = TFSPendingRequest::EFSRequestPending; |
144 CFSMailRequestObserver* observer = |
144 CFSMailRequestObserver* observer = |
145 CFSMailRequestObserver::NewL(*this, aOperationObserver); |
145 CFSMailRequestObserver::NewL(*this, aOperationObserver); |
146 newRequest.iObserver = observer; |
146 newRequest.iObserver = observer; |
147 iPendingRequests.Append(newRequest); |
147 iPendingRequests.Append(newRequest); |
148 |
148 |
149 return newRequest; |
149 return newRequest; |
150 } |
150 } |
151 |
151 |
152 // ----------------------------------------------------------------------------- |
152 // ----------------------------------------------------------------------------- |
153 // CFSMailRequestHandler::CompleteRequest |
153 // CFSMailRequestHandler::CompleteRequest |
154 // ----------------------------------------------------------------------------- |
154 // ----------------------------------------------------------------------------- |
155 EXPORT_C void CFSMailRequestHandler::CompleteRequest( TInt aRequestId ) |
155 EXPORT_C void CFSMailRequestHandler::CompleteRequest( TInt aRequestId ) |
156 { |
156 { |
157 FUNC_LOG; |
157 FUNC_LOG; |
158 for(TInt i=0;i<iPendingRequests.Count();i++) |
158 for(TInt i=0;i<iPendingRequests.Count();i++) |
159 { |
159 { |
160 if(iPendingRequests[i].iRequestId == aRequestId) |
160 if(iPendingRequests[i].iRequestId == aRequestId) |
161 { |
161 { |
162 iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestComplete; |
162 iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestComplete; |
163 break; |
163 break; |
164 } |
164 } |
165 } |
165 } |
166 |
166 |
167 } |
167 } |
168 |
168 |
169 // ----------------------------------------------------------------------------- |
169 // ----------------------------------------------------------------------------- |
170 // CFSMailRequestHandler::CancelRequestL |
170 // CFSMailRequestHandler::CancelRequestL |
171 // ----------------------------------------------------------------------------- |
171 // ----------------------------------------------------------------------------- |
172 EXPORT_C void CFSMailRequestHandler::CancelRequestL( TInt aRequestId ) |
172 EXPORT_C void CFSMailRequestHandler::CancelRequestL( TInt aRequestId ) |
173 { |
173 { |
174 FUNC_LOG; |
174 FUNC_LOG; |
175 for(TInt i=0;i<iPendingRequests.Count();i++) |
175 for(TInt i=0;i<iPendingRequests.Count();i++) |
176 { |
176 { |
177 if(iPendingRequests[i].iRequestId == aRequestId && |
177 if(iPendingRequests[i].iRequestId == aRequestId && |
178 iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending) |
178 iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending) |
179 { |
179 { |
180 TFSMailMsgId pluginId(iPendingRequests[i].iPluginId,0); |
180 TFSMailMsgId pluginId(iPendingRequests[i].iPluginId,0); |
181 if(CFSMailPlugin* plugin = GetPluginByUid(pluginId)) |
181 if(CFSMailPlugin* plugin = GetPluginByUid(pluginId)) |
182 { |
182 { |
183 plugin->CancelL(aRequestId); |
183 plugin->CancelL(aRequestId); |
184 } |
184 } |
185 iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestCancelled; |
185 iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestCancelled; |
186 break; |
186 break; |
187 } |
187 } |
188 } |
188 } |
189 } |
189 } |
190 |
190 |
191 // ----------------------------------------------------------------------------- |
191 // ----------------------------------------------------------------------------- |
192 // CFSMailRequestHandler::CancelAllRequestsL |
192 // CFSMailRequestHandler::CancelAllRequestsL |
193 // ----------------------------------------------------------------------------- |
193 // ----------------------------------------------------------------------------- |
194 EXPORT_C void CFSMailRequestHandler::CancelAllRequestsL( ) |
194 EXPORT_C void CFSMailRequestHandler::CancelAllRequestsL( ) |
195 { |
195 { |
196 FUNC_LOG; |
196 FUNC_LOG; |
197 for(TInt i=0;i<iPendingRequests.Count();i++) |
197 for(TInt i=0;i<iPendingRequests.Count();i++) |
198 { |
198 { |
199 if(iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending) |
199 if(iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending) |
200 { |
200 { |
201 TFSMailMsgId pluginId(iPendingRequests[i].iPluginId,0); |
201 TFSMailMsgId pluginId(iPendingRequests[i].iPluginId,0); |
202 if(CFSMailPlugin* plugin = GetPluginByUid(pluginId)) |
202 if(CFSMailPlugin* plugin = GetPluginByUid(pluginId)) |
203 { |
203 { |
204 plugin->CancelL(iPendingRequests[i].iRequestId); |
204 plugin->CancelL(iPendingRequests[i].iRequestId); |
205 } |
205 } |
206 iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestCancelled; |
206 iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestCancelled; |
207 } |
207 } |
208 } |
208 } |
209 } |
209 } |
210 |
210 |
211 // ----------------------------------------------------------------------------- |
211 // ----------------------------------------------------------------------------- |
212 // CFSMailRequestHandler::AddPluginL |
212 // CFSMailRequestHandler::AddPluginL |
213 // ----------------------------------------------------------------------------- |
213 // ----------------------------------------------------------------------------- |
214 EXPORT_C void CFSMailRequestHandler::AddPluginL( TUid aPluginId, CFSMailPlugin* aPlugin ) |
214 EXPORT_C void CFSMailRequestHandler::AddPluginL( TUid aPluginId, CFSMailPlugin* aPlugin ) |
215 { |
215 { |
216 FUNC_LOG; |
216 FUNC_LOG; |
217 |
217 |
218 CFSMailPluginData* pluginData = new (ELeave) CFSMailPluginData; |
218 CFSMailPluginData* pluginData = new (ELeave) CFSMailPluginData; |
219 pluginData->iPluginId = aPluginId; |
219 pluginData->iPluginId = aPluginId; |
220 pluginData->iPlugin = aPlugin; |
220 pluginData->iPlugin = aPlugin; |
221 iPluginList.Append(pluginData); |
221 iPluginList.Append(pluginData); |
222 |
222 |
223 } |
223 } |
224 |
224 |
225 // ----------------------------------------------------------------------------- |
225 // ----------------------------------------------------------------------------- |
226 // CFSMailRequestHandler::RemoveAllRequests |
226 // CFSMailRequestHandler::RemoveAllRequests |
227 // ----------------------------------------------------------------------------- |
227 // ----------------------------------------------------------------------------- |
228 void CFSMailRequestHandler::RemoveAllRequests() |
228 void CFSMailRequestHandler::RemoveAllRequests() |