MImplementationFactory Class Reference

class MImplementationFactory

Abstract Factory Class in order to derive different concrete factory class for image processing implementation specific to VideoCapture and specific Viewfinder.

Also used to derive concrete factory class for snapshot implementation specific to image capture and video capture.

Also used to derive concrete factory class for histogram implementation specific to still image, video, snapshot or specific viewfinder.

This may be used in other possible cases as well.

Member Functions Documentation

GetImpl(TAny *&, TUid)

TInt GetImpl(TAny *&aIfPtr,
TUidaIfaceUid
)const [pure virtual]

Provides implementation handle for different implementation products.

Note:

KErrNone should be returned only when a valid interface pointer is there. Any other error code implies that interface implementation pointer is NULL.

KErrNotSupported should be returned when the concrete interface implementation is not present.

The inferface pointer is retrieved only on the basis of interface uid passed. Examples of 'interface implementation pointer' - 'interface uid' are as follows:- MCameraImageProcessing* - KECamMCameraImageProcessingUid; MCameraImageProcessing2* - KECamMCameraImageProcessing2Uid; MCameraImageProcessing3* - KECamMCameraImageProcessing3Uid;

MCameraSnapshot* - KECamMCameraSnapshotUid; MCameraSnapshot2* - KECamMCameraSnapshot2Uid;

MCameraV2Histogram* - KECamMCameraV2HistogramUid;

Many other pairs may be possible in future. For example when image processing API/ camera snapshot API/ histogram API is further extended. Or when same concept is being used on other ECam related sub-component.

Parameters

TAny *& aIfPtrRetrieves pointer to specifc interface implementation as identified by the interface uid.
TUid aIfaceUidThe interface uid.

GetImpl1(TAny *&, TUid, TECamImplFactoryParam)

TInt GetImpl1(TAny *&aIfPtr,
TUidaIfaceUid,
TECamImplFactoryParamaParam1
)const [pure virtual]

Overloaded method which helps in retrieving the appropriate implementation pointer based on extra information provided through a single 'TECamImplFactoryParam'.

Provides implementation handle for different implementation products.

Note:

The inferface pointer is retrieved only on the basis of interface uid passed. Examples of 'interface implementation pointer' - 'interface uid' are as follows:- MCameraImageProcessing* - KECamMCameraImageProcessingUid; MCameraImageProcessing2* - KECamMCameraImageProcessing2Uid; MCameraImageProcessing3* - KECamMCameraImageProcessing3Uid;

MCameraSnapshot* - KECamMCameraSnapshotUid; MCameraSnapshot2* - KECamMCameraSnapshot2Uid;

MCameraV2Histogram* - KECamMCameraV2HistogramUid;

Many other pairs may be possible in future. For example when image processing API/ camera snapshot API/ histogram API is further extended. Or when same concept is being used on other ECam related sub-component.

Parameters

TAny *& aIfPtrRetrieves pointer to specifc interface implementation as identified by the interface uid.
TUid aIfaceUidThe interface uid.
TECamImplFactoryParam aParam1union used to provide extra information which could a TAny*, TInt or TUint.

GetImpl2(TAny *&, TUid, TECamImplFactoryParam, TECamImplFactoryParam)

TInt GetImpl2(TAny *&aIfPtr,
TUidaIfaceUid,
TECamImplFactoryParamaParam1,
TECamImplFactoryParamaParam2
)const [pure virtual]

Overloaded method which helps in retrieving the appropriate implementation pointer based on extra information provided through two different 'TECamImplFactoryParam'.

Provides implementation handle for different implementation products.

Note:

The inferface pointer is retrieved only on the basis of interface uid passed. Examples of 'interface implementation pointer' - 'interface uid' are as follows:- MCameraImageProcessing* - KECamMCameraImageProcessingUid; MCameraImageProcessing2* - KECamMCameraImageProcessing2Uid; MCameraImageProcessing3* - KECamMCameraImageProcessing3Uid;

MCameraSnapshot* - KECamMCameraSnapshotUid; MCameraSnapshot2* - KECamMCameraSnapshot2Uid;

MCameraV2Histogram* - KECamMCameraV2HistogramUid;

Many other pairs may be possible in future. For example when image processing API/ camera snapshot API/ histogram API is further extended. Or when same concept is being used on other ECam related sub-component.

Parameters

TAny *& aIfPtrRetrieves pointer to specifc interface implementation as identified by the interface uid.
TUid aIfaceUidThe interface uid.
TECamImplFactoryParam aParam1union used to provide extra information which could a TAny*, TInt or TUint.
TECamImplFactoryParam aParam2union used to provide extra information which could a TAny*, TInt or TUint.

Release()

voidRelease()[pure virtual]

Releases the interface.