1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 #if !defined(__CONCNF_H__)
30 #define KMaxTranslation 50
32 /** Buffer to contain a localised data type name.
36 typedef TBuf<KMaxTranslation> TTranslation;
40 /** Holds a localised name for a data type.
47 IMPORT_C TLanguageInfo(TLanguage aLanguage,TTranslation aTranslation);
49 void InternalizeL(RReadStream& aStream);
50 void ExternalizeL(RWriteStream& aStream) const;
52 TTranslation Translation();
53 void ReadFromResource(TResourceReader& aReader);
56 TTranslation iTranslation;
59 class CMimeInfo : public CBase
60 /** Holds the localised names for a data type.
66 IMPORT_C ~CMimeInfo();
67 IMPORT_C static CMimeInfo* NewLC(TDataType& aMime);
68 static CMimeInfo* NewL();
69 static CMimeInfo* NewLC(const CMimeInfo* aInfo);
71 void InternalizeL(RReadStream& aStream);
72 void ExternalizeL(RWriteStream& aStream) const;
75 IMPORT_C void AddLanguageL(TLanguageInfo aLang);
76 static CMimeInfo* NewLC(TResourceReader& aReader);
79 void ConstructL(TResourceReader& aReader);
80 void AddLanguageInfoL(TResourceReader& aReader);
83 CArrayFixFlat<TLanguageInfo> *iLanguageInfo;
86 class CCnaConverter : public CBase
87 /** Holds the inherent properties of a converter.
89 These are its UID and the data types it supports.
91 Note that the setter functions affect only the current object, not the stored
92 information for the converter.
98 static CCnaConverter* NewLC();
99 static CCnaConverter* NewL();
100 IMPORT_C static CCnaConverter* NewL(TUid aUid);
101 IMPORT_C static CCnaConverter* NewLC(TUid aUid);
102 IMPORT_C static CCnaConverter* NewL(const CCnaConverter& aConverter);
103 IMPORT_C static CCnaConverter* NewLC(const CCnaConverter& aConverter);
104 IMPORT_C ~CCnaConverter();
105 IMPORT_C void SetUid(TUid aUid);
106 IMPORT_C TBool MimeFrom(const TDataType& aMimeType) const;
107 IMPORT_C TBool MimeTo(const TDataType& aMimeType) const;
108 IMPORT_C TTranslation MimeFromText(const TDataType& aMimeType) const;
109 IMPORT_C TTranslation MimeToText(const TDataType& aMimeType) const;
110 IMPORT_C TInt CountFrom() const;
111 IMPORT_C TInt CountTo() const;
112 IMPORT_C TDataType MimeFrom(TInt aIndex) const;
113 IMPORT_C TDataType MimeTo(TInt aIndex) const;
114 IMPORT_C TTranslation MimeFromText(TInt aIndex) const;
115 IMPORT_C TTranslation MimeToText(TInt aIndex) const;
116 inline TUid Uid() const;
117 static CCnaConverter* NewL(TUid aUid,TResourceReader& aReader);
121 TBool FindMime(const TDataType& aMimeType, const CArrayPtrFlat<CMimeInfo>* aList) const;
122 TTranslation FindMimeText(const TDataType& aMimeType, const CArrayPtrFlat<CMimeInfo>* aList) const;
123 void ConstructL(TUid aUid,TResourceReader& aReader);
124 void AddMimeDataL(TResourceReader& aReader, CArrayPtrFlat<CMimeInfo>& aMimeInfo);
127 CArrayPtrFlat<CMimeInfo>* iMimeFrom;
128 CArrayPtrFlat<CMimeInfo>* iMimeTo;
131 inline TUid CCnaConverter::Uid() const
132 /** Gets the converter UID.
134 @return Converter UID */
137 class CCnaConvInfoFile2 : public CBase
144 ~CCnaConvInfoFile2();
150 RResourceFile iResourceFile;
151 CArrayPtr<CCnaConverter>* iConverters;
154 /** Encapsulates a collection of converter properties (CCnaConverter) read from a converter
155 information (.rsc) file.
160 // Each RSC file contains CCnaConverter information for each
161 // available CConverterBase2 derived class in its associated DLL.
163 // In addition there may be INI files for each converter which supply run time extended
164 // CCnaConverter information such as additional mime types.
165 class CCnaConvInfoFileReader2 : public CCnaConvInfoFile2
168 IMPORT_C static CCnaConvInfoFileReader2* NewLC(const TDesC& aFileName);
169 IMPORT_C static CCnaConvInfoFileReader2* NewL(const TDesC& aFileName);
170 IMPORT_C TInt Count();
171 IMPORT_C CCnaConverter* AtL(TInt anIndex);
173 IMPORT_C void RestoreL();
175 CCnaConvInfoFileReader2();
176 void RestoreConverterL(TResourceReader& aReader);
177 void ConstructL(const TDesC& aFileName);