First public contribution.
2 * Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of the License "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
20 #include <caf/importfile.h>
21 #include "agentinfo.h"
22 #include <caf/agentinterface.h>
23 #include <caf/agentfactory.h>
24 #include <caf/caferr.h>
26 using namespace ContentAccess;
28 CImportFile* CImportFile::NewL(TUid aAgentUid, const TDesC8& aMimeType, const CMetaDataArray& aMetaData, const TDesC& aOutputDirectory, const TDesC& aSuggestedFileName)
30 CImportFile* self = new (ELeave) CImportFile();
31 CleanupStack::PushL(self);
32 self->ConstructL(aAgentUid, aMimeType, aMetaData, aOutputDirectory, aSuggestedFileName);
33 CleanupStack::Pop(self);
37 void CImportFile::ConstructL(TUid aAgentUid, const TDesC8& aMimeType, const CMetaDataArray& aMetaData, const TDesC& aOutputDirectory, const TDesC& aSuggestedFileName)
39 // increment the reference count for the agent, so ECOM does not unload the agent
40 iAgentFactory = CAgentFactory::NewL(aAgentUid);
42 // Create a CAgentSupplier instance for the import
43 iAgentImportFile = iAgentFactory->CreateImporterL(aMimeType, aMetaData, aOutputDirectory, aSuggestedFileName);
46 CImportFile* CImportFile::NewL(TUid aAgentUid, const TDesC8& aMimeType, const CMetaDataArray& aMetaData)
48 CImportFile* self = new (ELeave) CImportFile();
49 CleanupStack::PushL(self);
50 self->ConstructL(aAgentUid, aMimeType, aMetaData);
51 CleanupStack::Pop(self);
55 void CImportFile::ConstructL(TUid aAgentUid, const TDesC8& aMimeType, const CMetaDataArray& aMetaData)
57 // increment the reference count for the agent, so ECOM does not unload the agent
58 iAgentFactory = CAgentFactory::NewL(aAgentUid);
60 // Create a CAgentSupplier instance for the import
61 iAgentImportFile = iAgentFactory->CreateImporterL(aMimeType, aMetaData);
64 CImportFile ::CImportFile()
68 CImportFile ::~CImportFile()
70 delete iAgentImportFile;
72 // Finished with Agent session, may unload the agent DLL
74 REComSession::FinalClose();
77 EXPORT_C TInt CImportFile::WriteData(const TDesC8& aData)
79 return iAgentImportFile->WriteData(aData);
82 EXPORT_C void CImportFile::WriteData(const TDesC8& aData, TRequestStatus &aStatus)
84 iAgentImportFile->WriteData(aData,aStatus);
87 EXPORT_C TInt CImportFile::WriteDataComplete()
89 // Tell the agent we are finished
90 return iAgentImportFile->WriteDataComplete();
93 EXPORT_C void CImportFile::WriteDataComplete(TRequestStatus &aStatus)
95 // Tell the agent we are finished
96 iAgentImportFile->WriteDataComplete(aStatus);
99 EXPORT_C TInt CImportFile::OutputFileCountL() const
101 return iAgentImportFile->OutputFileCountL();
104 EXPORT_C CSupplierOutputFile& CImportFile::OutputFileL(TInt aIndex) const
106 return iAgentImportFile->OutputFileL(aIndex);
109 EXPORT_C TImportStatus CImportFile::GetImportStatus() const
111 return iAgentImportFile->GetImportStatus();
114 EXPORT_C TInt CImportFile::GetSuggestedOutputFileExtension(TDes& aFileExtension)
116 return iAgentImportFile->GetSuggestedOutputFileExtension(aFileExtension);
119 EXPORT_C TInt CImportFile::GetSuggestedOutputFileName(TDes& aFileName)
121 return iAgentImportFile->GetSuggestedOutputFileName(aFileName);
124 EXPORT_C TInt CImportFile::ContinueWithNewOutputFile(RFile& aFile, const TDesC& aFileName)
126 return iAgentImportFile->ContinueWithNewOutputFile(aFile, aFileName);
129 EXPORT_C void CImportFile::ContinueWithNewOutputFile(RFile& aFile, const TDesC& aFileName, TRequestStatus& aStatus)
131 iAgentImportFile->ContinueWithNewOutputFile(aFile, aFileName, aStatus);
134 EXPORT_C void CImportFile::Cancel()
136 iAgentImportFile->Cancel();
139 EXPORT_C TBool CImportFile::ContentMimeTypeL(TDes8& aContentMime)
141 return iAgentImportFile->ContentMimeTypeL(aContentMime);