/*
* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
* Data utility class for UniEditor & MMS related editors and viewers
*
*/
#ifndef __UNIDATAUTILS_H
#define __UNIDATAUTILS_H
// INCLUDES
#include <apmstd.h> //TDataType
#include <apgcli.h> //RApaLsSession
#include <barsc.h>
#include <unimodelconst.h>
#include <cmsvattachment.h> // TMsvAttachmentId
// CONSTANTS
_LIT8( KUniEmptySlide, "application/X-MmsEmptySlide" );
// MACROS
// DATA TYPES
// FUNCTION PROTOTYPES
// FORWARD DECLARATIONS
class CMsgTextUtils;
class CBaseMtm;
class MMsvAttachmentManager;
// CLASS DECLARATION
/**
* CUniDataUtils - Miscellaneous UI indenependent utilities.
*
* @lib UniDataUtils.lib
* @since 3.1
*/
class CUniDataUtils : public CBase
{
public: // Constructors and destructor
/**
* Constructor.
*
* @since 3.1
* @param aFs IN Fileserver session.
* @return Pointer to instance
*/
IMPORT_C static CUniDataUtils* NewL( RFs& aFs );
/**
* Destructor.
*
* @since 3.1
*/
virtual ~CUniDataUtils();
/**
* DefaultFileName
* (e.g. "noname" - no prefix)
*
* @since 3.1
* @return Pointer to default file name buffer
*/
inline TPtrC DefaultFileName() const;
/**
* EmptyPageString
* (e.g. "Empty page")
*
* @since 3.1
* @return Pointer to "empty page" buffer
*/
inline TPtrC EmptyPageString() const;
/**
* CharconvIdToMibIdL
* Converts between id's.
*
* @since 3.1
* @param aCharconvCharsetId IN charconv id
* @return MIB enumeration
*/
IMPORT_C TUint CharconvIdToMibIdL( TUint aCharconvCharsetId );
/**
* MibIdToCharconvIdL
* Converts between id's.
*
* @since 3.1
* @param aMibId IN MIB enumeration
* @return Charconv id
*/
IMPORT_C TUint MibIdToCharconvIdL( TUint aMibId );
/**
* Gets bytes size of UTF8 formatted text
*
* @since 3.1
* @param aText
* @return Size of text in bytes
*/
IMPORT_C static TInt UTF8Size( TPtrC aText );
/**
* Gets bytes size of file.
*
* @since 3.1
* @param aFileName
* @return Size of the file.
*/
IMPORT_C TInt FileSizeL( const TFileName& aFileName );
/**
* Get open file handle for an attachment
*
* @since 3.1
* @param aMtm Client MTM
* @param aId Attachment ID
* @return Open read-only file handle.
* It is callers responsibilty to close the handle.
*/
IMPORT_C static RFile GetAttachmentFileL( CBaseMtm& aMtm, TMsvAttachmentId aId );
/**
* Get the "attachment manager index position" for an attachment.
*
* @since 3.1
* @return "attachment manager index position"
* @leave KErrNotFound if attachment is not found from the store
*/
IMPORT_C static TInt IndexPositionOfAttachmentL(
MMsvAttachmentManager& aManager,
TMsvAttachmentId aId );
protected:
/**
* C++ constructor
*
* @since 3.1
* @param aFs IN Fileserver session.
*/
CUniDataUtils( RFs& aFs );
/**
* ConstructL
* Symbian OS constructor
*
* @since 3.1
*/
void ConstructL();
/**
* RegisterDataL
* Reads data from resources.
*
* @since 3.1
*/
void RegisterDataL();
/**
* ReadResStringsL
* Reads strings from resources to internal mimetype arrays.
*
* @since 3.1
* @param aResourceFile IN opened resourcefile
* @param aSrcResId IN resource id to read from
* @return Pointer to read string
**/
HBufC* ReadResStringL( const RResourceFile& aResourceFile, TInt aSrcResId );
protected: // data
RFs& iFs;
CMsgTextUtils* iTextUtils;
HBufC* iDefaultFileName;
HBufC* iEmptyPageString;
};
#include <unidatautils.inl>
#endif // __UNIDATAUTILS_H
// End of file