57 |
58 |
58 // ============================ MEMBER FUNCTIONS =============================== |
59 // ============================ MEMBER FUNCTIONS =============================== |
59 |
60 |
60 // ----------------------------------------------------------------------------- |
61 // ----------------------------------------------------------------------------- |
61 // COma2AgentImportFile:: |
62 // COma2AgentImportFile:: |
62 // |
63 // |
63 // ----------------------------------------------------------------------------- |
64 // ----------------------------------------------------------------------------- |
64 // |
65 // |
65 COma2AgentImportFile* COma2AgentImportFile::NewL( |
66 COma2AgentImportFile* COma2AgentImportFile::NewL( |
66 const TDesC8& aMimeType, |
67 const TDesC8& aMimeType, |
67 const CMetaDataArray& aMetaDataArray, |
68 const CMetaDataArray& aMetaDataArray, |
68 const TDesC& aOutputDirectory, |
69 const TDesC& aOutputDirectory, |
69 const TDesC& aSuggestedFileName) |
70 const TDesC& aSuggestedFileName) |
70 { |
71 { |
71 COma2AgentImportFile* self=new(ELeave) COma2AgentImportFile(EFalse); |
72 COma2AgentImportFile* self=new(ELeave) COma2AgentImportFile(EFalse); |
72 CleanupStack::PushL(self); |
73 CleanupStack::PushL(self); |
73 self->ConstructL(aMimeType, aMetaDataArray, aOutputDirectory, |
74 self->ConstructL(aMimeType, aMetaDataArray, aOutputDirectory, |
74 aSuggestedFileName); |
75 aSuggestedFileName); |
75 CleanupStack::Pop(self); |
76 CleanupStack::Pop(self); |
76 return self; |
77 return self; |
77 } |
78 } |
78 |
79 |
79 // ----------------------------------------------------------------------------- |
80 // ----------------------------------------------------------------------------- |
80 // COma2AgentImportFile:: |
81 // COma2AgentImportFile:: |
81 // |
82 // |
82 // ----------------------------------------------------------------------------- |
83 // ----------------------------------------------------------------------------- |
83 // |
84 // |
84 COma2AgentImportFile* COma2AgentImportFile::NewL( |
85 COma2AgentImportFile* COma2AgentImportFile::NewL( |
85 const TDesC8& aMimeType, |
86 const TDesC8& aMimeType, |
86 const CMetaDataArray& aMetaDataArray) |
87 const CMetaDataArray& aMetaDataArray) |
87 { |
88 { |
88 COma2AgentImportFile* self=new(ELeave) COma2AgentImportFile(EFalse); |
89 COma2AgentImportFile* self=new(ELeave) COma2AgentImportFile(EFalse); |
89 CleanupStack::PushL(self); |
90 CleanupStack::PushL(self); |
90 self->ConstructL(aMimeType, aMetaDataArray, KNullDesC(), KNullDesC()); |
91 self->ConstructL(aMimeType, aMetaDataArray, KNullDesC(), KNullDesC()); |
91 CleanupStack::Pop(self); |
92 CleanupStack::Pop(self); |
92 return self; |
93 return self; |
93 } |
94 } |
94 |
95 |
95 // ----------------------------------------------------------------------------- |
96 // ----------------------------------------------------------------------------- |
96 // COma2AgentImportFile:: |
97 // COma2AgentImportFile:: |
97 // |
98 // |
98 // ----------------------------------------------------------------------------- |
99 // ----------------------------------------------------------------------------- |
99 // |
100 // |
100 COma2AgentImportFile::COma2AgentImportFile( |
101 COma2AgentImportFile::COma2AgentImportFile( |
101 TBool aAgentCreatesOutputFiles): |
102 TBool aAgentCreatesOutputFiles): |
102 iOutputDirectory(NULL), |
103 iOutputDirectory(NULL), |
106 iAgentCreatesOutputFiles(aAgentCreatesOutputFiles), |
107 iAgentCreatesOutputFiles(aAgentCreatesOutputFiles), |
107 iMessageParser(NULL), |
108 iMessageParser(NULL), |
108 iDcfCreator(NULL), |
109 iDcfCreator(NULL), |
109 iDcfRights(NULL), |
110 iDcfRights(NULL), |
110 iDcfMimeType(NULL) |
111 iDcfMimeType(NULL) |
111 { |
112 { |
112 iImportStatus = EInProgress; |
113 iImportStatus = EInProgress; |
113 } |
114 } |
114 |
115 |
115 // ----------------------------------------------------------------------------- |
116 // ----------------------------------------------------------------------------- |
116 // COma2AgentImportFile:: |
117 // COma2AgentImportFile:: |
117 // |
118 // |
118 // ----------------------------------------------------------------------------- |
119 // ----------------------------------------------------------------------------- |
119 // |
120 // |
120 COma2AgentImportFile::~COma2AgentImportFile() |
121 COma2AgentImportFile::~COma2AgentImportFile() |
121 { |
122 { |
122 if (iFileOpen) |
123 if (iFileOpen) |
123 { |
124 { |
124 iFile.Close(); |
125 iFile.Close(); |
125 iFileOpen = EFalse; |
126 iFileOpen = EFalse; |
126 } |
127 } |
127 iFs.Close(); |
128 iFs.Close(); |
128 delete iOutputDirectory; |
129 delete iOutputDirectory; |
129 delete iSuggestedFileName; |
130 delete iSuggestedFileName; |
130 delete iOutputFileName; |
131 delete iOutputFileName; |
131 delete iLastWriteData; |
132 delete iLastWriteData; |
132 iOutputFiles.ResetAndDestroy(); |
133 iOutputFiles.ResetAndDestroy(); |
133 iOutputFiles.Close(); |
134 iOutputFiles.Close(); |
134 delete iMessageParser; |
135 delete iMessageParser; |
135 delete iDcfCreator; |
136 delete iDcfCreator; |
136 delete iDcfRights; |
137 delete iDcfRights; |
137 delete iDcfMimeType; |
138 delete iDcfMimeType; |
138 } |
139 } |
139 |
140 |
140 // ----------------------------------------------------------------------------- |
141 // ----------------------------------------------------------------------------- |
141 // COma2AgentImportFile:: |
142 // COma2AgentImportFile:: |
142 // |
143 // |
143 // ----------------------------------------------------------------------------- |
144 // ----------------------------------------------------------------------------- |
144 // |
145 // |
145 void COma2AgentImportFile::ConstructL( |
146 void COma2AgentImportFile::ConstructL( |
146 const TDesC8& aMimeType, |
147 const TDesC8& aMimeType, |
147 const CMetaDataArray& aMetaDataArray, |
148 const CMetaDataArray& aMetaDataArray, |
148 const TDesC& aOutputDirectory, |
149 const TDesC& aOutputDirectory, |
149 const TDesC& aSuggestedFileName) |
150 const TDesC& aSuggestedFileName) |
150 { |
151 { |
151 RMemReadStream rights; |
152 RMemReadStream rights; |
152 |
153 |
153 if (aMimeType.CompareF(KOma1DrmMessageContentType) == 0 || |
154 if (aMimeType.CompareF(KOma1DrmMessageContentType) == 0 || |
154 aMimeType.CompareF(KOmaImportContentType) == 0) |
155 aMimeType.CompareF(KOmaImportContentType) == 0) |
155 { |
156 { |
156 if (aMimeType.CompareF(KOma1DrmMessageContentType) == 0) |
157 if (aMimeType.CompareF(KOma1DrmMessageContentType) == 0) |
157 { |
158 { |
158 iMessageParser = CDRMMessageParser::NewL(); |
159 iMessageParser = CDRMMessageParser::NewL(); |
159 iImportType = EOma1DrmMessage; |
160 iImportType = EOma1DrmMessage; |
160 } |
161 } |
161 else |
162 else |
162 { |
163 { |
163 iDcfCreator = COma1DcfCreator::NewL(); |
164 iDcfCreator = COma1DcfCreator::NewL(); |
164 iImportType = EPlainContent; |
165 iImportType = EPlainContent; |
165 const TDesC8& mimeDes = aMetaDataArray.SearchL( |
166 const TDesC8& mimeDes = aMetaDataArray.SearchL( |
166 KOmaImportMimeTypeField); |
167 KOmaImportMimeTypeField); |
167 if (mimeDes.Length() == 0) |
168 if (mimeDes.Length() == 0) |
168 { |
169 { |
169 User::Leave(KErrArgument); |
170 User::Leave(KErrArgument); |
170 } |
171 } |
171 iDcfMimeType = mimeDes.AllocL(); |
172 iDcfMimeType = mimeDes.AllocL(); |
172 const TDesC8& rightsDes = aMetaDataArray.SearchL( |
173 const TDesC8& rightsDes = aMetaDataArray.SearchL( |
173 KOmaImportRightsField); |
174 KOmaImportRightsField); |
174 if (rightsDes.Length() > 0) |
175 if (rightsDes.Length() > 0) |
175 { |
176 { |
176 rights.Open(rightsDes.Ptr(), rightsDes.Length()); |
177 rights.Open(rightsDes.Ptr(), rightsDes.Length()); |
177 CleanupClosePushL(rights); |
178 CleanupClosePushL(rights); |
178 iDcfRights = CDRMRights::NewL(); |
179 iDcfRights = CDRMRights::NewL(); |
179 iDcfRights->InternalizeL(rights); |
180 iDcfRights->InternalizeL(rights); |
180 CleanupStack::PopAndDestroy(); // rights |
181 CleanupStack::PopAndDestroy(); // rights |
181 } |
182 } |
182 } |
183 } |
183 iOutputDirectory = aOutputDirectory.AllocL(); |
184 iOutputDirectory = aOutputDirectory.AllocL(); |
184 iSuggestedFileName = aSuggestedFileName.AllocL(); |
185 iSuggestedFileName = aSuggestedFileName.AllocL(); |
185 iOutputFileName = HBufC::NewL(iOutputDirectory->Des().Length() + |
186 iOutputFileName = HBufC::NewL(iOutputDirectory->Des().Length() + |
186 iSuggestedFileName->Des().Length()); |
187 iSuggestedFileName->Des().Length()); |
187 iAgentCreatesOutputFiles = ETrue; |
188 iAgentCreatesOutputFiles = ETrue; |
188 } |
189 } |
189 else if (aMimeType.CompareF(KOma1XmlRoContentType) == 0) |
190 else if (aMimeType.CompareF(KOma1XmlRoContentType) == 0) |
190 { |
191 { |
191 iImportType = EOma1XmlRo; |
192 iImportType = EOma1XmlRo; |
192 } |
193 } |
193 else if (aMimeType.CompareF(KOma1WbxmlRoContentType) == 0) |
194 else if (aMimeType.CompareF(KOma1WbxmlRoContentType) == 0) |
194 { |
195 { |
195 iImportType = EOma1WbxmlRo; |
196 iImportType = EOma1WbxmlRo; |
196 } |
197 } |
197 else if (aMimeType.CompareF(KOma2RoContentType) == 0) |
198 else if (aMimeType.CompareF(KOma2RoContentType) == 0) |
198 { |
199 { |
199 iImportType = EOma2Ro; |
200 iImportType = EOma2Ro; |
200 } |
201 } |
201 else |
202 else |
202 { |
203 { |
203 User::Leave(KErrCANotSupported); |
204 User::Leave(KErrCANotSupported); |
204 } |
205 } |
205 User::LeaveIfError(iFs.Connect()); |
206 User::LeaveIfError(iFs.Connect()); |
206 User::LeaveIfError(iFs.ShareAuto()); |
207 User::LeaveIfError(iFs.ShareAuto()); |
207 } |
208 } |
208 |
209 |
209 // ----------------------------------------------------------------------------- |
210 // ----------------------------------------------------------------------------- |
210 // COma2AgentImportFile:: |
211 // COma2AgentImportFile:: |
211 // |
212 // |
212 // ----------------------------------------------------------------------------- |
213 // ----------------------------------------------------------------------------- |
213 // |
214 // |
214 TInt COma2AgentImportFile::OpenOutputFile() |
215 TInt COma2AgentImportFile::OpenOutputFile() |
215 { |
216 { |
216 TInt r = KErrNone; |
217 TInt r = KErrNone; |
217 TPtr fileNamePtr = iOutputFileName->Des(); |
218 TPtr fileNamePtr = iOutputFileName->Des(); |
218 |
219 |
219 fileNamePtr.Copy(*iOutputDirectory); |
220 fileNamePtr.Copy(*iOutputDirectory); |
220 fileNamePtr.Append(*iSuggestedFileName); |
221 fileNamePtr.Append(*iSuggestedFileName); |
221 |
222 |
222 r = iFile.Create(iFs, fileNamePtr, EFileShareAny | EFileStream | |
223 r = iFile.Create(iFs, fileNamePtr, EFileShareAny | EFileStream | |
223 EFileWrite); |
224 EFileWrite); |
224 if (r == KErrNone) |
225 if (r == KErrNone) |
225 { |
226 { |
226 iFileOpen = ETrue; |
227 iFileOpen = ETrue; |
227 if (iImportType == EOma1DrmMessage) |
228 if (iImportType == EOma1DrmMessage) |
228 { |
229 { |
229 TRAP(r, iMessageParser->InitializeMessageParserL(iFile)); |
230 TRAP(r, iMessageParser->InitializeMessageParserL(iFile)); |
230 } |
231 } |
231 else |
232 else |
232 { |
233 { |
233 TRAP(r, iDcfCreator->EncryptInitializeL(iFile, *iDcfMimeType, |
234 TRAP(r, iDcfCreator->EncryptInitializeL(iFile, *iDcfMimeType, |
234 iDcfRights)); |
235 iDcfRights)); |
235 } |
236 } |
236 } |
237 } |
237 else |
238 else |
238 { |
239 { |
239 r = KErrCANewFileHandleRequired; |
240 r = KErrCANewFileHandleRequired; |
240 } |
241 } |
241 return r; |
242 return r; |
242 } |
243 } |
243 |
244 |
244 // ----------------------------------------------------------------------------- |
245 // ----------------------------------------------------------------------------- |
245 // COma2AgentImportFile:: |
246 // COma2AgentImportFile:: |
246 // |
247 // |
247 // ----------------------------------------------------------------------------- |
248 // ----------------------------------------------------------------------------- |
248 // |
249 // |
249 void COma2AgentImportFile::WriteDataL(const TDesC8& aData) |
250 void COma2AgentImportFile::WriteDataL(const TDesC8& aData) |
250 { |
251 { |
251 CDrmRightsParser* oma1Parser = NULL; |
252 CDrmRightsParser* oma1Parser = NULL; |
252 CDrmProtectedRoParser* oma2Parser = NULL; |
253 CDrmProtectedRoParser* oma2Parser = NULL; |
253 RPointerArray<CDRMRights> rights; |
254 RPointerArray<CDRMRights> rights; |
254 TCleanupItem listCleanup(PointerArrayResetDestroyAndClose<CDRMRights>, |
255 TCleanupItem listCleanup(PointerArrayResetDestroyAndClose<CDRMRights>, |
255 &rights); |
256 &rights); |
256 TInt r; |
257 TInt r; |
257 |
258 |
258 switch (iImportType) |
259 switch (iImportType) |
259 { |
260 { |
260 case EOma1DrmMessage: |
261 case EOma1DrmMessage: |
261 if (!iFileOpen) |
262 if (!iFileOpen) |
262 { |
263 { |
263 r = OpenOutputFile(); |
264 r = OpenOutputFile(); |
264 if (r == KErrNone) |
265 if (r == KErrNone) |
265 { |
266 { |
266 iMessageParser->ProcessMessageDataL(aData); |
267 iMessageParser->ProcessMessageDataL(aData); |
267 } |
268 } |
268 else |
269 else |
269 { |
270 { |
270 iLastWriteData = aData.AllocL(); |
271 iLastWriteData = aData.AllocL(); |
271 User::Leave(r); |
272 User::Leave(r); |
272 } |
273 } |
273 } |
274 } |
274 else |
275 else |
275 { |
276 { |
276 iMessageParser->ProcessMessageDataL(aData); |
277 iMessageParser->ProcessMessageDataL(aData); |
277 } |
278 } |
278 break; |
279 break; |
279 case EPlainContent: |
280 case EPlainContent: |
280 if (!iFileOpen) |
281 if (!iFileOpen) |
281 { |
282 { |
282 r = OpenOutputFile(); |
283 r = OpenOutputFile(); |
283 if (r == KErrNone) |
284 if (r == KErrNone) |
284 { |
285 { |
285 iDcfCreator->EncryptUpdateL(aData); |
286 iDcfCreator->EncryptUpdateL(aData); |
286 } |
287 } |
287 else |
288 else |
288 { |
289 { |
289 iLastWriteData = aData.AllocL(); |
290 iLastWriteData = aData.AllocL(); |
290 User::Leave(r); |
291 User::Leave(r); |
291 } |
292 } |
292 } |
293 } |
293 else |
294 else |
294 { |
295 { |
295 iDcfCreator->EncryptUpdateL(aData); |
296 iDcfCreator->EncryptUpdateL(aData); |
296 } |
297 } |
312 CleanupStack::PopAndDestroy(2); // listCleanup, oma2Parser |
313 CleanupStack::PopAndDestroy(2); // listCleanup, oma2Parser |
313 __UHEAP_MARKEND; |
314 __UHEAP_MARKEND; |
314 break; |
315 break; |
315 } |
316 } |
316 } |
317 } |
317 |
318 |
318 // ----------------------------------------------------------------------------- |
319 // ----------------------------------------------------------------------------- |
319 // COma2AgentImportFile:: |
320 // COma2AgentImportFile:: |
320 // |
321 // |
321 // ----------------------------------------------------------------------------- |
322 // ----------------------------------------------------------------------------- |
322 // |
323 // |
323 TInt COma2AgentImportFile::WriteData(const TDesC8& aData) |
324 TInt COma2AgentImportFile::WriteData(const TDesC8& aData) |
324 { |
325 { |
325 TInt r = KErrNone; |
326 TInt r = KErrNone; |
326 TRAP(r, WriteDataL(aData)); |
327 TRAP(r, WriteDataL(aData)); |
327 return r; |
328 return r; |
328 } |
329 } |
329 |
330 |
330 // ----------------------------------------------------------------------------- |
331 // ----------------------------------------------------------------------------- |
331 // COma2AgentImportFile:: |
332 // COma2AgentImportFile:: |
332 // |
333 // |
333 // ----------------------------------------------------------------------------- |
334 // ----------------------------------------------------------------------------- |
334 // |
335 // |
335 TInt COma2AgentImportFile::WriteDataComplete() |
336 TInt COma2AgentImportFile::WriteDataComplete() |
336 { |
337 { |
337 TInt r = KErrNone; |
338 TInt r = KErrNone; |
338 CSupplierOutputFile *temp = NULL; |
339 CSupplierOutputFile *temp = NULL; |
339 TPtrC8 type(NULL, 0); |
340 TPtrC8 type(NULL, 0); |
340 |
341 |
341 if (iFileOpen) |
342 if (iFileOpen) |
342 { |
343 { |
343 if (iImportType == EOma1DrmMessage) |
344 if (iImportType == EOma1DrmMessage) |
344 { |
345 { |
345 TRAP(r, iMessageParser->FinalizeMessageParserL()); |
346 TRAP(r, iMessageParser->FinalizeMessageParserL()); |
346 } |
347 } |
347 else |
348 else |
348 { |
349 { |
349 TRAP(r, iDcfCreator->EncryptFinalizeL()); |
350 TRAP(r, iDcfCreator->EncryptFinalizeL()); |
350 } |
351 } |
351 iFile.Close(); |
352 iFile.Close(); |
352 iFileOpen = EFalse; |
353 iFileOpen = EFalse; |
353 } |
354 } |
354 if( r ) |
355 if( r ) |
355 { |
356 { |
356 return r; |
357 return r; |
357 } |
358 } |
358 if (iOutputFileName) |
359 if (iOutputFileName) |
359 { |
360 { |
360 switch (iImportType) |
361 switch (iImportType) |
361 { |
362 { |
362 case EPlainContent: |
363 case EPlainContent: |
363 case EOma1DrmMessage: |
364 case EOma1DrmMessage: |
364 type.Set(KOma1DcfContentType()); |
365 type.Set(KOma1DcfContentType()); |
365 break; |
366 break; |
366 default: |
367 default: |
367 return KErrGeneral;; |
368 return KErrGeneral;; |
368 } |
369 } |
369 TRAP(r, temp = CSupplierOutputFile::NewL(iOutputFileName->Des(), |
370 TRAP(r, temp = CSupplierOutputFile::NewL(iOutputFileName->Des(), |
370 EContent, type)); |
371 EContent, type)); |
371 if (r == KErrNone) |
372 if (r == KErrNone) |
372 { |
373 { |
373 r = iOutputFiles.Append(temp); |
374 r = iOutputFiles.Append(temp); |
374 if (r != KErrNone) |
375 if (r != KErrNone) |
375 { |
376 { |
376 delete temp; |
377 delete temp; |
377 } |
378 } |
378 } |
379 } |
379 } |
380 } |
380 return r; |
381 return r; |
381 } |
382 } |
382 |
383 |
383 // ----------------------------------------------------------------------------- |
384 // ----------------------------------------------------------------------------- |
384 // COma2AgentImportFile:: |
385 // COma2AgentImportFile:: |
385 // |
386 // |
386 // ----------------------------------------------------------------------------- |
387 // ----------------------------------------------------------------------------- |
387 // |
388 // |
388 void COma2AgentImportFile::WriteData( |
389 void COma2AgentImportFile::WriteData( |
389 const TDesC8& aData, |
390 const TDesC8& aData, |
390 TRequestStatus &aStatus) |
391 TRequestStatus &aStatus) |
391 { |
392 { |
392 TRequestStatus *ptr = &aStatus; |
393 TRequestStatus *ptr = &aStatus; |
393 TInt r = WriteData(aData); |
394 TInt r = WriteData(aData); |
394 User::RequestComplete(ptr,r); |
395 User::RequestComplete(ptr,r); |
395 } |
396 } |
396 |
397 |
397 // ----------------------------------------------------------------------------- |
398 // ----------------------------------------------------------------------------- |
398 // COma2AgentImportFile:: |
399 // COma2AgentImportFile:: |
399 // |
400 // |
400 // ----------------------------------------------------------------------------- |
401 // ----------------------------------------------------------------------------- |
401 // |
402 // |
402 void COma2AgentImportFile::WriteDataComplete( |
403 void COma2AgentImportFile::WriteDataComplete( |
403 TRequestStatus &aStatus) |
404 TRequestStatus &aStatus) |
404 { |
405 { |
405 TRequestStatus *ptr = &aStatus; |
406 TRequestStatus *ptr = &aStatus; |
406 TInt r = WriteDataComplete(); |
407 TInt r = WriteDataComplete(); |
407 User::RequestComplete(ptr,r); |
408 User::RequestComplete(ptr,r); |
408 } |
409 } |
409 |
410 |
410 // ----------------------------------------------------------------------------- |
411 // ----------------------------------------------------------------------------- |
411 // COma2AgentImportFile:: |
412 // COma2AgentImportFile:: |
412 // |
413 // |
413 // ----------------------------------------------------------------------------- |
414 // ----------------------------------------------------------------------------- |
414 // |
415 // |
415 TInt COma2AgentImportFile::OutputFileCountL() const |
416 TInt COma2AgentImportFile::OutputFileCountL() const |
416 { |
417 { |
417 return iOutputFiles.Count(); |
418 return iOutputFiles.Count(); |
418 } |
419 } |
419 |
420 |
420 // ----------------------------------------------------------------------------- |
421 // ----------------------------------------------------------------------------- |
421 // COma2AgentImportFile:: |
422 // COma2AgentImportFile:: |
422 // |
423 // |
423 // ----------------------------------------------------------------------------- |
424 // ----------------------------------------------------------------------------- |
424 // |
425 // |
425 CSupplierOutputFile& COma2AgentImportFile::OutputFileL( |
426 CSupplierOutputFile& COma2AgentImportFile::OutputFileL( |
426 TInt aIndex) |
427 TInt aIndex) |
427 { |
428 { |
428 return *iOutputFiles[aIndex]; |
429 return *iOutputFiles[aIndex]; |
429 } |
430 } |
430 |
431 |
431 // ----------------------------------------------------------------------------- |
432 // ----------------------------------------------------------------------------- |
432 // COma2AgentImportFile:: |
433 // COma2AgentImportFile:: |
433 // |
434 // |
434 // ----------------------------------------------------------------------------- |
435 // ----------------------------------------------------------------------------- |
435 // |
436 // |
436 TImportStatus COma2AgentImportFile::GetImportStatus() const |
437 TImportStatus COma2AgentImportFile::GetImportStatus() const |
437 { |
438 { |
438 return iImportStatus; |
439 return iImportStatus; |
439 } |
440 } |
440 |
441 |
441 // ----------------------------------------------------------------------------- |
442 // ----------------------------------------------------------------------------- |
442 // COma2AgentImportFile:: |
443 // COma2AgentImportFile:: |
443 // |
444 // |
444 // ----------------------------------------------------------------------------- |
445 // ----------------------------------------------------------------------------- |
445 // |
446 // |
446 TInt COma2AgentImportFile::GetSuggestedOutputFileExtension( |
447 TInt COma2AgentImportFile::GetSuggestedOutputFileExtension( |
447 TDes& aFileExtension) |
448 TDes& aFileExtension) |
448 { |
449 { |
449 aFileExtension.Copy(_L(".dcf")); |
450 aFileExtension.Copy(_L(".dcf")); |
450 return KErrNone; |
451 return KErrNone; |
451 } |
452 } |
452 |
453 |
453 // ----------------------------------------------------------------------------- |
454 // ----------------------------------------------------------------------------- |
454 // COma2AgentImportFile:: |
455 // COma2AgentImportFile:: |
455 // |
456 // |
456 // ----------------------------------------------------------------------------- |
457 // ----------------------------------------------------------------------------- |
457 // |
458 // |
458 TInt COma2AgentImportFile::GetSuggestedOutputFileName( |
459 TInt COma2AgentImportFile::GetSuggestedOutputFileName( |
459 TDes& aFileName) |
460 TDes& aFileName) |
460 { |
461 { |
461 aFileName.Append(_L(".dcf")); |
462 aFileName.Append(_L(".dcf")); |
462 return KErrNone; |
463 return KErrNone; |
463 } |
464 } |
464 |
465 |
465 // ----------------------------------------------------------------------------- |
466 // ----------------------------------------------------------------------------- |
466 // COma2AgentImportFile:: |
467 // COma2AgentImportFile:: |
467 // |
468 // |
468 // ----------------------------------------------------------------------------- |
469 // ----------------------------------------------------------------------------- |
469 // |
470 // |
470 TInt COma2AgentImportFile::ContinueWithNewOutputFile( |
471 TInt COma2AgentImportFile::ContinueWithNewOutputFile( |
471 RFile& aFile, |
472 RFile& aFile, |
472 const TDesC& aFileName) |
473 const TDesC& aFileName) |
473 { |
474 { |
474 RFile file; |
475 RFile file; |
475 TInt r = KErrNone; |
476 TInt r = KErrNone; |
476 |
477 |
477 if (iOutputFileName != NULL) |
478 if (iOutputFileName != NULL) |
478 { |
479 { |
479 delete iOutputFileName; |
480 delete iOutputFileName; |
480 iOutputFileName = NULL; |
481 iOutputFileName = NULL; |
481 } |
482 } |
482 TRAP(r, iOutputFileName = aFileName.AllocL()); |
483 TRAP(r, iOutputFileName = aFileName.AllocL()); |
483 if (r == KErrNone) |
484 if (r == KErrNone) |
484 { |
485 { |
485 file.Duplicate(aFile); |
486 file.Duplicate(aFile); |
486 iFile.Attach(file); |
487 iFile.Attach(file); |
487 iFileOpen = ETrue; |
488 iFileOpen = ETrue; |
488 if (iImportType == EOma1DrmMessage) |
489 if (iImportType == EOma1DrmMessage) |
489 { |
490 { |
490 TRAP(r, iMessageParser->InitializeMessageParserL(iFile)); |
491 TRAP(r, iMessageParser->InitializeMessageParserL(iFile)); |
491 } |
492 } |
492 else |
493 else |
493 { |
494 { |
494 TRAP(r, iDcfCreator->EncryptInitializeL(iFile, *iDcfMimeType, |
495 TRAP(r, iDcfCreator->EncryptInitializeL(iFile, *iDcfMimeType, |
495 iDcfRights)); |
496 iDcfRights)); |
496 } |
497 } |
497 if (r == KErrNone) |
498 if (r == KErrNone) |
498 { |
499 { |
499 r = WriteData(*iLastWriteData); |
500 r = WriteData(*iLastWriteData); |
500 } |
501 } |
501 delete iLastWriteData; |
502 delete iLastWriteData; |
502 iLastWriteData = NULL; |
503 iLastWriteData = NULL; |
503 } |
504 } |
504 return r; |
505 return r; |
505 } |
506 } |
506 |
507 |
507 // ----------------------------------------------------------------------------- |
508 // ----------------------------------------------------------------------------- |
508 // COma2AgentImportFile:: |
509 // COma2AgentImportFile:: |
509 // |
510 // |
510 // ----------------------------------------------------------------------------- |
511 // ----------------------------------------------------------------------------- |
511 // |
512 // |
512 void COma2AgentImportFile::ContinueWithNewOutputFile( |
513 void COma2AgentImportFile::ContinueWithNewOutputFile( |
513 RFile& aFile, |
514 RFile& aFile, |
514 const TDesC& aFileName, |
515 const TDesC& aFileName, |
515 TRequestStatus& aStatus) |
516 TRequestStatus& aStatus) |
516 { |
517 { |
517 TRequestStatus *ptr = &aStatus; |
518 TRequestStatus *ptr = &aStatus; |
518 TInt r = ContinueWithNewOutputFile(aFile, aFileName); |
519 TInt r = ContinueWithNewOutputFile(aFile, aFileName); |
519 User::RequestComplete(ptr,r); |
520 User::RequestComplete(ptr,r); |
520 } |
521 } |
521 |
522 |
522 // ----------------------------------------------------------------------------- |
523 // ----------------------------------------------------------------------------- |
523 // COma2AgentImportFile:: |
524 // COma2AgentImportFile:: |
524 // |
525 // |
525 // ----------------------------------------------------------------------------- |
526 // ----------------------------------------------------------------------------- |
526 // |
527 // |
527 void COma2AgentImportFile::NewMimePartL( |
528 void COma2AgentImportFile::NewMimePartL( |
528 const TDesC8& /*aMimeType*/, |
529 const TDesC8& /*aMimeType*/, |
529 const CMetaDataArray& /*aImportMetaData*/) |
530 const CMetaDataArray& /*aImportMetaData*/) |
530 { |
531 { |
531 User::Leave(KErrCANotSupported); |
532 User::Leave(KErrCANotSupported); |
532 } |
533 } |
533 |
534 |
534 // ----------------------------------------------------------------------------- |
535 // ----------------------------------------------------------------------------- |
535 // COma2AgentImportFile:: |
536 // COma2AgentImportFile:: |
536 // |
537 // |
537 // ----------------------------------------------------------------------------- |
538 // ----------------------------------------------------------------------------- |
538 // |
539 // |
539 void COma2AgentImportFile::EndMimePartL() |
540 void COma2AgentImportFile::EndMimePartL() |
540 { |
541 { |
541 User::Leave(KErrCANotSupported); |
542 User::Leave(KErrCANotSupported); |
542 } |
543 } |
543 |
544 |
544 // End of file |
545 // End of file |