Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]

#include <CONARC.H>
Link against: conarc.lib

Class CConverterBase

class CConverterBase : public CBase;

Description

For Ecom Style Converters i.e.,for v9.1 and above CConverterBase2 should be used.

Polymorphic interface for converters from one data format to another.

Clients use this interface to access data converters. The implementator of a data converter derives a class from this in which to implement the appropriate conversion functionality.

The interface offers conversions between files, and between objects that support the stream interfaces, e.g. stream stores.

There are two flavours of conversion methods:

the synchronous interfaces, CConverterBase::ConvertL(const TFileName &,const TFileName &,MConverterUiObserver *) and CConverterBase::ConvertObjectL(RReadStream &,RWriteStream &,MConverterUiObserver *), which perform the specified conversion and then return

the asynchronous interfaces, CConverterBase::ConvertAL(const TFileName &,const TFileName &,MConverterUiObserver *) and CConverterBase::ConvertObjectAL(RReadStream &,RWriteStream &,MConverterUiObserver *), which initialise the converter object, and allow the client code to call CConverterBase::DoConvertL() a number of times until the conversion is complete or abandoned.

Derivation

Members

Defined in CConverterBase:

Inherited from CBase:

See also:


Member functions


ConvertL(const TFileName &,const TFileName &,MConverterUiObserver *)

IMPORT_C virtual void ConvertL(const TFileName &aSourceFile, const TFileName &aTargetFile, MConverterUiObserver *aObserver=0);

Description

Converts a file in a single step.

The caller can supply a MConverterUiObserver to be informed of progress in the conversion.

The default implementation calls CConverterBase::ConvertAL(const TFileName &,const TFileName &,MConverterUiObserver *) to prepare the object to perform the conversion, and then calls CConverterBase::DoConvertL() in a loop until conversion is complete.

Parameters

const TBuf &aSourceFile

File to convert

const TBuf &aTargetFile

File to which to write the converted output

MConverterUiObserver *aObserver

Optional observer of the conversion process

Leave codes

KErrNotSupported

File conversion is not supported


ConvertObjectL(RReadStream &,RWriteStream &,MConverterUiObserver *)

IMPORT_C virtual void ConvertObjectL(RReadStream &aReadStream, RWriteStream &aWriteStream, MConverterUiObserver *aObserver=0);

Description

Converts a stream object in a single step.

The caller can supply a MConverterUiObserver to be informed of progress in the conversion.

The default implementation calls CConverterBase::ConvertObjectAL(RReadStream &,RWriteStream &,MConverterUiObserver *) to prepare the object to perform the conversion, and then calls CConverterBase::DoConvertL() in a loop until conversion is complete.

Parameters

RReadStream &aReadStream

Stream from which to read the data to convert

RWriteStream &aWriteStream

Stream to which to write the converted data

MConverterUiObserver *aObserver

Optional observer of the conversion process


ConvertAL(const TFileName &,const TFileName &,MConverterUiObserver *)

IMPORT_C virtual void ConvertAL(const TFileName &aSourceFile, const TFileName &aTargetFile, MConverterUiObserver *aObserver=0);

Description

Prepares for conversion in multiple steps of a file.

Clients must call this function before calling CConverterBase::DoConvertL() one or more times to do the conversion. The function can call back the MaxSteps() function of the supplied MConverterUiObserver to tell the client the maximum number of calls to CConverterBase::DoConvertL() that will be required.

The rest of this description describes how to implement this function.

The function should initialise the object before performing a conversion, but should not do the conversion itself. Such initialisation should include:

storing the MConverterUiObserver pointer (if supplied), so the client can later be notified of conversion progress

validating the integrity of the input data

optionally, creating the appropriate application engine, either for input or output, to enable access to the data

determining the number of steps (i.e. calls to CConverterBase::DoConvertL()) required to perform the conversion and pass this to the client by calling MConverterUiObserver::MaxSteps(TInt,TInt)

The default implementation leaves with KErrNotSupported.

Parameters

const TBuf &aSourceFile

File to convert

const TBuf &aTargetFile

File to which to write the converted output. The file can be overwritten if it already exists.

MConverterUiObserver *aObserver

Observer of the conversion process

Leave codes

KErrNotSupported

File conversion is not supported


ConvertObjectAL(RReadStream &,RWriteStream &,MConverterUiObserver *)

IMPORT_C virtual void ConvertObjectAL(RReadStream &aReadStream, RWriteStream &aWriteStream, MConverterUiObserver *aObserver=0);

Description

Prepares for conversion in multiple steps of a stream object.

Clients must call this function before calling CConverterBase::DoConvertL() one or more times to do the conversion. The function can call back the MaxSteps() function of the supplied MConverterUiObserver to tell the client the maximum number of calls to CConverterBase::DoConvertL() that will be required.

For a description of how to implement this function, see CConverterBase::ConvertAL(const TFileName &,const TFileName &,MConverterUiObserver *).

Parameters

RReadStream &aReadStream

Stream from which to read the data to convert

RWriteStream &aWriteStream

Stream to which to write the converted data

MConverterUiObserver *aObserver

Optional observer of the conversion process

Leave codes

KErrNotSupported

Stream object conversion is not supported


DoConvertL()

IMPORT_C virtual TBool DoConvertL();

Description

Performs a step in converting the data.

The function advances a step in converting the data each time that it is called. When conversion is complete, the function returns EFalse.

Return value

TBool

EFalse if conversion is complete, else ETrue


Uid()

virtual TUid Uid()=0;

Description

Gets the converter's UID.

Return value

TUid

Converter's UID


Capabilities()

IMPORT_C virtual TInt Capabilities();

Description

Gets the converter's capabilities.

The default is to return a bitmask of all the TCapability flags.

Return value

TInt

A bitmask of TCapability flags describing the capabilities.


CancelConvert()

IMPORT_C virtual void CancelConvert();

Description

Cleans up a conversion that has been prepared or is in progress.

It should free any resources and reset the converter object to an initial state.

The default is to do nothing.


EmbeddedObjectL(TDataType &)

IMPORT_C virtual CConverterBase* EmbeddedObjectL(TDataType &aType);

Description

Gets a converter for an embedded object of the specified type.

The default is to return NULL.

Parameters

TDataType &aType

Type of the embedded object

Return value

CConverterBase *

Converter for the embedded object


GetEmbeddedFileName(TFileName &)

IMPORT_C virtual TBool GetEmbeddedFileName(TFileName &aFileName);

Description

Gets a filename embedded in the object.

Parameters

TBuf &aFileName

The file name found

Return value

TBool

True if a filename was found, false otherwise


ExtendedInterfaceL(TUid,CBase *&)

IMPORT_C virtual void ExtendedInterfaceL(TUid aInterfaceUid, CBase *&aInterface);

Description

Allows licensees to extend the Converter Architecture API.

This function replaces the private Reserved_1() function, so the change is binary compatible with v7.0.

If overridden by the converter, it allows third party code to request the extended interface object by UID. If not overridden, the default implementation does nothing.

Parameters

TUid aInterfaceUid

A UID that identifies the required extended interface object.

CBase *&aInterface

On return, an object that extends the Converter Architecture interface, or NULL, if the UID specified is not recognised.

[Top]


Member enumerations


Enum TCapability

TCapability

Description

Bitmask values that describe the capabilities of the converter.

EConvertsFiles

The converter can convert files.

EConvertsObjects

The converter can convert stream objects.

EConvertsExtract

The converter can extract embedded objects.